Aqui na empresa que trabalho, resolvemos fazer um levantamento sobre qual framework web usar nas novas aplicações a serem implemetadas. Os requisitos iniciais são performance, curva de aprendizado, produtividade, documentação e material para estudo.
Primeiro decidimos analisar o JSF, Jboss Seam, Struts 2 , Wicket, Spring MVC e o VRaptor.
Qual vocês escolheriam e pq?
eu nao sabia nada de web, mas nada mesmo, fiz o tutorial disponivel no site, e consegui fazer pelo menos uns 3 sistemas
o meu unico problema é q estoura o numero de conexoes e ainda nao consegui resolver.
No JSF há naturalmente uma curva maior no desenvolvimento. Em um dos porjetos na qual dou consultoria a equipe de negócio leva praticamente 1/3 do tempo que a equipe web leva. Sinto haver um trabalho bem maior para fazer coisas relativamente simples.
Em um outro projeto na qual eu comecei como arquiteto desde o início de tudo já propus o uso de vraptor desde o inicio. Minha escolha foi inicialmente pelo 2.6, e agora migrei prarticamente tudo para vraptor 3.0. A escolha se deu mais por produtividade, simplicidade e performance. Creio que nesses pontos o vraptor é campeão.
Como você pode notar, a aplicação é bem grande. Eu precisava de um framework muito produtivo e ao mesmo tempo robusto. Não poderia me dar ao luxo de usar o Struts 1.X e seus inúmeros gargalos. JSF nesse ponto é bem robusto, mas peca na questão de poder de controle na view e ao mesmo tempo eu perderia muito em produtividade.
Se você olhar bem no site do vraptor é muito simples implementar algo. Em poucos minutos faço o controller. Como view uso JSPX enjaulado dentro de um tiles, que faz o simples papel de decorator. Tudo integrado de forma a view não depender do controller e vice-versa. Se amanhã eu quiser usar um Spring MVC posso facilmente alterar os controllers sem alterar nada nas views.
A única deficiência que senti do vraptor é um exception handler inteligente (semelhante ao que tinha no struts 1x. Mas já estou planejando a implementação de um para essa aplicação.
Struts 2x eu sinceramente não gostei, principalmente de ficar tendo que fazer action + getter/setters na mesma classe, além de que o pessoal dos projetos java da apache tem a mania de complicar coisas tão simples.
Spring MVC é uma boa pedida, principalmente pelo suporte REST (caso você precise) e nice-urls, além de integrar-se como um doce se você usa já usa o spring framework.
SEAM é ótimo quando você usa EJB e Webeans. Mas só de pensar que é implementação de JSF não me agrada.
Obs: não sou desenvolvedor do vraptor, nem mesmo sou promoter. Apenas te repasso minhas experiências já vividas com o framework.
Provavelmente não usaremos ejb, nem mesmo jpa. Usaremos jdbc com a ajuda do spring.
@garcia-jj
Eu trabalhei com SEAM desda versão 1.0.0 com e sem ejb. Particularmente eu gostei mt, porém o pessoal aqui da empresa tá meio resistente ao jsf.
Não acho que jdbc com o spring seja inviável, acho apenas um pouco mais trabalhoso. E o pq de usar jdbc? Como as aplicações utilizarão uma base de dados com milhões de registros, queremos ter um controle maior sobre as querys criadas. Tb estamos pensamos na possibilidade de usar o Ibatis.
Mas o hibernate funciona muito bem acessando base com milhões de registros, existem métodos que você cria o SQL direto no hibernate, e ai tem um ganho de performace muito maior. E também da para ter um controle sobre as querys, é só logar.
Aqui no banco, acessamos base com 30~40 milhões de registros usando o hibernate, e não temos problemas, é só mapear os relacionamentos e herança com cuidado que fica show de bola!
O JSF com richfaces é uma boa opção para a camada de interface com o usuário, para a camada de persistência a JPA com Hibernate é também uma boa opção.
Provavelmente não usaremos ejb, nem mesmo jpa. Usaremos jdbc com a ajuda do spring.
[/quote]
Pq não usa Hibernate? JDBC para aplicações corporativas é completamente inviável.[/quote]
Inviavel???
não vejo JDBC inviabilizar algo… pelo contrario, é performatico, curva de aprendizagem baixissima, enfim, aquela velha historia, tudo depende do projeto… 8)