Por que JSF é uma melhor opção do que WebWork ?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

Sou totalmente leigo em JSF e na última pesquisa aqui no GUJ apareceu muita gente usando.

Então deixo a pergunta, para entender quais são as vantagens e desvantagens de JSF.

Por que vc usuaria JSF ao invés de WebWork para desenvolvimento para Web ?


Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

depende do tipo de aplicação ...
aplicações que são praticamente só baseadas em formulários, JSF da um ganho de produtividade beem grande, agora um GUJ da vida, não vale a pena implementar usando JSF por exemplo ...

pelo menos é a minha opinião baseada das experiências que eu tive com os dois ...

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
saoj
JWizard
[Avatar]

Membro desde: 09/03/2004 23:34:46
Mensagens: 2667
Localização: Chicago, EUA
Offline

O forte de JSF então seria os componentes/tags da camada view, para exibir/construir o HTML ?

Sergio A Oliveira Jr. - saoj

ExperiMENTA:

Mentawai = http://www.mentaframework.org - Full-stack Java Web Framework com Configuracão Programática
MentaQueue = http://mentaqueue.soliveirajr.com - Queue de alta-performance.
MentaLog = http://mentalog.soliveirajr.com - Non-intrusive, fast, garbage-less, colored and straightforward logging
MentaBean = http://mentabean.soliveirajr.com - Tiny ORM with SQL Builder
MentaRegex = http://mentaregex.soliveirajr.com - Perl-style regex for Java.
MentaContainer = http://mentacontainer.soliveirajr.com - Straightforward IoC, DI e Auto-Wiring
Space4J = http://www.space4j.org - Banco-de-dados de Objetos em Memória
Options-Lib = https://github.com/saoj/options-lib - Ruby classes para ter acesso as opcoes do Yahoo Finance
Selleto = http://www.selleto.com.br
Flipinion = http://www.flipinion.com
Kawai = http://www.kawaiwiki.org


[Email] [WWW]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

acho que o forte é a programação orientada a eventos, ideal para formulários, similar a programação desktop ...
mas os componentes de input, são muito bons,
se estiver usando o myfaces tem mais um monte para layout também (tipo tabbed pane, ... )

o data table é beem interessante (pelo menos o extended do my faces, tem suporte pra ordenação, paginação, ... )

a possibilidade e facilidade de criar componentes novos, incluindo adicionar componentes um dentro do outro via código java (não sei se expliquei ou só compliquei ... )

como ponto fraco, acho que:
os formulários só utilizarem post
não ser exatamente intuitivo a maneira de pegar parametros via URL.

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
ZehOliveira
GUJ Ranger

Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline

saoj wrote:O forte de JSF então seria os componentes/tags da camada view, para exibir/construir o HTML ?

Ao meu ver, sim. A parte de view do JSF eh muito boa, e acho que havera uma grande contribuicao da comunidade com componentes, diferente do que aconteceu com o JavaBeans (o original). O projeto MyFaces da Apache eh um exemplo disso.

Mas por outro lado, a parte de controller do JSF nao eh muito amigavel para o programador que quer trabalhar com aquilo "na mao". Nao podia ser diferente, jah que nao foi projetado pra ser utilizada assim. Por enquanto eh melhor pensar em algum tipo de integracao entre actions/webwork* + view/JSF, ou tentar se virar com a ferramentinha da Sun.

* ou qualquer outro framework mvc de sua preferencia
David
JavaEvangelist
[Avatar]

Membro desde: 18/03/2005 13:10:33
Mensagens: 450
Localização: Natal/RN
Offline

