Crise com JSF

43 respostas
L

Estou criando este tópico para ver alguem ja passou por isso, e quem sabe, para ajudar a todos que estão passando por mesmo problema.

Eu já trabalhei em projetos com JSF 2, Struts 1.x e 2.

Hoje eu tenho projetos em JSF 2, que podemos considerar como crítico (24X7), clusterizado .

Gostei do JSF 2, é fácil, produtivo, bonito… Afinal de contas…É especificação…sic…

No entanto, acho que me decepcionei. Ele é amarrado e tem cheiro de POG. Usando ele ficamos escravos de componentes. Escravos de biblioteca de terceiros. JSF 2 é atraente. Mas ele é sujo. Tonelada de códigos sujos gerados. milhoes de JS importados. Compromete a performance. Já que front-end é um dos maiores problemas de performance (vide o livro: High Performance Web Sites: Essential Knowledge for Front-End Engineers )

Com JSF não temos liberdade na view. Teve projetos que perdi 3 dias de trabalho por causa de bugs de renderização. Coisa que se fosse html, css e jquery resolveria em poucas horas. Ele foi inspirado pelo Aspx que é outro POG. Essa questão de ligar o Model pelo Evento é bacana para Desktop. Web não é desktop. Web é ação, é requisição, é reposta, tudo por http.

Será que é coisa de momento? Ou realmente devo mudar de foco?

Grato.

43 Respostas

E

Não tenho uma resposta para você.
Mas essa é uma bela reflexão…

J

Nesse caso o jeito é voltar a utilizar Struts.

Nenhuma tecnologia serve para todos os problemas.

J

Eu acho o seguinte: Em qualquer que seja o framework, orientado a eventos ou a ação, a POG é por conta do programador. JSF hoje é um framework mais utilizada pela comunidade que desenvolve para web e tem crescido cada vez mais.
Dizer que fica escravo dos componentes é não ter entedido a filosofia do framework. JSF, como você mesmo disse, é apenas uma especificação e a implementação fica a critério de quem o fizer.

JS importados, CSS, ou html gerado não seria um trabalho que você iria fazer na mão e o framework gera pra você? Isso não é do framework, faz parte do desenvolvimento web em java como o todo. Nunca programei com Struts, mas lá certamente deve existir um conjunto de TAGLIBS, certo? Essas páginas com essas taglibs devem ser transformadas em HTML para que o browser entenda, ou seja, código gerado novamente.

JSTL? Também são TAGLIBS que vão virá código HTML.

Bom, sobrou programar em java pra web com apenas Servlet e JSP. Que tal?

O que quero dizer é que esses framework vieram para de alguma forma tornar o desenvolvimento web mais produtivo e elegante. Por exemplo, quando desenvolvemos com JSF2 e Primefaces, os componentes são os mesmo do JQuery apenas com uma facilidade maior de uso e com a possibilidade de vincular componentes com atributos de objetos java.

Abraços.

B

Sinceramente?

Depois de trabalhar com Java e Web há anos, e vendo o pessoal reclamar da dificuldade de aprender, e acompanhar tantas tecnologias, PHP, Cold Fusion, Struts 1 e 2, Spring MVC, Wicket, JSTL, JSF, Seam, Tapestry, GWT, Django, Rails, Grails, Lift, etc…

Quer saber de verdade mesmo?

Misturar código server-side com client-side sempre dá merda.

R

Oi Lucas,

Concordo com vc que fica um pouco mais pesado a parte web, mas vc esta usando o JSF para fazer aplicação de interface mais rica, com mais opções de componentes e tudo mais…

Com relação a ser escravo de bibliotecas de terceiros hj vc já tem algumas bibliotecas muito boas, se não quer usar eles vc mesmo pode criar seus componentes.

O que vc pode fazer para tentar melhorar a performance é verificar se precisa de todos os componentes ricos na tela, se pode compactar os .css, .js e requisições.

No começo vc apanha um pouco para aprender como usar as tags do JSF, as vezes acaba caindo em algum bug de componentes de terceiro (o que normalmente é resolvido de forma rápida) e demora um pouco até perceber ou encontrar uma outra forma (não POG) de obter um resultado similar.

Eu acredito que esse problema de perfomance principalmente na web é porque a Internet que usamos é uma carroça e precisamos melhorar na aplicação o que não conseguimos com o serviço de Internet.

