Hemos elegido Oracle ADF en nuestra empresa para uno de nuestros proyectos. Lamentablemente, esto resultó ser un gran error. Personalmente, he usado productos de Oracle, en particular su base de datos, pero en lo que respecta al middleware de fusión, le aconsejo que se mantenga alejado de él. ADF fue, con mucho, el peor marco que he usado como arquitecto. Algunas de sus características que noté son:muy complejo, Oracle simplemente "inventa" o fuerza algunos enfoques de desarrollo que la comunidad de Java ha demostrado como una mala práctica hace años. ADF es muy lento en comparación con otros marcos. Con ser lento me refiero a que las páginas del ADF se ejecutan lentamente. La razón de esto es html y javascript generados extremadamente complejos. Puede verificar esto abriendo Firebug e inspeccionando el html generado... parece algo de los 90... Terrible. No quiero ser demasiado pedante, pero las páginas ADF tienen una gran cantidad de errores de validación que causan problemas para que se ejecuten en todos los navegadores. La arquitectura de ADF es, en mi opinión, desordenada. Struts2, por ejemplo, es un marco mucho más limpio que hace que sea muy fácil integrarlo con bibliotecas de terceros como jQuery, etc. Oracle recomienda ADF como un marco MVC pero, francamente, no pude ver la arquitectura MVC real allí. ADF usa sus propias bibliotecas javascript , que son enormes, prácticamente imposibles de modificar, desoptimizados y lentos en comparación con otros como jQuery o Prototype. Las tendencias emergentes en J2EE son marcos conectables livianos que se integran fácilmente con otras herramientas, como Spring para administrar dependencias, jQuery para secuencias de comandos, CC para integración continua. ADF es un marco de gran peso estrechamente integrado con otras herramientas de ORacle, lo que hace que sea muy difícil usarlo de otra forma que no sea la ideada por Oracle.
Sin mencionar las herramientas de desarrollo que se ven obligados a usar al desarrollar ADF:el JDeveloper, que tiene muchos errores y falla con frecuencia. Desarrollar en Eclipse es problemático, porque ADF tiene numerosos archivos "específicos" que JDeveloper genera automáticamente.
Considerándolo todo... ADF fue una gran decepción para nosotros. Pasamos meses lidiando con él, cuando finalmente nuestro cliente decidió que la aplicación era demasiado lenta y difícil de admitir y la canceló por completo.
Según mi experiencia, solo puedo decir que se mantenga alejado de él. Elija una de las soluciones más compatibles y arquitectónicamente limpias, como Struts2 o Spring.