Assim como esperado, o post de hoje é Comparação JSF 1 e 2.
Separei alguns tópicos para poder apresentar:
→ Ajax:
JSF 1 - Possui suporte ao Ajax, mas é necessário utilizar uma biblioteca de componentes de ajax para as páginas existentes sem necessitar escrever qualquer código javascript.
JSF 2 - O Ajax passa a ser um mecanismo nativo do JSF 2. O apoio acontece dentro das tags.
→ Escopo:
JSF 1 - Não possui nativamente definição de escopo, funciona a partir de adição de componentes de outro framework como (Tomahawk) para ganhar escopo.
JSF 2 - O JSF 2 também fornece um mecanismo para a definição de escopos personalizados, para definição de escopo de beans gerenciáveis.
→ Navegação:
JSF 1 - As regras de navegação foram explicitamente definido no arquivo de configuração ( faces-config.xml ).
JSF 2 - O JSF 2 inclui bookmarkability, navegação com regras de navegação XML, navegação condicional, o suporte para o padrão POST-REDIRECT-GET, flash, tempo de execução e fiscalização de execução de regras de navegação.
→ Tratamento de exceções:
JSF 1 - Existência dos escopos request, session e application.
JSF 2 - Agora o JSF 2 ganhou um mecanismo de tratamento de exceções padrão. ExceptionHandler é uma central, que através do qual todas as exceções são canalizadas. Isso permite construir facilmente uma página de erro que usa componentes JSF.
→ EL (Expression Language):
JSF 1 - O recurso existe na 1ª versão.
JSF 2 - Foram introduzidos vários novos objetos implícitos, e o EL agora suporta invocação de método em métodos Java arbitrárias,
incluindo passagem de parâmetros. Um ponto importante é a injeção de dependência no bean gerenciável que é feita através de EL no valor da anotação
→ Annotation:
JSF 1 - É necessário declarar os componentes no arquivo de configuração ( faces-config.xml ).
JSF 2 - É possível declarar todos os componentes específicos do JSF usando anotações. As anotações evitam a necessidade de XML. A navegação pode ser totalmente ser feito sem configuração XML.
Bom, depois dessa sessão de comparações de versão, separei umas novidades:
As principais melhorias do JSF2 em relação ao JSF 1 são:
- Configuração de ManagedBeans por anotação, no lugar de XML;
- Navegação implícita;
- Navegação condicional;
- Suporte a Bookmarkable URLs;
- Suporte a ajax;
- Sistema de comportamentos plugaveis;
- Facelets como tecnologia padrão de templates;
- Melhor suporte à tratamento de exceções;
- Configuração de Converters, Validators, Components, Renderes e Behavior por anotação, no lugar de XML;
- Suporte à componentes compostos;
- Integração com a API Beans Validation;
- Melhor suporte a callbacks nas fases do ciclo de vida das requisições JSF.
Considerações curiosas das Versões:
Uma novidade apresentada no JSF 2.0 é a chamada navegação implícita, na qual há apenas a necessidade de mapear o Faces Servlet no arquivo de configuração web.xml. O JSF 2.0 também apresenta uma novidade para a navegação baseada em regras (aquela definida através de configuração XML): a navegação condicional. Nela, é possível definir restrições no arquivo de configuração do JSF, o faces-config.xml.
Diferentemente da implícita, a navegação condicional é definida juntamente com as regras de navegação da aplicação, no arquivo faces-config.xml.
Componentes em materiais compósitos - Este recurso permite a criação de componentes JSF verdadeiros como agregações de outros componentes JSF. Com esse recurso, é fácil de construir seus próprios componentes JSF personalizado e refatorar seus pontos de vista existentes em componentes reutilizáveis, completos com os ouvintes, atributos e eventos.
Parcial Saving Estado - uma das maiores queixas agasint JSF tem sido a quantidade de memória que consome para manter o estado de exibição entre os pedidos. Esse recurso reduz drasticamente a quantidade de memória para este fim, bem como simplificando enormemente o API para a manipulação do estado no desenvolvimento de componentes personalizados.
Visualização de Parâmetros - Outra grande queixa contra JSF é a insistência em usar POST para navegações inter-página.
FacesContext Servlet acesso já está disponível durante a inicialização do aplicativo e desligamento.
JSF 2.0 agora permite que o desenvolvedor para contar o tempo de execução em que fase do ciclo de vida de desenvolvimento de software o tempo de execução está em execução.
Na versão 1.0 e 1.1 do JSF haviam EL's diferentes entre JSP e JSF.
Na versão 2.0 do JSF os artefatos (conversores, renderizadores e etc.) devem ser colocados no WAR permitindo ao container encontra-los. Sem a necessidade de sua definição em arquivos de configuração.
Na versão 2.0 do JSF os artefatos podem ser alterados sem a necessidade de reiniciar o servidor.
Bom, depois das comparações, melhorias e considerações... Vem claro a minha consideração e apreço pelo Framework.
Assim como o Struts, também utilizei as 2 versões do JSF ,começei pelo JSF 1.2 e fui para a versão 2.0. Com isso, notei um penhasco de diferença para realizar algumas coisas.
Para se construir e modificar uma tela web fica muito mais fácil de se produzir. Utilizei demais os modelos de componentes (UI) e digo com propriedade que é realmente simples de se fazer. Tudo é configuravel e no fim, é gerado um simples template. Onde seu trabalho é 'linkar' o template a sua aplicação.
Realmente facilitou a minha vida e provavelmente a vida de 'meio mundo' que utiliza ou utilizava este recurso, rs.
As mudanças são percebidas facilmente e com o tempo se tornam intuitivas.
Referência:
Templates Jquery UI: http://jqueryui.com/
Bom pessoal, espero que tenham gostado, este post foi bem longo... Mas foi preciso. :-)
Até a próxima galera! \o
0 comments:
Postar um comentário