Crise com JSF

[quote=Lucas Emanuel]

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

Abraço![/quote]

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.

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!

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

Amigo, achei interessante essa informação. Qual a fonte?[/quote]

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.

Amigo, achei interessante essa informação. Qual a fonte?[/quote]

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.
[/quote]

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

Amigo, achei interessante essa informação. Qual a fonte?[/quote]

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.
[/quote]

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.

[/quote]

É. 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.

Amigo, achei interessante essa informação. Qual a fonte?[/quote]

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.
[/quote]

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.

[/quote]

É. 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.

[/quote]

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.

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:

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

É.

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.

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.

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

to passando um perrengue sinistro com esse JSF

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

Swing + EJB3 :wink:

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.

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.

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”.

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.

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

E se vc NÃO precisar desse controle? :smiley: [/quote]

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