Comparação JSF 1 e 2

Olá Pessoal!

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:

  1. Configuração de ManagedBeans por anotação, no lugar de XML;
  2. Navegação implícita;
  3. Navegação condicional;
  4. Suporte a Bookmarkable URLs;
  5. Suporte a ajax;
  6. Sistema de comportamentos plugaveis;
  7. Facelets como tecnologia padrão de templates;
  8. Melhor suporte à tratamento de exceções;
  9. Configuração de Converters, Validators, Components, Renderes e Behavior por anotação, no lugar de XML;
  10. Suporte à componentes compostos;
  11. Integração com a API Beans Validation;
  12. 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

Thallita Celeste

Olá! Sou Thallita, fundadora do blog ThallitaCeleste. Sou Analista de segurança, com fome de conhecimento e grande vontade de ajudar as pessoas ao redor. Aqui, tento manter meu histórico sobre diversos temas. Bem, seja Bem Vindo ao meu Blog! Espero que goste. o/

Nenhum comentário:

Postar um comentário