Eu prefiro o WebWork. Já tive algumas raivas com JSF que me deixaram bastante frustrado. Por exemplo:

  • Eu não consigo por exemplo colocar um caption em uma datatable porque o JSF não suporta. Como os caras deixaram passar isso? Uma coisa tão básica? Tão simples? Uma obrigação do JSF, em minha opinião, seria gerar código HTML padronizado com o W3C e isso não acontece sempre.

  • Fazer um combobox é tão complicado que até o struts ganha dele nesse caso. Eu teria que pegar a minha coleção de objetos que eu quero escolher no combobox e transformar em uma coleção de objetos ListItem (não lembro se é isso mesmo). Isso com o tempo encheu o meu saco... Criei um decorator para facilitar, mas mesmo assim!

  • O problema que o urubatan falou, de o formulário só usar post.

  • JSF abre portas para que os programadores façam aplicações web estilo SmartUI, que eu não simpatizo muito. Claro que isso aqui também depende do programador.

  • O XML de configuração do JSF é uma das coisas mais confusas com as quais eu já trabalhei.

  • Ter que fazer um navigation handler para poder implementar qualquer coisa muito diferente do feijão com arroz de envia formulário, mostra dados é complicado. O controller não é amigável, como disse o ZehOliveira.


  • Pontos positivos do JSF:

  • Os projetos paralelos são legais. Existe um chamado facelets que facilita muito a programação e a "customização" de componentes. Vale a pena dar uma olhada.

  • Os componentes de input realmente são bons.

  • Para aplicações que são apenas front-end para bancos de dados, como o urubatan falou, certas coisas ficam bem fáceis. Pega os dados da tabela e joga em um datatable (sem caption ) que ele cuida de paginação, ordenação, etc.


  • Mas enfim, para mim, usar JSF não foi uma experiência tão interessante quanto usar WebWork, Tapestry, Mentawai, Wicket... Aliás, por falar em desenvolvimento Web, a próxima coisa que eu quero aprender é a usar o Spring WebFlow cooperando com SpringMVC ou Tapestry. Alguém já testou o WebFlow?

    David Pereira
    Engenheiro de Computação - UFRN
    Mestre em Engenharia Elétrica
    Doutorando em Engenharia Elétrica
    [WWW]
    urubatan
    Moderador
    [Avatar]

    Membro desde: 21/09/2002 10:31:26
    Mensagens: 2481
    Localização: Porto Alegre/RS
    Offline

    David, só algumas observações sobre as suas frustrações
    David wrote:Eu prefiro o WebWork. Já tive algumas raivas com JSF que me deixaram bastante frustrado. Por exemplo:

  • Eu não consigo por exemplo colocar um caption em uma datatable porque o JSF não suporta. Como os caras deixaram passar isso? Uma coisa tão básica? Tão simples? Uma obrigação do JSF, em minha opinião, seria gerar código HTML padronizado com o W3C e isso não acontece sempre.


  • na verdade ele suporta, beem fácil, mas não muito intuitivo ...
    é só dentro do h:datatable você colocar:
    <f:facet name="title">
    <h:outputText value="Este é o caption da table"/>
    </f:facet>
    David wrote:
  • Fazer um combobox é tão complicado que até o struts ganha dele nesse caso. Eu teria que pegar a minha coleção de objetos que eu quero escolher no combobox e transformar em uma coleção de objetos ListItem (não lembro se é isso mesmo). Isso com o tempo encheu o meu saco... Criei um decorator para facilitar, mas mesmo assim!


  • Realmente, isto é chato
    David wrote:

  • O problema que o urubatan falou, de o formulário só usar post.

  • JSF abre portas para que os programadores façam aplicações web estilo SmartUI, que eu não simpatizo muito. Claro que isso aqui também depende do programador.

  • O XML de configuração do JSF é uma das coisas mais confusas com as quais eu já trabalhei.


  • isto se usar uma ferramenta pra editar ele resolve
    tem plugin pro eclipse, e se tu usar o java studio creator tu não precisa nem ficar sabendo que ele existe, só vai mexer mesmo se for criar um componente novo ...
    David wrote:

  • Ter que fazer um navigation handler para poder implementar qualquer coisa muito diferente do feijão com arroz de envia formulário, mostra dados é complicado. O controller não é amigável, como disse o ZehOliveira.


  • Pontos positivos do JSF:

  • Os projetos paralelos são legais. Existe um chamado facelets que facilita muito a programação e a "customização" de componentes. Vale a pena dar uma olhada.

  • Os componentes de input realmente são bons.

  • Para aplicações que são apenas front-end para bancos de dados, como o urubatan falou, certas coisas ficam bem fáceis. Pega os dados da tabela e joga em um datatable (sem caption ) que ele cuida de paginação, ordenação, etc.


  • não quiz dizer frontent pra banos de dados, disse aplicações baseadas em formulários, existem um monte de aplicações voltadas a formulário que tem muita lógica de negócio ...
    David wrote:


    Mas enfim, para mim, usar JSF não foi uma experiência tão interessante quanto usar WebWork, Tapestry, Mentawai, Wicket... Aliás, por falar em desenvolvimento Web, a próxima coisa que eu quero aprender é a usar o Spring WebFlow cooperando com SpringMVC ou Tapestry. Alguém já testou o WebFlow?

    []'s
    Rodrigo Urubatan
    http://www.urubatan.com.br
    Melhor livro de RoR do brasil: http://livro.urubatan.com.br
    [WWW]
    David
    JavaEvangelist
    [Avatar]

    Membro desde: 18/03/2005 13:10:33
    Mensagens: 450
    Localização: Natal/RN
    Offline

    urubatan wrote:
    <f:facet name="title">
    <h:outputText value="Este é o caption da table"/>
    </f:facet>
    Bom saber... Depois eu vou dar uma testada. Mas eu juro a você que eu falei aquilo porque eu nunca vi isso em nenhum canto. Procurei no google, no JSF in Action, no Mastering JSF e no Core JSF (não são todos meus, peguei emprestado ) e não encontrava. Desisti de procurar quando vi em certo lugar que isso estava para ser colocado na nova versão da especificação. Mas é bom saber que é possível!

    urubatan wrote:
    não quiz dizer frontent pra banos de dados, disse aplicações baseadas em formulários, existem um monte de aplicações voltadas a formulário que tem muita lógica de negócio ...
    Sorry. Realmente eu interpretei mal.

    David Pereira
    Engenheiro de Computação - UFRN
    Mestre em Engenharia Elétrica
    Doutorando em Engenharia Elétrica
    [WWW]
    Rubem Azenha
    GUJ Master
    [Avatar]

    Membro desde: 28/06/2004 00:10:43
    Mensagens: 1933
    Localização: São Paulo, SP
    Offline

    Uma vantagem tremenda do JSF é fazer parte de uma especificação.



    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning
    [WWW]
    ricardolecheta
    GUJ Master
    [Avatar]

    Membro desde: 17/05/2003 13:42:10
    Mensagens: 1486
    Localização: Curitiba
    Offline

    microfilo wrote:Uma vantagem tremenda do JSF é fazer parte de uma especificação.

    e isto responde os projetos secundários....

    no ww agora tem o datepicker, editor WYSIWYG, tabbed pane, etc... isto nao é coisa que só a JSF pode fazer..

    na verdade os caras nao inovaram nada. fizeram tudo que já existe. Agora é só a Sun dizer que existe um padrao para começar a aparecer projetinhos e empresas como IBM.. Oracle, etc a dar suporte com IDE´s.. lamentável.

    Prefiro o WW. Faço uma action que não faz extends de ninguem e tem get/set. É lindo!. Chamo minha action de uma função "main" ou da web, tanto faz.

    o fato de a JSF ter componentes visuais não é devido a ser um padrão? será que se a JSF não fosse padrão teria tanta aceitação? provavelmete não.

    e tb nao gostei do xml deles ehehe.

    e no WW agora tem o ActionMapper (estou fazendo um sistema inteiro sem o xwork.xml)... e o ajax no webwork integrado ao dojo toolkit ficou show de bola!

    Ricardo R. Lecheta
    Livro - Google Android (português)
    http://www.livroandroid.com.br/
    http://livroandroid.blogspot.com/
    http://www.livetouch.com.br/
    ricardolecheta
    GUJ Master
    [Avatar]

    Membro desde: 17/05/2003 13:42:10
    Mensagens: 1486
    Localização: Curitiba
    Offline

    um colega meu foi trabalhar para a IBM a pouco tempo...

    eles estão usando JSF...

    meu colega conhecia somente o Sruts...

    e está achando a JSF uma bela mer**... e estão tendo que customizar várias coisas ...

    resumindo: ele comparou com Struts e prefere o Struts.

    sei lá, nunca fui muito a fundo na JSF, mas só de olhar já nao gostei... então eu tento estudar um pouquinho e gosto menos ainda...

    é meio complicado demais não é?


    Ricardo R. Lecheta
    Livro - Google Android (português)
    http://www.livroandroid.com.br/
    http://livroandroid.blogspot.com/
    http://www.livetouch.com.br/
    pcalcado
    Moderador
    [Avatar]

    Membro desde: 08/03/2004 17:19:35
    Mensagens: 5174
    Localização: Sydney - Australia
    Offline

    É impressão minha ou JSF é mais para aplicações web do que sites?

    Eu sinceramente não vejo a hora de HTML+HTTP virar passado para aplicações e achoi que JSF é algo que amarra mais ainda Java à esse mundinho onde uma linguagem de hipertexto serve para tudo...

    Phillip Calçado "Shoes"
    http://fragmental.tw/
    http://blog.fragmental.com.br/
    "It is unfortunate that much of what is called 'object-oriented programming today is simply old style programming with fancier constructs." - Alan Kay
    [Email] [WWW] [Yahoo!] [MSN]
    bombbr
    Java Ninja
    [Avatar]

    Membro desde: 20/02/2005 21:56:17
    Mensagens: 256
    Offline


    Enfatizando algumas coisas que já foi dito e adicionando algumas opiniões.

    A utilização de JSF deve ser levada em consideração quando um sistema tem como caracteristica muitas telas com formulários padrão, listagens , consultas padrão....

    Alguns pontos positivos:

    - Componentização. Permitindo a utilização de componentes padrões ou extender e personalizar seus próprios componentes.

    - Com a padronização dos componentes UI, cada vez mais empresas e particulares tendem a desenvolver mais componentes, como exemplo:

    http://myfaces.apache.org/sandbox/index.html
    http://myfaces.apache.org/tomahawk/index.html
    http://myfaces.apache.org/tobago/
    ADF
    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/about_components.html

    - Controle de estado dos componentes.
    Exemplo: Manutenção dos dados entre uma requisição e outra.
    Controle de renderização ou não do compomente. (Isto sem ifs na jsp).

    - Validação server-side e/ou cliente-side(ADF).

    - Utilização de Drag and Drop dos componentes. (ferramentas muito pessadas, tendem a evoluir)

    - Integração com outros frameworks. Ex. http://struts.apache.org/struts-faces/index.html

    - Como já foi dito, faz parte de uma JSR.

    - Managed Beans ("actions") são controlados pelo framework JSF (Inversion of Control).

    - Ao contrario do que foi dito, na minha opinião, controller não deve nada a outros frameworks. Bem simples basta criar um JavaBean e configuar a navegação no XML.

    Alguns pontos negativos:

    - Relativa perda de controle de HTML e javascripts que você queira adicionar em sua página.

    - Configurações em aquivos XML. (Sem uma boa ferramenta, se torna improdutivo)

    - Apesar do JSF não depender de ferramentas (IDE), sem uma boa ferramenta o desenvolvimento de torna improdutivo.

    - Complica o que deveria ser simples, como montagem de um combobox, listagem com radio

    - Não tão maduro quanto outros frameworks.

    - Pouco material /suporte disponível. (Sem comparado com outros frameworks)






    "Não existe trabalho ruim. Ruim é ter que trabalhar." (Seu Madruga)
    bombbr
    Java Ninja
    [Avatar]

    Membro desde: 20/02/2005 21:56:17
    Mensagens: 256
    Offline

    ricardolecheta wrote:um colega meu foi trabalhar para a IBM a pouco tempo...
    eles estão usando JSF...
    meu colega conhecia somente o Sruts...
    e está achando a JSF uma bela mer**... e estão tendo que customizar várias coisas ...
    resumindo: ele comparou com Struts e prefere o Struts.
    sei lá, nunca fui muito a fundo na JSF, mas só de olhar já nao gostei... então eu tento estudar um pouquinho e gosto menos ainda...
    é meio complicado demais não é?


    Não concordo com seu amigo....já trabalhei com Struts (trabalho ainda) e trabalho com JSF.....
    JSF é muito mais muito mais produtivo que Struts, sem contar e tem uma melhor arquitetura.
    Concordo que só os compomentes padrão JSF, não são suficientes para a maioria dos casos, mas por isso que estão surgindo componentes de terceiros por aí.....e criar um componente customizado não é tão dificil....

    Complicado? Quando eu comecei trabalhar com struts também achava complicado......


    "Não existe trabalho ruim. Ruim é ter que trabalhar." (Seu Madruga)
    bombbr
    Java Ninja
    [Avatar]

    Membro desde: 20/02/2005 21:56:17
    Mensagens: 256
    Offline

    ricardolecheta wrote:
    Prefiro o WW. Faço uma action que não faz extends de ninguem e tem get/set. É lindo!. Chamo minha action de uma função "main" ou da web, tanto faz.


    Os MBs (Managers Beans) também não estendem ninguém.....

    ricardolecheta wrote:
    e tb nao gostei do xml deles ehehe.


    Agora quero saber? O que o xml do WW tem de melhor? hehehehe



    "Não existe trabalho ruim. Ruim é ter que trabalhar." (Seu Madruga)
     
    Índice dos Fóruns » Desenvolvimento Web
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team