SlideShare ist ein Scribd-Unternehmen logo
1 von 52
Bibliotecas de
Interface Rica no
JSF2
Um Comparativo Entre RichFaces,
PrimeFaces e ICEfaces
Pablo Nóbrega
http://pablonobrega.wordpress.com
Mai/2013
Perfil
• Pablo Nóbrega
– Analista de Sistemas Senior da UECE;
– Graduado em Ciência da Computação (UNIFOR);
– Mestrando em Computação Aplicada (UECE);
– Programador Java há 8 anos e certificado SCJP e
SCWCD;
– Publicador eventual na Java Magazine.
2
Agenda
• Visão Geral de RIA;
• Vantagens e Desvantagens de RIA;
• RIA no JSF2
– RichFaces;
– PrimeFaces;
– ICEfaces.
• Análise Comparativa
– Componentes;
– Documentação/Material de Consulta;
– Comunidade/Ocorrências em Aberto;
– Popularidade;
– Testes de Desempenho.
• Conclusão.
3
Visão Geral de RIA
• RIA (Rich Internet Application) surgiu em
2002 através da Macromedia;
• Objetivo
– Trazer para o ambiente web, características e
funcionalidades do desktop, proporcionando uma
experiência mais agradável para o usuário.
• Características Principais
– Normalmente roda em um navegador;
– Usa client-engine.
4
Visão Geral de RIA (2)
• Principais soluções:
– Flash;
– Silverlight;
– JavaFX.
5
Fonte: StatOwl (http://www.statowl.com)
Visão Geral de RIA (3)
• Outras soluções:
6
Vantagens e Desvantagens de
RIA
• Vantagens
– Uso de recursos visuais modernos;
– Execução de processamento assíncrono;
– Diminuição no tráfego de rede;
– Redução da complexidade das aplicações.
• Desvantagens
– Necessidade de conexão com a internet*;
– Javascript desabilitado no navegador;
– Tempo de carregamento da aplicação.
7
RIA no JSF2
• JSR-127 do JSF 1.0
– Especificação baseada em arquitetura extensível
• Facilitou a criação de bibliotecas RIA com recursos
adicionais para o desenvolvedor.
• Soluções RIA no mercado surgiram
rapidamente
8
RIA no JSF2 (2)
• A utilização de RIA no JSF se difundiu
– Componentes visuais nativos do JSF são poucos e
muito rústicos;
– Inexistência de suporte nativo a temas/skins;
– Modelo nativo de requisições AJAX simples
• Inexistência de mecanismos como push, fila, etc.
9
RichFaces
• Surgiu pela americana Exadel em 2006;
• Em 2007, a JBoss fez um acordo com a Exadel,
adicionou o Ajax4jsf e assumiu o controle da
biblioteca;
• Usa o jQuery internamente;
• Suporte à validação de campos client-side,
seguindo a JSR-303 Bean Validation;
10
RichFaces (2)
• Três bibliotecas como dependência
– Número de jar’s pode aumentar de acordo com os
recursos utilizados.
• Dois namespaces:
– Componentes visuais autônomos;
– Controles e componentes ajax.
• Recursos AJAX de fila e push;
• Subprojeto Component Development Kit (CDK)
– Permite a criação de componentes baseados
nos templates fornecidos pela biblioteca.
11
PrimeFaces
• Lançado em 2008 através da empresa
turca Prime Technology;
• Possui versão para dispositivos móveis chamada
PrimeFaces Mobile;
• Usa o jQuery internamente;
• Um único namespace na página para
componentes comuns e AJAX;
• Skins baseados no ThemeRoller
(http://jqueryui.com/themeroller);
12
PrimeFaces (2)
• Nenhuma dependência
– Apenas um JAR na aplicação.
• PrimeFaces PRO
– Plano pago para suporte diferenciado.
13
ICEfaces
• Surgiu em 2004 pela canadense ICEsoft
Technologies;
• Duas categorias de componentes na versão gratuita:
– ACE Components;
– ICE Components.
• Dois namespaces;
• Possui versão paga que inclui
– Mais de 30 componentes adicionais através da categoria
EE Components;
– Recursos e funcionalidades extras;
– Componentes e classes aprimoradas.
14
ICEfaces (2)
• Versão para dispositivos móveis chamada
IceMobile;
• Baseado no jQuery e Yahoo UI;
• Adiciona três anotações ao JSF
– @AllWindowsClosed chama o método com a
anotação após todas as janelas do navegador
associadas a uma sessão serem fechadas.
15
ICEfaces (3)
• Adiciona escopo Window Scope entre o
View Scope e o Session Scope
– Gerencia o ciclo de vida do navegador ou de uma
aba.
• Plugins para Eclipse e Netbeans com recursos de
arrastar e soltar;
• Suporte a skins baseado no ThemeRoller
(http://jqueryui.com/themeroller);
• Embate ético com o PrimeFaces.
16
Análise Comparativa
• Analisar:
– Recursos;
– Características.
• Verificar Pontos Fortes e Pontos Fracos
– Apenas versões gratuitas dos três frameworks
• RichFaces 4.2.3;
• PrimeFaces 3.4.1;
• IceFaces 3.2.0.
• Determinar a melhor opção.
17
Análise Comparativa (2)
• Aspectos
– Componentes;
– Documentação/Material de Consulta;
– Comunidade/Ocorrências em Aberto;
– Popularidade;
– Testes de Desempenho
• Datatable;
• Menu;
• Painel e Componente de Edição HTML WYSIWYG;
• Painel e Requisição AJAX.
18
Componentes
PrimeFaces RichFaces ICEfaces
• +150 componentes;
• Versões melhoradas dos
componentes de input e
botões do JSF (inputText,
commandButton,
selectOneRadio, etc);
• Recursos diferenciados:
captcha, mindmap, wizard,
tagCloud, imageCropper,
etc;
• Componentes para geração
de gráficos estatísticos.
• +80 componentes;
• Validação client-side
seguindo a JSR-303
(rich:validator);
• Recursos
diferenciados:
componentes drag
and drop e
inputNumberSlider.
• + 100 componentes nas
categorias ACE e ICE
 Alguns duplicados.
• Destaque para o
dataTable
 Recursos
avançados.
• Recursos diferenciados:
componente drag and
drop e sliderEntry;
• Componente para
geração de gráficos
estatísticos.
19
Componentes (2)
Framework Pontuação
PrimeFaces
RichFaces
ICEfaces
20
Documentação/Material de
Consulta
PrimeFaces RichFaces ICEfaces
• Documentação em PDF;
• FAQ no formato Wiki;
• Documentação da API e
dos componentes on-
line (VDL).
• Documentação em
HTML e PDF;
• FAQ no formato Wiki;
• Tutoriais;
• Screencasts;
• Documentação da API e
dos componentes on-
line (VDL).
• Documentação no
formato wiki;
• Treinamento contendo
vídeos, slides e
exercícios;
• Tutoriais;
• Webinars gravados.
21
Documentação/Material de Consulta
(2)
Framework Pontuação
ICEfaces
RichFaces
PrimeFaces
22
Comunidade/Ocorrências em
Aberto
PrimeFaces RichFaces ICEfaces
• 18.400 discussões no
fórum;
• 15.700 membros;
• Utilização do Google
Code para gerenciar os
erros e tarefas;
• 533 chamados em
aberto, de um total de
5.017
 11% do total
o 99% com
prioridade
média.
• 20.000 tópicos no
fórum;
• 7.300 membros;
• Utilização do Jira para
gerenciar os erros e
tarefas;
• Cerca de 2.150
ocorrências em aberto
de um total de 12.400
 17,3% do total
o 68% com
prioridade
alta ou
crítica.
• 18.000 tópicos
cadastrados;
• ? membros cadastrados
• Fórum único para
todos os produtos da
ICEsoft
• Utilização do Jira;
• 1.700 chamados em
aberto, de um total de
6.500
 26,1% do total
o 93% de
prioridade alta
ou crítica.
23
Comunidade/Ocorrências em Aberto
(2)
Framework Pontuação
PrimeFaces
RichFaces
ICEfaces
24
Popularidade
25
PrimeFaces
Fonte: Google Trends
Popularidade (2)
26
RichFaces
Fonte: Google Trends
Popularidade (3)
27
ICEfaces
Fonte: Google Trends
Popularidade (4)
28
Fonte: Google Trends
Popularidade (5)
Framework Pontuação
PrimeFaces
RichFaces
ICEfaces
29
Testes de Desempenho
• Realizados em ambiente local;
• Tamanho do response analisado;
– Request também foi verificado nos testes de AJAX;
• Configuração do ambiente:
– Intel Core i5 com Windows 7 Professional 64 bits;
– Mojarra 2.1.7;
– Apache Tomcat v7.0.27 32 bits;
– JDK 1.7.0_05 64 bits.
30
Testes de Desempenho (2)
• Códigos baseados na documentação e/ou
na página de demonstração dos frameworks;
• Três principais navegadores utilizados
– Cache desabilitado.
• Softwares e Ferramentas:
– Google Chrome 23.0 32 bits e pacote nativo de
ferramentas do desenvolvedor;
– Internet Explorer 9.0 32 bits e pacote nativo de
ferramentas do desenvolvedor;
– Mozilla Firefox 17.0 32 bits e extensão Firebug 1.11.1.
31
Teste de Datatable
RichFaces
32
Teste de Datatable (2)
PrimeFaces
33
Teste de Datatable (3)
ICEfaces
34
Teste de Datatable (4)
Resultados
35
Framework
Tamanho da Resposta
Pontuação
Chrome Firefox IE
RichFaces 365,06Kb 360,8Kb 364,66Kb
PrimeFaces 606,49Kb 604,3Kb 614,92Kb
ICEfaces 1,01Mb 1Mb 1,01Mb
• O resultado do RichFaces foi quase três vezes
melhor que o do ICEfaces e cerca de 70%
melhor que o do PrimeFaces.
Teste de Menu
RichFaces
36
Teste de Menu (2)
PrimeFaces
37
Teste de Menu (3)
ICEfaces
38
Teste de Menu (4)
Resultados
39
Framework
Tamanho da Resposta
Pontuação
Chrome Firefox IE
RichFaces 392,74Kb 387,3Kb 392,98Kb
PrimeFaces 601,65Kb 599,5Kb 604,05Kb
ICEfaces 901,45Kb 897,6Kb 900,48Kb
• O resultado do RichFaces foi mais de duas vezes
melhor que o do ICEfaces e cerca de 50%
melhor que o do PrimeFaces.
Teste de Painel e Componente de
Edição HTML WYSIWYG
PrimeFaces
40
Teste de Painel e Componente de
Edição HTML WYSIWYG (2)
RichFaces
41
Teste de Painel e Componente
de Edição HTML WYSIWYG (3)
ICEfaces
42
Teste de Painel e Componente de
Edição HTML WYSIWYG (4)
Resultados
43
Framework
Tamanho da Resposta
Pontuação
Chrome Firefox IE
PrimeFaces 618,30Kb 615,3Kb 620,68Kb
RichFaces 788,36Kb 780,7Kb 775,38Kb
ICEfaces 1,37Mb 1,4Mb 1,38Mb
• O resultado do PrimeFaces foi mais de duas vezes melhor
que o do ICEfaces e cerca de 30% melhor que o do RichFaces;
 O PrimeFaces é o único que usa o TinyMCE, enquanto os
concorrentes usam o CKEditor.
Teste de Painel e Requisição
AJAX
PrimeFaces
44
Teste de Painel e Requisição
AJAX (2)
RichFaces
45
Teste de Painel e Requisição
AJAX (3)
ICEfaces
46
Teste de Painel e Requisição
AJAX (4)
Resultados
47
Framework
Tamanho da Requisição Tamanho da Resposta
Pontuação
Chrome* Firefox IE* Chrome Firefox IE
PrimeFaces 0,45Kb 1,05Kb 0,45Kb 1,42Kb 1,42Kb 1,42Kb
RichFaces 0,59Kb 1,19Kb 0,59Kb 1,42Kb 1,42Kb 1,42Kb
ICEfaces 1,10Kb 1,55Kb 1,12Kb 1,55Kb 1,56Kb 1,57Kb
* Não inclui o cabeçalho HTTP
• O PrimeFaces foi mais de duas vezes melhor que o ICEfaces e
cerca de 30% melhor que o RichFaces no request ;
• O response do ICEfaces foi em média cerca de 10% pior que o
apresentado pelos dois concorrentes.
Conclusão
• Pontos Fortes
– Componentes;
– Melhor performance em dois dos quatro testes de
desempenho;
– Popularidade em alta no Brasil e no Mundo.
• Pontos Fracos
– Documentação;
– Fórum pode ser melhorado.
48
PrimeFaces
Conclusão (2)
• Pontos Fortes
– Melhor performance em dois dos quatro testes de
desempenho
• Tamanho de resposta HTML bastante inferior aos concorrentes nos
dois casos.
– Validação client-side.
• Pontos Fracos
– Poucos componentes
• Ausência de recursos para geração de gráficos estatísticos.
– Popularidade em baixa;
– Wiki bastante incompleto.
49
RichFaces
Conclusão (3)
• Pontos Fortes
– Documentação de excelente qualidade;
– Fórum bastante organizado.
• Pontos Fracos
– Depempenho crítico nos quatro testes de
desempenho;
– Popularidade em baixa;
– Diversificação dos componentes pode ser melhorada.
50
ICEfaces
Conclusão (4)
51
Framework Pontuação Final
PrimeFaces
RichFaces
ICEfaces
Resultado Final
Fim
• Contatos
– Blog
• http://pablonobrega.wordpress.com
– E-mail
• pablonobrega2004@gmail.com
– Skype
• pablodeletado@hotmail.com
52

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
JavaME
JavaMEJavaME
JavaME
 
O Futuro do ASP.NET
O Futuro do ASP.NETO Futuro do ASP.NET
O Futuro do ASP.NET
 
Treinamento Android Nooclix
Treinamento Android NooclixTreinamento Android Nooclix
Treinamento Android Nooclix
 
3. apresentacao rp tec com 2018 gustavo bernardes
3. apresentacao rp tec com 2018 gustavo bernardes3. apresentacao rp tec com 2018 gustavo bernardes
3. apresentacao rp tec com 2018 gustavo bernardes
 
ArcServe in the AWS Cloud - part II
ArcServe in the AWS Cloud - part IIArcServe in the AWS Cloud - part II
ArcServe in the AWS Cloud - part II
 
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o AzureQCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
QCon 2016 - Como migramos uma solução de 4 milhões de usuários para o Azure
 
Atlassian Confluence pela 3layer Tecnologia
Atlassian Confluence pela 3layer TecnologiaAtlassian Confluence pela 3layer Tecnologia
Atlassian Confluence pela 3layer Tecnologia
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Webinar: Como obter valor comercial com Big Data
Webinar: Como obter valor comercial com Big DataWebinar: Como obter valor comercial com Big Data
Webinar: Como obter valor comercial com Big Data
 
Primeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile HubPrimeiros passos utilizando o AWS Mobile Hub
Primeiros passos utilizando o AWS Mobile Hub
 
Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS Webinar: Serviço de Distribuição de Conteúdo da AWS
Webinar: Serviço de Distribuição de Conteúdo da AWS
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
 
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorWebinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
 
Infrastructure Testing
Infrastructure TestingInfrastructure Testing
Infrastructure Testing
 
Segurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheirasSegurança e automação na Amazon: Lições das trincheiras
Segurança e automação na Amazon: Lições das trincheiras
 

Andere mochten auch

Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
Paulo Neto
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude
 
Kunci Jawaban Quiz Parampaa Level 1 - 100
Kunci Jawaban Quiz Parampaa Level 1 - 100Kunci Jawaban Quiz Parampaa Level 1 - 100
Kunci Jawaban Quiz Parampaa Level 1 - 100
Ramadhani Sardiman
 

Andere mochten auch (20)

Tutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans
Tutorial: Gerando Relatórios Com JasperReports e iReports no NetbeansTutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans
Tutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Desenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EE
 
Apresentação jsf 2.0
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0
 
Apresentando jsf
Apresentando jsfApresentando jsf
Apresentando jsf
 
Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)
 
JSF com Primefaces
JSF com PrimefacesJSF com Primefaces
JSF com Primefaces
 
Graficos com PrimeFaces
Graficos com PrimeFacesGraficos com PrimeFaces
Graficos com PrimeFaces
 
Projeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando PadrõesProjeto e Implementação de Software Utilizando Padrões
Projeto e Implementação de Software Utilizando Padrões
 
Spring Capitulo 06
Spring Capitulo 06Spring Capitulo 06
Spring Capitulo 06
 
Prime Faces
Prime FacesPrime Faces
Prime Faces
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
Javafree
JavafreeJavafree
Javafree
 
Introdução a jsf
Introdução a jsfIntrodução a jsf
Introdução a jsf
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Kunci Jawaban Quiz Parampaa Level 1 - 100
Kunci Jawaban Quiz Parampaa Level 1 - 100Kunci Jawaban Quiz Parampaa Level 1 - 100
Kunci Jawaban Quiz Parampaa Level 1 - 100
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 

Ähnlich wie Bibliotecas de interface rica no jsf 2

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Jairo Junior
 

Ähnlich wie Bibliotecas de interface rica no jsf 2 (20)

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Anatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer FacesAnatomia do JSF – JavaServer Faces
Anatomia do JSF – JavaServer Faces
 
Mini curso JBC
Mini curso JBCMini curso JBC
Mini curso JBC
 
Java v1.1
Java v1.1Java v1.1
Java v1.1
 
JBoss-WildFly - Avançado
JBoss-WildFly - AvançadoJBoss-WildFly - Avançado
JBoss-WildFly - Avançado
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Cake PHP
Cake PHPCake PHP
Cake PHP
 
TDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScriptTDC2016SP - Trilha Frameworks JavaScript
TDC2016SP - Trilha Frameworks JavaScript
 
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
Estação de Controle Multimídia com Interface Web utilizando Sistema Operacion...
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Web Tools Pt Br
Web Tools Pt BrWeb Tools Pt Br
Web Tools Pt Br
 
Integração do Zabbix com Grafana
Integração do Zabbix com GrafanaIntegração do Zabbix com Grafana
Integração do Zabbix com Grafana
 
Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011Palestra Zend Framework na Campus Party 2011
Palestra Zend Framework na Campus Party 2011
 
Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0Java EE 6 e JBoss 6.0
Java EE 6 e JBoss 6.0
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariaisRuby on Rails: um estudo de viabilidade em ambientes empresariais
Ruby on Rails: um estudo de viabilidade em ambientes empresariais
 
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e ZendAnálise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
Análise sobre a utilização de frameworks em PHP: CakePHP, CodeIgniter e Zend
 
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações WebFrameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
Frameworks Opensource: ferramentas para desenvolvimento rápido de aplicações Web
 
Curso jsf
Curso jsfCurso jsf
Curso jsf
 
(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax(A18) LabMM3 - Ajax
(A18) LabMM3 - Ajax
 

Bibliotecas de interface rica no jsf 2

  • 1. Bibliotecas de Interface Rica no JSF2 Um Comparativo Entre RichFaces, PrimeFaces e ICEfaces Pablo Nóbrega http://pablonobrega.wordpress.com Mai/2013
  • 2. Perfil • Pablo Nóbrega – Analista de Sistemas Senior da UECE; – Graduado em Ciência da Computação (UNIFOR); – Mestrando em Computação Aplicada (UECE); – Programador Java há 8 anos e certificado SCJP e SCWCD; – Publicador eventual na Java Magazine. 2
  • 3. Agenda • Visão Geral de RIA; • Vantagens e Desvantagens de RIA; • RIA no JSF2 – RichFaces; – PrimeFaces; – ICEfaces. • Análise Comparativa – Componentes; – Documentação/Material de Consulta; – Comunidade/Ocorrências em Aberto; – Popularidade; – Testes de Desempenho. • Conclusão. 3
  • 4. Visão Geral de RIA • RIA (Rich Internet Application) surgiu em 2002 através da Macromedia; • Objetivo – Trazer para o ambiente web, características e funcionalidades do desktop, proporcionando uma experiência mais agradável para o usuário. • Características Principais – Normalmente roda em um navegador; – Usa client-engine. 4
  • 5. Visão Geral de RIA (2) • Principais soluções: – Flash; – Silverlight; – JavaFX. 5 Fonte: StatOwl (http://www.statowl.com)
  • 6. Visão Geral de RIA (3) • Outras soluções: 6
  • 7. Vantagens e Desvantagens de RIA • Vantagens – Uso de recursos visuais modernos; – Execução de processamento assíncrono; – Diminuição no tráfego de rede; – Redução da complexidade das aplicações. • Desvantagens – Necessidade de conexão com a internet*; – Javascript desabilitado no navegador; – Tempo de carregamento da aplicação. 7
  • 8. RIA no JSF2 • JSR-127 do JSF 1.0 – Especificação baseada em arquitetura extensível • Facilitou a criação de bibliotecas RIA com recursos adicionais para o desenvolvedor. • Soluções RIA no mercado surgiram rapidamente 8
  • 9. RIA no JSF2 (2) • A utilização de RIA no JSF se difundiu – Componentes visuais nativos do JSF são poucos e muito rústicos; – Inexistência de suporte nativo a temas/skins; – Modelo nativo de requisições AJAX simples • Inexistência de mecanismos como push, fila, etc. 9
  • 10. RichFaces • Surgiu pela americana Exadel em 2006; • Em 2007, a JBoss fez um acordo com a Exadel, adicionou o Ajax4jsf e assumiu o controle da biblioteca; • Usa o jQuery internamente; • Suporte à validação de campos client-side, seguindo a JSR-303 Bean Validation; 10
  • 11. RichFaces (2) • Três bibliotecas como dependência – Número de jar’s pode aumentar de acordo com os recursos utilizados. • Dois namespaces: – Componentes visuais autônomos; – Controles e componentes ajax. • Recursos AJAX de fila e push; • Subprojeto Component Development Kit (CDK) – Permite a criação de componentes baseados nos templates fornecidos pela biblioteca. 11
  • 12. PrimeFaces • Lançado em 2008 através da empresa turca Prime Technology; • Possui versão para dispositivos móveis chamada PrimeFaces Mobile; • Usa o jQuery internamente; • Um único namespace na página para componentes comuns e AJAX; • Skins baseados no ThemeRoller (http://jqueryui.com/themeroller); 12
  • 13. PrimeFaces (2) • Nenhuma dependência – Apenas um JAR na aplicação. • PrimeFaces PRO – Plano pago para suporte diferenciado. 13
  • 14. ICEfaces • Surgiu em 2004 pela canadense ICEsoft Technologies; • Duas categorias de componentes na versão gratuita: – ACE Components; – ICE Components. • Dois namespaces; • Possui versão paga que inclui – Mais de 30 componentes adicionais através da categoria EE Components; – Recursos e funcionalidades extras; – Componentes e classes aprimoradas. 14
  • 15. ICEfaces (2) • Versão para dispositivos móveis chamada IceMobile; • Baseado no jQuery e Yahoo UI; • Adiciona três anotações ao JSF – @AllWindowsClosed chama o método com a anotação após todas as janelas do navegador associadas a uma sessão serem fechadas. 15
  • 16. ICEfaces (3) • Adiciona escopo Window Scope entre o View Scope e o Session Scope – Gerencia o ciclo de vida do navegador ou de uma aba. • Plugins para Eclipse e Netbeans com recursos de arrastar e soltar; • Suporte a skins baseado no ThemeRoller (http://jqueryui.com/themeroller); • Embate ético com o PrimeFaces. 16
  • 17. Análise Comparativa • Analisar: – Recursos; – Características. • Verificar Pontos Fortes e Pontos Fracos – Apenas versões gratuitas dos três frameworks • RichFaces 4.2.3; • PrimeFaces 3.4.1; • IceFaces 3.2.0. • Determinar a melhor opção. 17
  • 18. Análise Comparativa (2) • Aspectos – Componentes; – Documentação/Material de Consulta; – Comunidade/Ocorrências em Aberto; – Popularidade; – Testes de Desempenho • Datatable; • Menu; • Painel e Componente de Edição HTML WYSIWYG; • Painel e Requisição AJAX. 18
  • 19. Componentes PrimeFaces RichFaces ICEfaces • +150 componentes; • Versões melhoradas dos componentes de input e botões do JSF (inputText, commandButton, selectOneRadio, etc); • Recursos diferenciados: captcha, mindmap, wizard, tagCloud, imageCropper, etc; • Componentes para geração de gráficos estatísticos. • +80 componentes; • Validação client-side seguindo a JSR-303 (rich:validator); • Recursos diferenciados: componentes drag and drop e inputNumberSlider. • + 100 componentes nas categorias ACE e ICE  Alguns duplicados. • Destaque para o dataTable  Recursos avançados. • Recursos diferenciados: componente drag and drop e sliderEntry; • Componente para geração de gráficos estatísticos. 19
  • 21. Documentação/Material de Consulta PrimeFaces RichFaces ICEfaces • Documentação em PDF; • FAQ no formato Wiki; • Documentação da API e dos componentes on- line (VDL). • Documentação em HTML e PDF; • FAQ no formato Wiki; • Tutoriais; • Screencasts; • Documentação da API e dos componentes on- line (VDL). • Documentação no formato wiki; • Treinamento contendo vídeos, slides e exercícios; • Tutoriais; • Webinars gravados. 21
  • 22. Documentação/Material de Consulta (2) Framework Pontuação ICEfaces RichFaces PrimeFaces 22
  • 23. Comunidade/Ocorrências em Aberto PrimeFaces RichFaces ICEfaces • 18.400 discussões no fórum; • 15.700 membros; • Utilização do Google Code para gerenciar os erros e tarefas; • 533 chamados em aberto, de um total de 5.017  11% do total o 99% com prioridade média. • 20.000 tópicos no fórum; • 7.300 membros; • Utilização do Jira para gerenciar os erros e tarefas; • Cerca de 2.150 ocorrências em aberto de um total de 12.400  17,3% do total o 68% com prioridade alta ou crítica. • 18.000 tópicos cadastrados; • ? membros cadastrados • Fórum único para todos os produtos da ICEsoft • Utilização do Jira; • 1.700 chamados em aberto, de um total de 6.500  26,1% do total o 93% de prioridade alta ou crítica. 23
  • 24. Comunidade/Ocorrências em Aberto (2) Framework Pontuação PrimeFaces RichFaces ICEfaces 24
  • 30. Testes de Desempenho • Realizados em ambiente local; • Tamanho do response analisado; – Request também foi verificado nos testes de AJAX; • Configuração do ambiente: – Intel Core i5 com Windows 7 Professional 64 bits; – Mojarra 2.1.7; – Apache Tomcat v7.0.27 32 bits; – JDK 1.7.0_05 64 bits. 30
  • 31. Testes de Desempenho (2) • Códigos baseados na documentação e/ou na página de demonstração dos frameworks; • Três principais navegadores utilizados – Cache desabilitado. • Softwares e Ferramentas: – Google Chrome 23.0 32 bits e pacote nativo de ferramentas do desenvolvedor; – Internet Explorer 9.0 32 bits e pacote nativo de ferramentas do desenvolvedor; – Mozilla Firefox 17.0 32 bits e extensão Firebug 1.11.1. 31
  • 33. Teste de Datatable (2) PrimeFaces 33
  • 34. Teste de Datatable (3) ICEfaces 34
  • 35. Teste de Datatable (4) Resultados 35 Framework Tamanho da Resposta Pontuação Chrome Firefox IE RichFaces 365,06Kb 360,8Kb 364,66Kb PrimeFaces 606,49Kb 604,3Kb 614,92Kb ICEfaces 1,01Mb 1Mb 1,01Mb • O resultado do RichFaces foi quase três vezes melhor que o do ICEfaces e cerca de 70% melhor que o do PrimeFaces.
  • 37. Teste de Menu (2) PrimeFaces 37
  • 38. Teste de Menu (3) ICEfaces 38
  • 39. Teste de Menu (4) Resultados 39 Framework Tamanho da Resposta Pontuação Chrome Firefox IE RichFaces 392,74Kb 387,3Kb 392,98Kb PrimeFaces 601,65Kb 599,5Kb 604,05Kb ICEfaces 901,45Kb 897,6Kb 900,48Kb • O resultado do RichFaces foi mais de duas vezes melhor que o do ICEfaces e cerca de 50% melhor que o do PrimeFaces.
  • 40. Teste de Painel e Componente de Edição HTML WYSIWYG PrimeFaces 40
  • 41. Teste de Painel e Componente de Edição HTML WYSIWYG (2) RichFaces 41
  • 42. Teste de Painel e Componente de Edição HTML WYSIWYG (3) ICEfaces 42
  • 43. Teste de Painel e Componente de Edição HTML WYSIWYG (4) Resultados 43 Framework Tamanho da Resposta Pontuação Chrome Firefox IE PrimeFaces 618,30Kb 615,3Kb 620,68Kb RichFaces 788,36Kb 780,7Kb 775,38Kb ICEfaces 1,37Mb 1,4Mb 1,38Mb • O resultado do PrimeFaces foi mais de duas vezes melhor que o do ICEfaces e cerca de 30% melhor que o do RichFaces;  O PrimeFaces é o único que usa o TinyMCE, enquanto os concorrentes usam o CKEditor.
  • 44. Teste de Painel e Requisição AJAX PrimeFaces 44
  • 45. Teste de Painel e Requisição AJAX (2) RichFaces 45
  • 46. Teste de Painel e Requisição AJAX (3) ICEfaces 46
  • 47. Teste de Painel e Requisição AJAX (4) Resultados 47 Framework Tamanho da Requisição Tamanho da Resposta Pontuação Chrome* Firefox IE* Chrome Firefox IE PrimeFaces 0,45Kb 1,05Kb 0,45Kb 1,42Kb 1,42Kb 1,42Kb RichFaces 0,59Kb 1,19Kb 0,59Kb 1,42Kb 1,42Kb 1,42Kb ICEfaces 1,10Kb 1,55Kb 1,12Kb 1,55Kb 1,56Kb 1,57Kb * Não inclui o cabeçalho HTTP • O PrimeFaces foi mais de duas vezes melhor que o ICEfaces e cerca de 30% melhor que o RichFaces no request ; • O response do ICEfaces foi em média cerca de 10% pior que o apresentado pelos dois concorrentes.
  • 48. Conclusão • Pontos Fortes – Componentes; – Melhor performance em dois dos quatro testes de desempenho; – Popularidade em alta no Brasil e no Mundo. • Pontos Fracos – Documentação; – Fórum pode ser melhorado. 48 PrimeFaces
  • 49. Conclusão (2) • Pontos Fortes – Melhor performance em dois dos quatro testes de desempenho • Tamanho de resposta HTML bastante inferior aos concorrentes nos dois casos. – Validação client-side. • Pontos Fracos – Poucos componentes • Ausência de recursos para geração de gráficos estatísticos. – Popularidade em baixa; – Wiki bastante incompleto. 49 RichFaces
  • 50. Conclusão (3) • Pontos Fortes – Documentação de excelente qualidade; – Fórum bastante organizado. • Pontos Fracos – Depempenho crítico nos quatro testes de desempenho; – Popularidade em baixa; – Diversificação dos componentes pode ser melhorada. 50 ICEfaces
  • 51. Conclusão (4) 51 Framework Pontuação Final PrimeFaces RichFaces ICEfaces Resultado Final
  • 52. Fim • Contatos – Blog • http://pablonobrega.wordpress.com – E-mail • pablonobrega2004@gmail.com – Skype • pablodeletado@hotmail.com 52