JSF é eficiente e eficaz?

33 respostas
D

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.

33 Respostas

R

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…

D

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

L

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

G

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.

D

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!!!

B

:?

K

Opa…

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

E

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.

T

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…

K

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

[]´s

Carlos

T

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

L

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

T

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

T

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

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!

D

:?

Qual o seu argumento? Pq eu deveria pensar diferente?

L

Olá

:?

Qual o seu argumento? Pq eu deveria pensar diferente?

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

D

Luca:
Olá

:?

Qual o seu argumento? Pq eu deveria pensar diferente?

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

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!!!

W

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

V

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

D

O JDeveloper está na versão 10.1.3.2. Acho que estes problemas já são passado.

L

venomtotal:
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

depende, mas isso acontece, apesar que eu não estou utilizando ADF no JDeveloper :stuck_out_tongue:

eu acabei nao atualizando pra versao 10.1.3.2 mas pretendo mais pra frente o fazer

R

Estou utilizando num sistema consideravelmente grande aqui, e está indo as mil maravilhas. A equipe tem gostado bastante, o problema inicial foi um tanto a curva de aprendizagem com os componentes, mas passado esta fase está indo tudo muito bem.
E consegui fazer coisas que com JSP/Javascript provavelmente eu teria que suar bastante.

Estamos utilizando aqui o MyFaces, não cheguei a testar o ADF. De qualquer forma, recomendo a utilização.

Quanto ao comentário que fizeram sobre instabilidade, desde novembro rodando o sistema e até o momento não tive nenhum problema com JSF.

R

bem que queria migrar para essa versão , tentei sair da versão 10.1.2.1.0 e nao obtive sucesso gerou vários erros de datasource e Visual WEB nao funcioanava :cry:

Nao tive escolha …

W

Olá Rafael,

Estou utilizando num sistema consideravelmente grande aqui
A titulo de informação o que seria esse teu sistema, será que poderia resumir o seu escopo.
Já desenvolvi aplicações com JSF RI) mais com somente 150 terminais em uma intranet e os méritos no caso foram para o Tomcat. Sendo não pude realmente avaliar o potencial do JSF como Framework, se outros membros tiverem mais algumas informações a nível profissional será bem vinda.
sds.
William Silva

R

WilliamSilva:
A titulo de informação o que seria esse teu sistema, será que poderia resumir o seu escopo.
Já desenvolvi aplicações com JSF RI) mais com somente 150 terminais em uma intranet e os méritos no caso foram para o Tomcat. Sendo não pude realmente avaliar o potencial do JSF como Framework, se outros membros tiverem mais algumas informações a nível profissional será bem vinda.
sds.
William Silva

São duas partes principais, uma de gerenciamento de aprendizagem virtual de uma universidade, e outro de gerenciamento acadêmico dos alunos virtuais e presenciais. O sistema é utilizado por cerca de 50 mil pessoas, mas também o crédito não é somente do JSF, há uma infra-estrutura bem robusta por trás disso. Mas em relação ao desenvolvimento, a mistura JSF com Ajax facilitou bastante coisa e tenho ficado bem confiante em relação ao JSF.

W

Legal Rafael,

há uma infra-estrutura bem robusta por trás disso.
E no caso da requisições,Renders, page views e etc.vc. percebe se há alguma degradação do seu servidor Web/JSF em relação ao número de usuários conectados.
Obrigado pelas respostas.

R

WilliamSilva:
E no caso da requisições,Renders, page views e etc.vc. percebe se há alguma degradação do seu servidor Web/JSF em relação ao número de usuários conectados.
Obrigado pelas respostas.

Fizemos alguns testes de carga aqui(ainda estou apanhando pra executar um teste automático com JSF com o JUnit e Grinder), e com 2000 requisições por segundo, o consumo da parte web teve alguns picos de 18% de consumo do processamento/memória da máquina(dois servidores dell com 4 processadores e 4gb de RAM em cluster)
Isso na parte web, nos servidores que estão a parte de ‘business’ o consumo não chegou a 7% das máquinas(que são idênticas às máquinas web).

W

Ok…valeu pela resposta… :lol:

D

JSF (ADF/MyFaces/IceFaces/…) se integra bem com ferramentas tipo Tiles ou SiteMesh?

Qual aconselham?

T

com tiles sim… Porém testei pouco… tem algo sinplório aki…

http://www.jsftutorials.net/tiles/jsf-tiles.html

abraço!

S

Esquece adf, é um lixo imundo.
A curva de aprendizado do jsf é alta, mas tudo tende para que ele permaneça durante um bom tempo.

F

Sim JSF é eficiente e eficaz.

Uso JSF a um bom tempo e tenho alguns sistemas médios e grandes em produção e até hoje não apresentaram nenhum problema relativo ao framework.

JSF trata bem casos de CRUD? Sim, muito bem. Até porque um dos pontos fortes do JSF é a produtividade dos desenvolvedores através de ferramentas visuais (pra fazer frente à Microsoft).

Em casos complexos é questão de saber usar o framework. JSF é uma arma bem poderosa que você pode atirar e destruir o alvo ou o próprio pé.

O Struts é um framework bem maduro, oferece menos recursos que o JSF e acaba sendo mais flexível por causa disso. Em alguns pontos JSF ‘engessa’ o desenvolvedor e é preciso conhecer a tecnologia e saber como desenhar a solução pensando nos pontos nos quais JSF não é tão flexível.

A briga entre Struts e JSF é antiga, mas o X é… Não deveriam brigar, no fundo eles tem propósitos diferentes, JSF não foi feito para competir com o Struts e sim com o .Net. Essa ‘briga’ é fruto de desenvolvedores fanáticos por Struts ou por JSF, ou por desenvolvedores que tentaram migrar/aprender o outro framework e não tiveram uma boa experiência (por falta de capacidade, por preguiça, por falta de tempo ou por puro azar mesmo).

Discutir qual é o melhor framework não vai levar a lugar algum, os que queiram tomar partido… divirtam-se :).

O Struts já me foi muito útil no passado, hoje o JSF vem se fortalecendo como padrão e todos os clientes aqui pedem por ele, os fanáticos gostando ou não :slight_smile: .

N

Completando a resposta do Flin,

Hoje trabalho em 4 projetos, 2 em struts e 2 em ADF,
e digo que com o Struts tive menos problemas por
causa do maior controle. Tive a oportunidade de determinar
como funcionaria tudo no meu projeto. Só que deu bastante trabalho.

Já no ADF Faces e BC, vi que a produtividade é realmente boa,
porém a manutenção é um pouco difícil, o que prejudica na parte
pós entrega do projeto, o cliente pede para mudar a funcionalidade
de um link de certo componente, babou, tenho que criar um componente
novo e similar ao mesmo que me permita a mudança.

Em opinião própria eu prefiro o maior controle sobre a aplicação,
porém quando o prazo é apertado, é melhor tirar proveito das facilidades…

Criado 19 de abril de 2007
Ultima resposta 29 de out. de 2009
Respostas 33
Participantes 19