Ajuda na escolha de um framework web

Pessoal,

    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?

estou com o mesmo questionamente, aqui na empresa também estamos em via de escolher o framework.

Talvez eu esteja fazendo uma pergunta deslocada mas o EJB não esta na lista de vcs também?

Isso depende muito dos requisitos não funcionais.

Qual tipo de web container vcs vao utilizar ?
Precisa de um container de aplicacao também ? Mensageria, EJBs etc…?

Para a parte WEB simples, um tomcat com JSF e / ou Spring MVC é bem vindo.

Com Spring vc tem um leque de outras coisas para utilizar. (Controle de transcao, AOP , RMI, JNDI etc…)

VRaptor na minha opniao

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.

Wicket.

Eu havia feito dois comentários aqui no fórum sobre o porque eu usei Vraptor:

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.

Abraços,

Vlw pessoal.

@Thiago

  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.

[quote=victor.vsoares]Vlw pessoal.

  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.

Rubens,

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.

[quote=rubensdemelo][quote=victor.vsoares]Vlw pessoal.

  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)

absss

Tudo bem, talvez tenha me expressado mal, a palavra ao invés de inviável seria mais melhor ter usado “fora de moda”.