L

Você já viu quantos imports de JS o Primefaces faz? Se fosse fazer com jQuery puro, poderia juntar tudo em um arquivo só e comprimir.

JSTL não envolve CSS e JS diferente de tags do Primefaces ou similiar, por exemplo

Pensei seriamente nisso. Pelo menos tenho total liberdade. Além de Servlet puro (que na versão do JEE 6 está muito bom), pensei muito no VRaptor 3.

Eu disse que JSF 2 com as bibliotecas são produtivas, não nego.

Quanto a ser mesmo componente de jQuery, concordo. Mas a forma de manipular é diferente. É só entrar nos foruns de Prime ou Richfaces que voce vê zilhoes de bug com DataTable, Calendar, etc, que ainda nao foram revolvidos, porque nao temos controle da renderização. Até tem, mas com um pouco de dificuldade.

Enfim, não quero tacar pedra em JSF, como disse, eu o uso. E usarei em futuros projetos.

Mas sinceramente estou frustado com JSF. E são opiniões que eu quero mesmo.

Valeu.

L

Bruno Laturner:

Misturar código server-side com client-side sempre dá merda.

Oi, é o que o JSF faz, e estou sentindo na pele, rsrs.

B

http://www.playframework.org

D

O que eu sinto com todos os frameworks MVC é que eles são lindos, maravilhosos, desde que você não precise fazer nada que eles não dão suporte “nativo”.

A partir do momento que vc precisa fazer uma coisinha, que escapa um pouco do que o framework te oferece, se prepare para ficar irritado e gastar bastante tempo criando workarounds para fazer o que você precisa.

É claro que muita coisa é automatizada, te dá produtividade e tal, mas tem hora que parece não compensar.

[]'s

M

me pareceu uma versão em java do rails…

R

Não considera um risco desnecessário usar uma tecnologia ainda em fase de amadurecimento num projeto critico?

Uso o JSF 1.2 com RichFaces,Spring e JPA em projetos médio/grande porte e não tenho do que reclamar.

L

raf4ever:
Lucas Emanuel:

Hoje eu tenho projetos em JSF 2, que podemos considerar como crítico (24X7), clusterizado .

Não considera um risco desnecessário usar uma tecnologia ainda em fase de amadurecimento num projeto critico?

Uso o JSF 1.2 com RichFaces,Spring e JPA em projetos médio/grande porte e não tenho do que reclamar.

Eu tive um pouco de receio sim.

Mas eu já tinha um projeto em JSF 2 rodando (Sistema de Ponto), e rodou legal. Portanto partimos novamente com JSF 2 (Prime+ JPA + EJB 3.1 +Glassfish 3.1) neste projeto “mais pesado”. Além disso usamos CDI(nativo) e Prettyfaces, e até o momento nao tivemos problemas de estabilidade.

Pode ser uma sensação pessoal. Mas, depois de 3 projetos com JSF, achei ele amarrado. Não sou o primeiro a dizer isso por aqui.

L

Use Vraptor3 HTML/CSS e JAVASCRIPT =D

A

Não penso dessa forma.

Comecei a pouco tempo com JSF 2.0, e tinha trabalhado com 1.2 à algum tempo atras, e percebi que ele não é tão facil.
Mas muitas coisas que você diz que é um “Bug” na verdade são instruções (Coisas) que você fez de forma incorreta por não conhecer a fundo o próprio JSF (Ciclo de vida, árvore de componentes, converters, validators, etc).

JSF é bom, mas não é pra qualquer um não. Penso assim.

xD~~

S

Lucas Emanuel:
Estou criando este tópico para ver alguem ja passou por isso, e quem sabe, para ajudar a todos que estão passando por mesmo problema.

Será que é coisa de momento? Ou realmente devo mudar de foco?

Bem vindo ao clube :wink:

C

Há anos venho defendendo o modelo que carinhosamente apelidei de MVC3 http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/
Hoje em dia está moleza já na época reconheço, era complicado.

Use VRaptor com tecnologias como Sammy.js para orquestrar seus controllers, abuse do estilo restful de frameworks como Rails [Guilherme Silveira vem já dizer: “isso não é rest, isso não é rest” :)], estupre o jquery, faça bom e mal uso de Extjs ou Flex, mas pelo amor de Javé, abandone #JSFail.

L

