Escolhemos o Oracle ADF em nossa empresa para um de nossos projetos. Infelizmente, isso provou ser um grande erro. Eu pessoalmente usei produtos Oracle, em particular seu banco de dados, mas no que diz respeito ao middleware de fusão, aconselho você a ficar longe dele. O ADF foi de longe o pior framework que já usei como arquiteto. Algumas de suas características que notei são:muito complexo, Oracle apenas "inventa" ou força algumas abordagens de desenvolvimento que foram comprovadas como uma má prática pela comunidade Java anos atrás. O ADF é muito lento em comparação com outros frameworks. Por ser lento, quero dizer que as páginas do ADF são lentas. A razão para isso é html e javascript gerados extremamente complexos. Você pode verificar isso abrindo o Firebug e inspecionando o html gerado...parece algo dos anos 90...Terrível. Para não ser excessivamente pedante, mas as páginas do ADF têm enormes quantidades de erros de validação, causando problemas ao executá-las em todos os navegadores. A arquitetura do ADF é, na minha opinião, confusa. Struts2, por exemplo, é uma estrutura muito mais limpa, o que torna muito fácil integrá-la com bibliotecas de terceiros, como jQuery, etc. A Oracle defende o ADF como uma estrutura MVC, mas francamente não consegui ver a arquitetura MVC real. , que são enormes, praticamente impossíveis de modificar, não otimizados e lentos em comparação com outros como jQuery ou Prototype. As tendências emergentes no J2EE são estruturas conectáveis leves que são facilmente integradas a outras ferramentas, como Spring para gerenciamento de dependências, jQuery para scripts, CC para integração contínua. O ADF é uma estrutura pesada e fortemente integrada com outras ferramentas ORacle, o que torna muito difícil usá-lo de qualquer outra forma que não a desenvolvida pela Oracle.
Sem mencionar as ferramentas de desenvolvimento que você é forçado a usar ao desenvolver o ADF - o JDeveloper que é muito bugado e trava regularmente. Desenvolver no Eclipse é problemático, porque o ADF possui vários arquivos "específicos" que o JDeveloper gera automaticamente.
Ao todo...ADF foi uma grande decepção para nós. Passamos meses mexendo com isso, quando finalmente nosso cliente decidiu que o aplicativo era muito lento e difícil de suportar e o cancelou completamente.
Com base na minha experiência, só posso dizer que fique longe disso. Escolha uma das soluções com mais suporte e arquitetura limpa, como Struts2 ou Spring.