O PrimeFaces é uma biblioteca de componentes open source para JSF2, que possui um conjunto extenso de controles com suporte a Ajax. Fornece os componentes mais utilizados pelos desenvolvedores, tais como, datatable , tree, accordion panel ('sanfona'), autopreenchimento e abas. Além disso, inclui alguns componentes únicos e outros não encontrados em concorrentes, tais como:
- Navegação com breadcrumbs
- Planilha
- Visualização de calendário
- Star Rating (classificação por estrelas)
- Wizard (assistente)
- Componente para recorte de imagens
- Notificações Growl
- PhotoCam (fotos através da câmera do computador)
Entre os componentes disponíveis, também há implementações para comparação de imagens, geração de nuvem de tags e até mesmo componentes no estilo do Mac OS X. De acordo com a Prime Tecknoloji (a empresa responsável pelo PrimeFaces), a razão para a diversidade de componentes é que a empresa não vende software, ela é uma empresa de consultoria, que usa o PrimeFaces em seus clientes. Devido a muitos problemas que a consultoria tinha com o JSF, decidiram criar uma biblioteca de componentes mais fácil de usar.
O PrimeFaces também oferece o PrimeFaces Mobile, uma versão para iOS e Android, baseada no jQuery Mobile.
Para o lançamento da série 3.x, o InfoQ.com entrou em contato com Cagatay Civici, líder do projeto, para conhecer mais sobre o PrimeFaces:
InfoQ: Quais as novidades para o PrimeFaces 3.x?
O desenvolvimento do PrimeFaces 3 levou quase um ano; comparado com a versão 2.x, há muitos componentes novos, reimplementações de alguns componentes já existentes, melhoria no desempenho interno, otimização no carregamento de recursos, maior flexibilidade no comportamento Ajax e mais. Em geral, o PrimeFaces 2.x pode ser visto como uma atualização do PrimeFaces 1.x para o JSF 2.0.
InfoQ: Qual a compatibilidade desta versão em comparação com a versão 2.x? A migração é fácil? O PrimeFaces 2.x irá continuar recebendo suporte e correção de bugs?
A migração não é difícil, mas também não é direta, principalmente pelo fato de as chamadas dos componentes serem implementadas com comportamento para eventos Ajax. O PrimeFaces 3.x é um importante marco para nós. Fizemos grandes mudanças e partir da versão 3, o framework ficou muito mais estável.
InfoQ: O PrimeFaces pode ser utilizado juntamente com outras bibliotecas JSF (tal como IceFaces ou RichFaces)?
Nunca tentamos usar o PrimeFaces com outras bibliotecas; mas nossos usuários já fizeram isso. Ambos PrimeFaces e RichFaces usam o jQuery, então fazendo-se somente uma inclusão de jQuery por página, podem funcionar juntos. Em relação ao IceFaces, não conhecemos nenhum usuário que usou ambos; provavelmente porque o IceFaces usa a renderização Direct-to-DOM (D2D) para atualizar a árvore de componentes JSF.
InfoQ: Qual a importância do HTML5 para vocês? Foi fácil adicionar suporte para a tecnologia?
O HTML5 é muito importante para nós, pois fornece um ambiente de desenvolvimento em que podemos criar funcionalidades ricas. O HTML5 é integrado ao PrimeFaces com "degradação suave"; por exemplo, o componente de fileUpload permite upload Ajax, seleção múltipla e arrastar-e-soltar a partir do sistema de arquivos, mas nos navegadores que não suportam HTML5, é usado o iframe. Além disso, o componente de gráficos usa o elemento canvas do HTML5. Em geral, usamos muitas funcionalidades dos atributos data-*. Lembrando que o Push do PrimeFaces é feito usando WebSockets.
InfoQ: Em que direção está indo o esforço de desenvolvimento? O que podemos esperar do PrimeFaces 4?
Não temos ainda planos para o PrimeFaces 4. Gostaríamos de manter o PrimeFaces 3.x por algum tempo. Lançamos a versão 3.1 com 7 componentes novos, novas funcionalidades para vários componentes e um quantidade significativa de manutenções. Nosso plano é entregar as funcionalidades mais solicitadas, além de nossas ideias, claro, e melhorar a qualidade da biblioteca em geral. Quando decidirmos fazer o PrimeFaces 4, será por uma razão especial.
InfoQ: A partir de agora, qual será o cronograma de lançamento das versões maiores e menores?
O cronograma a partir do PrimeFaces 3.x é mensal; portanto tentaremos lançar novos releases todos os meses.
Os artefatos Java estão no repositório do PrimeFaces. Para mais informações sobre a biblioteca, consulte a documentação de referência, o fórum e o wiki. O código-fonte é hospedado no Google code.