cmilfont:
Há anos venho defendendo o modelo que carinhosamente apelidei de MVC3 http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/
Hoje em dia está moleza já na época reconheço, era complicado.

Use VRaptor com tecnologias como Sammy.js para orquestrar seus controllers, abuse do estilo restful de frameworks como Rails [Guilherme Silveira vem já dizer: “isso não é rest, isso não é rest” :)], estupre o jquery, faça bom e mal uso de Extjs ou Flex, mas pelo amor de Javé, abandone #JSFail.

Oi muito legal, nao tinha visto ainda.

Nesse modelo voce nao usa nem as jsps?

C

Lucas Emanuel:
cmilfont:
Há anos venho defendendo o modelo que carinhosamente apelidei de MVC3 http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/
Hoje em dia está moleza já na época reconheço, era complicado.

Use VRaptor com tecnologias como Sammy.js para orquestrar seus controllers, abuse do estilo restful de frameworks como Rails [Guilherme Silveira vem já dizer: “isso não é rest, isso não é rest” :)], estupre o jquery, faça bom e mal uso de Extjs ou Flex, mas pelo amor de Javé, abandone #JSFail.

Oi muito legal, nao tinha visto ainda.

Nesse modelo voce nao usa nem as jsps?

Lucas, hoje em dia não mais, as engines de template para javascript estão bem evoluídas, fora que voce tem muitas opções http://stackoverflow.com/questions/552934/what-javascript-templating-engine-do-you-recommend
Geralmente uso o https://github.com/janl/mustache.js/ em projetos com jquery e sammy.js ou o XTemplate do Extjs em projetos que posso utilizá-lo http://dev.sencha.com/deploy/dev/docs/?class=Ext.XTemplate.

Voce ainda pode usar versões de haml em js para manter o mesmo padrão em server-side e client-side com tecnologias diferentes. Quem usa o Sammy tem várias opções https://github.com/quirkey/sammy/tree/master/lib/plugins

L

cmilfont:
Lucas Emanuel:
cmilfont:
Há anos venho defendendo o modelo que carinhosamente apelidei de MVC3 http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/
Hoje em dia está moleza já na época reconheço, era complicado.

Use VRaptor com tecnologias como Sammy.js para orquestrar seus controllers, abuse do estilo restful de frameworks como Rails [Guilherme Silveira vem já dizer: “isso não é rest, isso não é rest” :)], estupre o jquery, faça bom e mal uso de Extjs ou Flex, mas pelo amor de Javé, abandone #JSFail.

Oi muito legal, nao tinha visto ainda.

Nesse modelo voce nao usa nem as jsps?

Lucas, hoje em dia não mais, as engines de template para javascript estão bem evoluídas, fora que voce tem muitas opções http://stackoverflow.com/questions/552934/what-javascript-templating-engine-do-you-recommend
Geralmente uso o https://github.com/janl/mustache.js/ em projetos com jquery e sammy.js ou o XTemplate do Extjs em projetos que posso utilizá-lo http://dev.sencha.com/deploy/dev/docs/?class=Ext.XTemplate.

Voce ainda pode usar versões de haml em js para manter o mesmo padrão em server-side e client-side com tecnologias diferentes. Quem usa o Sammy tem várias opções https://github.com/quirkey/sammy/tree/master/lib/plugins

E o que voce usa como controller? Servlet puro? Vraptor? Pergunto pois fiquei interessado.

Abraço!

C

Lucas Emanuel:

E o que voce usa como controller? Servlet puro? Vraptor? Pergunto pois fiquei interessado.

Abraço!

Em java é, um exemplo “baunilha” que usamos num curso aqui https://github.com/barroso/portal/blob/master/src/br/com/fortes/portal/controller/ExtjsController.java

Mas a idéia é trabalhar na forma mais restful possível.

R

Lucas,

Todos usamos componentes todos os dias. Sempre usamos componentes para facilitar nossas vidas e tirarmos de nossas costas o peso de manter nossos próprios componentes bugados ou não, pq além de corrigir bugs temos também que adicionar novas funcionalidades e mais bugs.
Se olharmos o projeto primefaces ele utililza Jquery, JqueryUI, YUI. Você acha que ele são dependentes de outros projetos? e pq?

Não existe bala de prata, em qualquer framework vai ter alguma carência e se tiver, corre atrás de seu problema e contribua, disponibilize. Não seja vampiro de projetos. :twisted:

