JSF é eficiente e eficaz?

Turma que usa JSF.

Vocês acham que o JSF + (MyFaces/IceFaces/ADF-Faces/…) é eficiente e eficaz? Ou seja, eles dão conta do recado bem, ou precisam de grande esforço e trabalho para cumprir o papel na construção das aplicações?

Pergunto isso pois um cliente quer que usamos JSF/ADF-Faces/JSP em um projeto.

O ADF Faces parece muito rico e fácil de usar, porém em casos extremamente simples e triviais. Quando alguma tela mais complexa aparece, me parece difícil de resolver com JSF. Creio até ser necessário desenvolver os próprios componentes de tela, sendo que do modo tradicional (vide abaixo), parece mais simples.

Atualmente como trio Struts*/JSP/JavaScript, é possível fazer bastante coisas. Pode ser trabalhoso em alguns pontos, mas nos casos específicos (difícieis), me parece mais fácil do que usar JSF.

Gostaria de opiniões de vocês.

Obrigado!

* Pode trocar Struts por Mentawai, WebWork, SpringMVC, vRaptor e outros similares.

O JSF foi criado para facilitar o uso de ferramentas visuais, como o .NET da microsoft já fazia no VS…

Usar o netbeans com o plugin de Visual Web vai ajudar bastante…

Nossa cliente usa JDeveloper + ADF.
http://www.oracle.com/technology/tech/java/jsf.html
http://www.oracle.com/technology/obe/obe1013jdev/10131/trinidad/adf_faces_trinidad.htm

Olá Daniel tudo bem?

Acredito que eu posso dar uma opinião a respeito

Primeiro lugar, sobre a pergunta do tópico: SIM, ele é eficiente e eficaz

No projeto que estou atualmente tive que fazer alguns testes de conceito em cima do ADF Faces e outras implementações. Acabamos optando por ficar com a implementação RI + ajax4jsf pelo fato de o ADF Faces não suportar esse framework. Mais adiante começamos a utilizar o MyFaces + Tomahawk pois houve necessidade de implementar novas (e mais complexas) coisas (tal como calendário), e sim, estamos todos usando essas ferramentas no JDeveloper, seguindo a especificação do faces 1.1.

O MyFaces/Tomahawk é uma das únicas implementações que possui a Sun Technology Compatible Kit (TCK), ou seja, para todas as implementações que seguirem esse TCK, serão compativel com o MyFaces. Sem contar que o MyFaces é compatível com ajax4JSF, com Facelets e com RichFaces Platform.

Eu sinceramente acho MUITO MAIS FÁCIL fazer uma página ajax-enabled com faces, porque:

  • Você não usa javascript
  • Muitos componentes trabalham automaticamente como “view-helpers”
  • Você não tem stress de ficar gerando XMLs por Servlets (tá, foi um exemplo tosco) ou utilizar protocolo JSON pra acessar dados de classes Java
  • o ajax4JSF torna muito fácil o desenvolvimento, com UMA TAG você faz o seu componente ficar “ajax-enabled” e prontoooo, ele também possui
  • criar componentes no faces é fácil :slight_smile:

O ADF tem uma vasta biblioteca de componente, mas sinceramente, eu acho aqueles componentes feios (…), não são compatíveis com ajax4jsf e não me informei se funciona certinho com o facelets. Pra mim, que sou desenvolvedor e não web-designer, eu simplemente pego páginas prontas, troco uma ou outra tag (porque o facelets vai gerar toda a minha página faces do html) e tá pronto, não tenho necessidade de ferramentas visuais pra criar páginas.

Pra criar sisteminhas pequenos de crud, entre ADF Faces e MyFaces eu prefiro RoR :slight_smile: rsrs

Bom espero ter ajudado

Valeu

Daniel, uma coisa que não aconselho a utilizar é o ICEFaces pelo menos ate a versão 1.5.3. Nessa versão existe bastante falhas e coisas simples como adicionar uma ação em um menuItem (menubar) dinamicamente é impossivel e nessa versão não funciona o include dinamico so o estatico (jsp.directive). Também sofri bastante com um erro no popUp.

O que me deixou bastante preocupado com o projeto icefaces foi a versão 2.0 DR2 que os desenvolvedores disponibilizaram; o rowSelector estava com o renderKit errado, ao inves deles compilarem um novo jar eles deixaram um topico avisando pro pessoal alterar e gerar um novo jar. Na minha opnial o minimo que eles podiam fazer era disponibilizar um novo jar. Nessa mesma versão também ocorria varios erros utilizando ice:message/messages e os converts.

Mas sem duvidas eles estão melhorando bastante e a versão 1.6 se tiver tudo que eles estão prometendo (melhor integração com seam, suporte a JSF 1.2, correção de varias falhas criticas) vai ser otima. Pra ser perfeito so falta eles resolverem os problemas com o Blocking Servlet.

Em sistemas de alta complexidade, Pode Esquecer! Ele é eficiente no sentido de te disponibilizar uma gama de recursos. Porém isso é aplicavel até certo ponto, resumindo: Não é nada eficaz, a probabilidade de instabilidade é muito alta. Muita gente elogia quando de fato o JSF cobre bem operações CRUD, graças à algumas implementações!!!

Struts possui um grau de instabilidade perto da perfeição, já efetuei desenvolvimento de diversas aplicações e fiquei muito satisfeito. A idéia base é preparar bem a infra-estrutura, tendo assim um produtividade no andar do projeto.

O que é arquitetura de sistemas? Pega JSF e junta com myfaces, richfaces, ajax4jsf e pronto. QUando tiver em produção reza pra não da pau!!! Isso cheira à pastelaria!!!

Esse tópico é a minha cara!!!

:?

Opa…

