Java Server Faces, já está aí a alguns anos e ainda hoje existe dúvidas em relação a sua adoção no desenvolvimento de aplicações web. Pelo que me parece, utilizar JSF sozinho, é praticamente fora de questão, só é viável utilizar JSF junto com o JBoss Seam, caso contrario a burocracia e dificuldade no desenvolvimento aumentam muito.
Acho que há uma certa “onda” em relação ao JSF desde sua primeira versão. Desenvolvo em JEE há mais de seis anos, e quando surgiram os primeiros questionamentos sobre o JSF versão 1, o que eu escutava da comunidade a favor do JSF era:
E quando surgiu a versão 1.2
E hoje, JSF utilizado sozinho, é um assunto fora de questão. Trechos do livro Seam in Action (pag XXV)
Mesmo que tenha um certo favorecimento pelo fato de o livro se tratar do Seam, isso é uma verdade.
Quem já desenvolveu com JSF, mesmo no JBoss Seam, já deve ter sentido uma grande dificuldade de desenvolvimento, isso porque você tem que aprender uma série de novos paradigmas que não são inerentes ao desenvolvimento web e sim ao próprio JSF.
Para quem está começando a desenvolver com essas tecnologias é realmente bastante difícil.
Algúem já se deparou com o atributo bypassUpdates por exemplo? Esse atributo, modifica o fluxo padrão do JSF para pular algumas fases e ser possível implementar algumas funcionalidades.
Isso é um dos exemplos onde você tem que contornar o framework para realizar alguma tarefa.
Já li livros que dizem: “se você tem que contornar um framework, ele não é bom e genérico o suficiente”. Eu concordo com essa afirmação.
O JSF criou uma série de problemas que num desenvolvimento request-response-request padrão (como actions do struts) não existiam. E agora, todas as novidades tanto do JBoss Seam, quanto do JSF são para resolver esses problemas criados pelo JSF.
Gostaria de saber a opinião de vocês.
Existe “modismo” na utilização do JSF?
E, se o JSF não é tão bom, e se a principal vantagem do JBoss Seam é facilitar o uso do JSF, o JBoss Seam não seria desnecessário?
Uma solução mais simples e madura como Spring não poderia ser utilizada?