Citaram vários framwework, posso falar do rails. Ele atende todas as espectativas? Quando não tem o que você quer, você faz o que?? Já sei, procura uma Gem, isso não é um componente de terceiro?. Os “CARAS” fazem suas próprias, eles não esperam melancólicos no canto esperando que algum iluminado resolva seu problema. Não estou te criticando, mas sim toda comunidade java de parados. Vejo a comunidade ruby muito ativa e participante, mas em java um atira uma pedra e aparece 1000 para ajudar.

Voltar para JSP? Ta louco!!! Você sabia que a falecida SUN desaconselhava usar jsp. Você sabe pq surgiu o Strut e depois veio o JSF? Sabe quem é pai de quem? Vai me dizer que vc vai voltar tambem a fazer software só para mainframe! O futuro é RIA. Flex, ExtJS, etc… E isso não é pesado? Não são um aglomerado de componentes JS ou em FLASH para você brincar! Os computadores estão muitos mais potentes e não aguentam? Haa, vc já fez algum sistema completo, rico em visual, vc mesmo criando seus componentes? durou quantos anos? tem bug? vc está de cabelo branco? lembra do inferno JS? não tá pesado? está seguro? :oops:

Se você me perguntar o que vc deveria fazer para o seu sistema ficar leve, eu poderia responder: Tire os componente pesados do primefaces que enfeitam a tela :smiley: . Você com certeza ia dizer :shock: : Haaa, não, vai ficar feio, um sistema morto sem vida. Tudo tem um preço na vida.

A grande vantagem da especificação é que pode sugir varias implementações free ou não, isso permite “liberdade” de fornecedor, mas tem seus contras: demora mais sair novas especificações e rapidamente deixam a desejar, novas necessidades aparecem e a especificação fica desatualizada, por isso as implementações sempre tem uns extras para suprir essas necessidade e para te prender a ela (HAHAHAHAHA!) :twisted: Em java tudo é baseado em Design Patterns e em boas praticas.

Enfim, ainda não entendi sua reclamação direito. Pesado em que sentido? Bugado, onde? Tem certeza??
Haaa! no prime, na tag resources tem um atributo exclude, para você excluir os js que vc não quer.
Haaa! de novo! :twisted: pq não usar o JSF2, ele não está tão maduro? vai esperar sair o JSF3 sair para usar o dois? Para que descubram bugs é preciso uso e reportar, senão nunca vai ficar redondo.
Misturar server-side com client-side? como assim, eu não faço isso? ou faço? me explique como? vc não usa MVC? o JSF tb não? Como os outros frameworks impedem isso?

Abraços a todos!

J

Amigo, achei interessante essa informação. Qual a fonte?

L

Amigo, achei interessante essa informação. Qual a fonte?

Seria interesasnte saber a fonte mesmo.

Dei uma googlada e nao achei nada por enquanto. Sun desencorajou o uso de Scripts em JSP. mas de JSP em si acho que nao.

Tanto é que JSP está em evolução. Com novidades interessantes.

O colega acima deve ter se enganado.

R

Amigo, achei interessante essa informação. Qual a fonte?

Seria interesasnte saber a fonte mesmo.

Dei uma googlada e nao achei nada por enquanto. Sun desencorajou o uso de Scripts em JSP. mas de JSP em si acho que nao.

Tanto é que JSP está em evolução. Com novidades interessantes.

O colega acima deve ter se enganado.

Vi que desencorajou também o uso de JSTL em JSF, regra de negócio na apresentação nunca é bom né :evil: .

Hee :smiley: , não me expressei direito.

“The term Facelets refers to the view declaration language for JavaServer Faces technology. JavaServer Pages (JSP) technology, previously used as the presentation technology for JavaServer Faces, does not support all the new features available in JavaServer Faces 2.0. JSP technology is considered to be a deprecated presentation technology for JavaServer Faces 2.0. Facelets is a part of the JavaServer Faces speciication and also the preferred presentation technology for building JavaServer Faces technology-based applications.”
Fonte: JavaEE6Turorial em http://download.oracle.com/javaee/6/tutorial/doc/giepx.html Acessado hoje! :P.
No PDF é no capítulo 5, página 111.

Vocês lembram do TILES, eu odiava isso! com facelets nossa vida melhorou, além de mais veloz que o JSP na reenderização.
Fonte não oficial:http://www.developer.com/java/web/article.php/3867851/JSF-20-Views-Hello-Facelets-Goodbye-JSP.htm