Trabalhei em um grande projeto utilizando JSF com MyFaces e deu conta do redado. Gostei da versatilidade.

Opa Daniel, depois de anos q vc me ajudou finalmente sei o suficiente pra te dar uma forcinha rs :smiley:

Meu JSF é mto poderoso, tem mtos recursos, diferente do Struts q é orientado a actions o JSF é orientado a eventos, facil de fazer e manipular suas informações, é produtivo e ágil, uso ele em 3 projetos sendo 1 que é do ministerio da saúde GIGANTESCO e ele funciona perfeito, eu uso MyFaces da Apache é excelente, JSF tbm é customizavel e com um Amateras da vida vc pode deixa-lo ainda mais facil, no JBuilder n sei como é, mas no JDeveloper, Eclipse+Amateras e NetBeans tem mto suporte.

Complementando o colega Heero Yuy, quanto ao suporte nas ferramentas de desenvolvimento, destaco o netbeans. Em nível de componentes visuais, a IDE conta com por exemplo, uma tabela customizável, na qual apenas checando uns checkboxes vc adiciona paginação, ordenação, ordenação de multiplas colunas, comportamento client-side (geração de código do lado do cliente), e muito mais…

Realmente…o Netbeans está matando a pau na questão JSF. Quem não tem JDeveloper vai de Netbeans mesmo rs.

[]´s

Carlos

Mas tem suas desvantagens tb, né…por exemplo, adicionando um componente via editor de código, ele não aparece na tela; Tem umas coisas esquesitas tb, do tipo, vc atribui um texto a um botão, o texto aparece na simulação de rendereização mas não aparece no browser… Necessita de uma máquina legal… Tem seus prós e contras, porém muito mais prós, é claro… rs

mas vocês devem estar cientes que:

  • Netbeans utiliza uma implementação própria da sun (o famoso Rave)
  • JDeveloper mesma coisa, mas o ADF

ou seja, as IDEs estão integradas com as implementações que lhe convém, ou vocês acham que isso vai funcionar certinho utilizando IceFaces ou MyFaces?

Eu sempre fui meio contra em desenvolver coisas “em Java” pra web visualmente (com excessão do Adobe Flex), rola muita confusão na renderização das telas na IDE. Mas o Netbeans, pra mim, se mostrou muito superior ao JDeveloper no quesito de criação de JSF visualmente, bom, pra quem conhece o JDeveloper e sabe das suas “manias” entende o que estou dizendo xD

E qual seria no caso uma boa IDE para utilizar o MyFaces? O Exadel, amateras, idea? qual delas trabalharia melhor com essa implementação?

[quote=Leozin]mas vocês devem estar cientes que:

  • Netbeans utiliza uma implementação própria da sun (o famoso Rave)
  • JDeveloper mesma coisa, mas o ADF

ou seja, as IDEs estão integradas com as implementações que lhe convém, ou vocês acham que isso vai funcionar certinho utilizando IceFaces ou MyFaces?

Eu sempre fui meio contra em desenvolver coisas “em Java” pra web visualmente (com excessão do Adobe Flex), rola muita confusão na renderização das telas na IDE. Mas o Netbeans, pra mim, se mostrou muito superior ao JDeveloper no quesito de criação de JSF visualmente, bom, pra quem conhece o JDeveloper e sabe das suas “manias” entende o que estou dizendo xD[/quote]

Claro, imagino q alguns pepinos acontecerão, mas eu nunca usei myfaces, pelo menos em algo que não seja por mero estudo… Do mais para o pouco que preciso no momento o tal do “RAVE” tem se mostrado uma boa escolha… rs Pelo menos por enquanto… rs

abraço!

:? [/quote]

Qual o seu argumento? Pq eu deveria pensar diferente?

Olá

:? [/quote]

Qual o seu argumento? Pq eu deveria pensar diferente?[/quote]

Acho que a gente não deve desvirtuar o tema do tópico mas neste caso estou intervindo para justificar a interrogação do nosso colega.

Sua frase ficou dúbia afirmando que o Struts é quase perfeitamente instável. Nunca gostei do Struts porque o achava mal programado porém nunca tive problemas de estabilidade.

[]s
Luca

[quote=Luca]Olá

:? [/quote]

Qual o seu argumento? Pq eu deveria pensar diferente?[/quote]

Acho que a gente não deve desvirtuar o tema do tópico mas neste caso estou intervindo para justificar a interrogação do nosso colega.

Sua frase ficou dúbia afirmando que o Struts é quase perfeitamente instável. Nunca gostei do Struts porque o achava mal programado porém nunca tive problemas de estabilidade.

[]s
Luca[/quote]

Realmente, fiquei na dúvida! Pq deveria pensar diferente!!!Quais os beneficios técnicos do JSF em relação do Struts?

De qualquer forma minha dúvida está dentro do tema, acho que vc acabou à desvirtuar o tema por não apresentar algo concreto em relação as diferenças das frameworks.

Abraços!!!

Bem…,
Voltando ao tópico dois links que gostaria que fossem analizados e discutidos de forma sadia.:
http://icoloma.blogspot.com/2006/10/myfaces-emperor-has-no-clothes.html
http://raibledesigns.com/rd/entry/jsf_still_sucks

 sds

William Silva

opniao de um leigo

a respeito do jdeveloper, pelo menos ate ano passado a ide apresentava uma porrada de bugs com jsf

tanto que o ano passado o professor que o usava na universidade mudou para o netbeans + web pack

entre os bugs, tinhamos algo bizarro como vc apagar um componente, mas a referencia dele na classe bean continur existindo

alem de o jdeveloper nao possibilitar o famoso “clica e arrasta” dos componentes

Novamente lembrando que isso foi ano passado, nao sei se a oracle deu uma melhorada…

venom