L

Amigo, achei interessante essa informação. Qual a fonte?

Seria interesasnte saber a fonte mesmo.

Dei uma googlada e nao achei nada por enquanto. Sun desencorajou o uso de Scripts em JSP. mas de JSP em si acho que nao.

Tanto é que JSP está em evolução. Com novidades interessantes.

O colega acima deve ter se enganado.

Vi que desencorajou também o uso de JSTL em JSF, regra de negócio na apresentação nunca é bom né :evil: .

Hee :smiley: , não me expressei direito.

“The term Facelets refers to the view declaration language for JavaServer Faces technology. JavaServer Pages (JSP) technology, previously used as the presentation technology for JavaServer Faces, does not support all the new features available in JavaServer Faces 2.0. JSP technology is considered to be a deprecated presentation technology for JavaServer Faces 2.0. Facelets is a part of the JavaServer Faces speciication and also the preferred presentation technology for building JavaServer Faces technology-based applications.”
Fonte: JavaEE6Turorial em http://download.oracle.com/javaee/6/tutorial/doc/giepx.html Acessado hoje! :P.
No PDF é no capítulo 5, página 111.

É. Realmente voce se enganou. Ele desencoraja o uso de JSP se for usar JSF 2.0, que no caso, obviamente, utiliza-se a Facelets.

Agora gostaria de saber se a SUN realmente desencorajou o uso de JSPs, com fontes seguras.

Ele pode até ser mais rápido por não fazer compilação para geração de Servlet apartir de JSP, já que Facelets faz uma leitura de xml. No entanto, quando voce precisa de mais controle em HTML / CSS e JS é um grande problema quando se utiliza JSF/Facelets e bibliotecas de Terceiro. Fora que faz uma mistura de Client/Server. Vira uma sopa.

E sinceramente, me decepcionei com essa forma de desenvolver.

R

Amigo, achei interessante essa informação. Qual a fonte?

Seria interesasnte saber a fonte mesmo.

Dei uma googlada e nao achei nada por enquanto. Sun desencorajou o uso de Scripts em JSP. mas de JSP em si acho que nao.

Tanto é que JSP está em evolução. Com novidades interessantes.

O colega acima deve ter se enganado.

Vi que desencorajou também o uso de JSTL em JSF, regra de negócio na apresentação nunca é bom né :evil: .

Hee :smiley: , não me expressei direito.

“The term Facelets refers to the view declaration language for JavaServer Faces technology. JavaServer Pages (JSP) technology, previously used as the presentation technology for JavaServer Faces, does not support all the new features available in JavaServer Faces 2.0. JSP technology is considered to be a deprecated presentation technology for JavaServer Faces 2.0. Facelets is a part of the JavaServer Faces speciication and also the preferred presentation technology for building JavaServer Faces technology-based applications.”
Fonte: JavaEE6Turorial em http://download.oracle.com/javaee/6/tutorial/doc/giepx.html Acessado hoje! :P.
No PDF é no capítulo 5, página 111.

É. Realmente voce se enganou. Ele desencoraja o uso de JSP se for usar JSF 2.0, que no caso, obviamente, utiliza-se a Facelets.

Agora gostaria de saber se a SUN realmente desencorajou o uso de JSPs, com fontes seguras.

Ele pode até ser mais rápido por não fazer compilação para geração de Servlet apartir de JSP, já que Facelets faz uma leitura de xml. No entanto, quando voce precisa de mais controle em HTML / CSS e JS é um grande problema quando se utiliza JSF/Facelets e bibliotecas de Terceiro. Fora que faz uma mistura de Client/Server. Vira uma sopa.

E sinceramente, me decepcionei com essa forma de desenvolver.

Como já tinha dito. Para seu problema não use Prime, Rich, MyFaces ou outros. Use JSF padrão, JQuery, JQueryUI por exemplo e se responbilize por suas bibliotecas de componentes java script, acho q assim vai ser como você quer. Minha opnião é que você deixe o JSP de lado e use Facelet com XHTML.
Se vc conhecer algum framework em qualquer linguagem de programação que possua componente visuais ricos e que forneça a flexibilidade e levesa que você quer, me passe o link do projeto que quero conhecer.

F

Tente usar o framework wicket (www.wicket.apache.org).

vantagens

  1. Há uma separação efetivamente de apresentação e da lógica.
  2. Fim das taglibs ou jsp, Desenvolver com wicket basta java e html. O desenvolvedor trabalha com arquivos html simples basta adicionar a tag wicketid em todos os componenteem HTML da pagina.
  3. Desenvolvimento mais rapido, porque camada view da aplicacao funciona com Orientacao a Objeto, com isso, e possivel reutilizar melhor as camadas view da aplicacao. É possivel criar heranca e polimofismo na camada view de CRUD.
  4. Uso facil de eventos AJAX de forma nativa.

Ja trabalhei com struts 1 e 2, jsf 2.0, gwt e de longe ele foi o framework mais produtivo e melhor que eu usei. Atualmente todos as aplicacoes novas desenvolvidas para o banco central do brasil usam apache wicket.

Wicket ja esta sendo usado em grande site, quem quiser pode conferir essa apresentacao http://www.slideshare.net/dashorst/wicket-2010

Eu nao sou um evangelista da tecnologia , so estou dando meu depoimento, de quem ja passou por esse problema “crise com JSF” e conseguiu sair dele :slight_smile:

D

Ainda não vi solução mais clara e produtiva do que essa Vraptor 3.

L

É.

Andei pesquisando e testando muitas coisas. E até o momento, gostei muito do VRaptor 3. Produtivo, Elegante e Potente.

Além disso gostei bastante do “MVC 3” apresentado pelo milfont, e a utilização de JS Template Engine. http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/ com separação exata da View em HTML, CSS e JS, com Java no server.

Possivelmente nunca mais usarei JSFail.

D

Pra mim, o combo mais produtivo pra web app:

  1. Vraptor
  2. Spring
  3. Hibernate
  4. Jquery
  5. JSP + JSTL

Com isso vc tem tudo.

R

O que pode ser usado no wicket para melhorar a UI?

R

to passando um perrengue sinistro com esse JSF

é tudo difícil de fazer
uns erros que ninguem entende
só dor de cabeça :confused:

F

Swing + EJB3 :wink:

L

Com wicket não sei.

Mas abrimos um tópico legal aqui mesmo no guj para discutir sobre View ( http://www.guj.com.br/java/237333-view-com-framework-javascript ), e sua separação física com o Server, como apresentou o milfont nesse post: http://www.milfont.org/tech/2008/09/08/mvc-model-3-e-camadas/

A arquitetura é muito legal e já comecei a adotá-lo.

Quanto a View, tudo que o primefaces e richfaces faz com JSF, pode ser feito com jQuery ou ExtJS, com a vantagem de separar View do Server. No Server está o VRaptor e a camada de Modelo e Persistencia.

Muito bom.

F

Não quero ser do contra mas…

Na minha opinião, o que o JSF2 faz com manipulação de referencia de objetos (ex: f:setPropertyActionListener) e ajax é no mínimo encantador, sem falar em renderização parcial de pagina por ajax. É um framework q possibilita adotar os conceitos de DDD facilmente, tornando os manager beans realmente o papel de controlador (MVC). A separação de lógica de negocio da camada de visão é clara.

outra vantagem é a possibilidade de implementação de componentes visuais, muuuito melhor e mais facil (JSF2) que implementação de taglibs.

e quem já trabalhou com outras tenconogias web vai concordar comigo q facelets é muito melhor q includes e tiles.

E quanto a componentes extras (primefaces, richfaces etc…), como já falaram, são opcionais. Pode-se usar a especificação pura do jsf e usar jQueryUI por ex.
O que não é possível é usar ExtJS com JSF. Não encontrei uma forma que justificasse.

E com JSF puro (sem componentes de terceiros) é possivel fazer muita coisa “na mão” se preciso.
Estou trabalhando numa proposta com jQueryMobile e JSF2, e essas possuem muitos conceitos conflitantes, mas nada que não fosse possível resolver, mantendo o codigo claro.
E em ultimos casos se necessário, é possível usar RESTful pra consumir serviços, com jquery e resources (jersey) inclusive acessando os MB se necessário, tudo isso orquestrado pelo Spring claro :wink:

Fiz uma avaliação prévia do wicket e sinceramente achei muito improdutivo, e não encherguei muito possibilidades de reusabilidade prática, como tanto falam.

Já fiz arquitetura de projetos com Vraptor 2 e 3, e com certeza também é um ótimo framework.

Mas enfim, não to aqui pra defender o JSF e com certeza ele tem os contras dele assim como qualquer framework, mas pelas experiências que tive, usado com boas práticas, é muito produtivo e deixa o código limpo e fácil de manter.

A

Bom pessoal eu usei JSF 2 juntamente com primefaces em um projeto recente que fizemos na empresa, o que posso dizer é que a maioria dos problemas (não foram muitos), aconteceu pelo falta do profundo conhecimento do framework e que todos eles tem uma forma alternativa.
Com certeza é bastante produtivo, e como um amigo disse àlguns posts acima as vezes pecamos por não conhecer bem o frameworks e acabamos fazendo do jeito “errado”.

O

Hehe, prefiro usar Spring MVC ou Vraptor 3 + HTML,CSS e Javascript. Pode não ser tão “produtivo” como JSF 2 mas pelo menos eu tenho um controle maior sobre os componentes da minha view.

R

E se vc NÃO precisar desse controle? :smiley:

O

E se vc NÃO precisar desse controle? :smiley:

Se não precisar eu uso eles do mesmo jeito, ninguém sabe que tipo de mudança o cliente pedira amanhã :wink:

P

Os dois frameworks que eu vejo que mais vale a pena de utilizar são o Vraptor3 e o JSF2 é claro que com uso do Spring2.5/3 + Hibernate para ambos

Destes dois o mais produtivo na minha opinião é o Jsf2, porem tem que ter um bom conhecimento ao usar os diversos componentes pesados que tempor ai.
Com o jsf é possível fazer umas gambis terríveis. Mas se está fazendo gambi, vc tá usando errado no jsf.
No jsf não tem nada que não se possa fazer em comparação com os outros frameworks web, o problema é que nós ficamos dependentes do funcionamento dos componentes opcionais que estamos usando, mas se tais componentes não fazem o que você quer você tem que fazer o seu e não tentar adaptar o que ñ faz.
Porem controlar tais componentes eu acho desnecessário!! Basta saber usa-los que eles irão fazer a coisa certa.!

Na minha opinião o VRaptor é o framework mais próximo do servlets com a melhor flexibilidade para trabalhar e mas rápido o aprendizado.

Dentro os dois eu fico com o JSF2 para aplicação com um grande numero de telas(exemplo: aplicação com varias telas de cadastro) e para aplicações com um numero baixo de tela eu prefiro utilizar o vraptor, claro que isso é pessoal, pois ambos são belos frameworks e atende a demanda.

S

Spring e Hibernate para produtividade !!!??? Só se o cara já conhecer bastante esses dois frameworks.

Vejo o pessoal recomendando um monte de framework action-based para substituir JSF. Se o cara tem um monte de formulários, com algo mais parecido com um sistema desktop que foi pra web (comum hoje em dia), component-based é mais recomendável. Se a aplicacao é uma aplicacao web clássica, então action-based é mais recomendável.

Component-based: Wicket, Click and Vaadin

Action-based: Mentawai e Play

P

Fato, como qualquer framework, quando você o conhece o suficiente ai que o mesmo ira fornecer algum tipo de beneficio, mas se você esta na fase de aprendizado ou ñ conhece suficiente ai você só vai ter dor de cabeça.

S

Priuli:
saoj:

Spring e Hibernate para produtividade !!!??? Só se o cara já conhecer bastante esses dois frameworks.

Fato, como qualquer framework, quando você o conhece o suficiente ai que o mesmo ira fornecer algum tipo de beneficio, mas se você esta na fase de aprendizado ou ñ conhece suficiente ai você só vai ter dor de cabeça.

Qualquer coisa é produtiva se vc conhece o suficiente. Existem gurus em C++ e Assembly que são mais produtivos do que eu em Java. Mas isso não quer dizer que C++ e Assembly sejam mais produtivos do que Java.

O mesmo se aplica a esses dois frameworks. Sugeri-los para uma pessoa que não os conhece e chamá-los de produtivos é loucura. Eu aposto todas as minhas fichas que o Play ou o Mentawai são BEM MAIS PRODUTIVOS e fáceis de entender do que esses aí. Mais uma vez, para alguém que não conhece nenhum deles.

Criado 23 de março de 2011
Ultima resposta 4 de out. de 2011
Respostas 43
Participantes 25