RichFaces vs PrimeFaces vs IceFaces
PrimeFaces vs RichFaces vs IceFaces
En este documento se realiza una comparación de las tres implementaciones de JSF2.0 más utilizadas en la actualidad.
El documento no pretende determinar cuál es la mejor implementación: todas ellas han alcanzado una madurez que hace que sean ampliamente adoptadas.
La información que se presenta, fue tomada del tutorial del mismo nombre, publicado por mastertheboss.com:
http://www.mastertheboss.com/web-interfaces/365-primefaces-vs-richfaces-vs-icefaces.html
1er Round: Disponibilidad de componentes
RichFaces, según el showcase(http://showcase.richfaces.org), contiene cerca de 39 componentes (11 componentes básicos, 6 paneles, 9 tablas/grids, 1 árbol, 4 toolbar, 8 menús).
El número de componentes no ha crecido mucho en los últimos años, Sin embargo RichFaces provee con el ComponentsDevelopment Kit (CDK) –un sub-proyecto que permite crear fácilmente componentes Rich con soporte para Ajax.
ICEfaces contiene cerca de 70 componentes (http://wiki.icefaces.org/display/ICE/ICE+Components+Reference)
Además, se puede conectar los componentes ACE (Componentes Avanzados de ICEfaces), que son la próxima generación de componentes open source de ICEfaces. En la actualidad cuenta con más de 40 componentes, los componentes ACE utilizan una combinación de técnicas de renderización del lado del cliente y del servidor para proporcionar una rica experiencia de usuario.
Primefaces cuenta con un conjunto de 117 componentes (http://www.primefaces.org/showcase/ui/home.jsf) que incluyen, además del conjunto estándar de componentes también otros extras como HtmlEditors, Charts, date schedule y un exportador de datos a Excel,Pdf,Word entre otros.
Esta suite utiliza por debajo jQuery con sus sorprendentes widgets, plugins, temas y las interacciones de Ajax. Se evita el uso de otros JS / IU frameworks con el fin de tener una alta compatibilidad entre los componentes. En primefaces es más fácil cambiar la apariencia ya que se basa en ThemeRoller. También tiene más temas integrados (alrededor de 25) que el que está disponible en RichFaces y ICEfaces.
Si esto no parece suficiente, también puede ver las extensiones de PrimeFaces (http://code.google.com/p/primefaces-extensions/), que es un proyecto de open source licenciado bajo licencia Apache v2. Se puede utilizar completamente libre en proyectos de open source o comerciales en los términos de la licencia.
2do round: Facilidad para iniciar:
La documentación de RichFaces no contiene un tutorial de inicio rápido, la documentación oficial se centra principalmente en Maven el cual es un estándar ampliamente adoptado, pero todavía no es el único adoptado por los desarrolladores. Para empezar RichFaces no es demasiado complejo, incluso mediante la adición del archivo de forma manual, ya que requiere la biblioteca principal + Librería UI + 3 dependencias obligatorias.
ICEfaces: Sí existe una guía de inicio rápido. En cuanto a las bibliotecas se refiere, para empezar con esto, se requiere un conjunto de bibliotecas principales y algunas dependencias (la mayoría de Apache libraries commons )
Primefaces no contiene una página de introducción. Todo lo que necesitas hacer es navegar a la descarga de PrimeFaces , agrega el primefaces-{version}. jar a tú classpath e importar el namespace para empezar. (Algunas dependencias se necesitan cuando se trata de Excel / PDF FileUpload). No se puede ser más fácil que eso.
3er round: Documentación
RichFaces ofrece una guía de usuario en línea que se ha actualizado liberación tras liberación mientras se mantiene el mismo esquema. Lamentablemente, no hay muchos tutoriales adicionales sobre la creación de aplicaciones con RichFaces.
ICEfaces: La documentación es bastante extensa, ya que incluye un amplio conjunto de tutoriales, ejemplos y también, recientemente añadido, vídeo tutoriales. Por otro lado, es un poco molesto que es necesario el registro para acceder a cualquier cosa (bibliotecas, tutoriales) y es un poco confuso que siguen apareciendo entre icefaces.org y icesoft.org cuando accedemos al sitio.
Una vez más, Primefaces ofrece el enfoque más pragmático, la entrega de una guía de usuario completa que es en sí misma un completo e-book sobre la plataforma. Algunos de los recursos adicionales se incluyen también en el sitio.
Una última consideración sobre los foros: ya que también los foros contribuyen a la documentación del conjunto, tanto de IceFaces y RichFaces tienen una historia más larga en la web y así que ofrecen un mayor conjunto de preguntas y respuestas. Primefaces es un poco más joven pero en crecimiento.
6to round: Rendimiento
Para probar el rendimiento, se utilize el componente JSF más utilizado, un dataTable compuesto de 5 columnas and 100 filas. Cada fila contiene un único String randómico el cual emula (en términos de tiempo) la recuperación de datos desde una Base. El test se ejecutó en una laptop con un procesador Intel core 5i, dos procesadores, 8GB de ram y Windows 7. A continuación se presenta un extracto de los resultados obtenidos con la herramienta Apache ab stress tool, cuando se dispararon 5000 request (10 concurrentes)
Document Length: 47442 bytes
Requests per second: 28.59 [#/sec] (mean)
Time per request: 174.869 [ms] (mean)
Time per request: 34.974 [ms] (mean, across all concurrent requests)
Transfer rate: 1329.59 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 7.3 0 78
Processing: 47 172 98.1 141 766
Waiting: 0 77 61.0 47 578
Total: 47 174 98.4 156 766
Percentage of the requests served within a certain time (ms)
50% 156
66% 188
75% 219
80% 250
90% 313
95% 375
98% 438
99% 469
100% 766 (longest request)
Document Length: 76072 bytes
Requests per second: 11.12 [#/sec] (mean)
Time per request: 899.281 [ms] (mean)
Time per request: 89.928 [ms] (mean, across all concurrent requests)
Transfer rate: 829.41 [Kbytes/sec] received
Connection Times (ms)
min mean [+/-sd] median max
Connect: 0 5 15.1 0 266
Processing: 47 889 1183.8 484 12953
Waiting: 31 729 1103.1 375 12938
Total: 47 894 1183.3 484 12969
Percentage of the requests served within a certain time (ms)
50% 484
66% 672
75% 828
80% 1063
90% 2422
95% 2734
98% 4750
99% 5359
100% 12969 (longest request)
Document Length: 53904 bytes
Requests per second: 33.46 [#/sec] (mean)
Time per request: 149.422 [ms] (mean)
Time per request: 29.884 [ms] (mean, across all concurrent requests)
Transfer rate: 1767.06 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 3 7.0 0 63
Processing: 47 146 93.0 125 1094
Waiting: 0 58 52.2 31 594
Total: 47 148 93.3 125 1094
Percentage of the requests served within a certain time (ms)
50% 125
66% 172
75% 203
80% 219
90% 281
95% 328
98% 391
99% 453
100% 1094 (longest request)
Otro benchmark encontrado en la Web, produce similares resultados:
El major resultado lo produjo Primefaces, seguido de Richfaces. Icefaces fue el último, debido mayormente a el hecho de que produce una página HTML más pesada (sobre 70KB)
Reader Comments (11)
Cabe acotar, que para la versión ACE de ICE faces utilizaron los fuentes de PRIME Faces...
Icefaces 3 es un fork de Primefaces
http://www.icesoft.org/projects/ICEfaces/ace-primefaces-faq.jsf#why-did-icesoft-fork-primefaces
Según mi humilde opinión
1. PrimeFaces
1.5 RichFaces
3 IceFaces
Alguien sabrá sobre el soporte que tiene PrimeFaces sobre los distintos browser y las versiones de estos mismos
Este artículo me ha ahorrado muchas horas de trabajo, gracias :)
Realmente el desarrollo con primefaces es mas intuitivo que el resto, sin embargo la compatibilidad de los componentes primefaces con internet explorer es muy pobre y teniendo en cuenta que el porcentaje de usuarios que utililzan IE es mayor que cualquier otro navegador, esto supone una gran desventaja para primefaces. El trabajo a nivel de CSS con primefaces es bastante fuerte si se quiere utilizar este framework con IE, el team developer de primefaces debería tranbajar mas duro en este campo, porque la filosofia del framework es exelente.
el unico inconveniente que le veo a primefaces,, y por lo que he estado sufriendo desde sus primeras versiones. es que muchas veces no tienen compatibilidad hacias atras, es decir, me ha tocado en mas de una ocasion instalar una version nueva,, pero que no es compatible en varios aspectos a su anterior, por lo que a veces lleva demasiado tiempo investigar y en adecuar el codigo de una aplicacion para que pueda usar la version mas reciente del primefaces..
en el unico punto malo que le veo a primefaces, no hay compatibilidad hacia atras entre versiones, y además en ocasiones las versiones nuevas salen plagadas de errores, aunque ya en las ultimas versiones se han ido reduciendo el numero de errores en cada version...debido a esto, no seria recomendable poner de buenas a primeras una nueva version en alguna aplicacion si no antes darle una buena testeada a los componentes
Una pregunta muy importante! Se puede aplicar CSS al primeface?
Si yo hice algunas modificaciones puedes hacertu propio tema personalizado con el jquery-ui theme Roller o sobre cargando las clases CSS
Exacto, Malayst, Icefaces es una copia línea por línea de Primefaces.
Muy buena comparación esto sirve mucho y es muy intuitivo para la selección entre algunos de estos componentes para las aplicaciones web que se desarrollen.
Considero que Primefaces es muy bueno sin embargo muchas comparaciones no son justas por ejemplo se da una extensa teoría acerca de que Primefaces usa jquery como una ventaja.. sin embargo no se pronuncia que Richfaces también lo hace! Los dos trabajan con JQuery
Se dice que Richfaces no tiene una guía de inicio rápido... en el archivo PDF de guía de usuario explica como las configuraciones a usar en el archivo web.xml se explica skins y como modificar los estilos para personalizarlos a nuestro sitio en un ejemplo desde cero.. desde la versión 3 de rich..Primefaces tiene una estrella y media mas en facilidad para usar solo por que es un jar en lugar de 3 o 4 de richfaces.... Solo es de referenciar no considero justo la comparación justa.
Sobre la documentación no se considera los manuales y ejecutables descargables existentes que siempre ha tenido Richfaces!!! Los fuentes de ejemplo se pueden descargar.. Yo considero que en este punto son iguales Primefaces y Richfaces.. El decir "Una vez más, Primefaces ofrece el enfoque más pragmático" me hace ver la tendencia del autor por Primefaces!!!
Si desean mi opinión Primefaces es mejor por la cantidad de componentes su rendimiento y nada más! Los dos tienen sus ventajas ya que Richfaces tiene un proyecto de desarrollo al igual que Primefaces pero no se nombra estas cosas!! Si vamos a comparar deberíamos también aclarar que Richfaces tiene mas uso en aplicaciones empresariales.. la mayoria de proyectos hace años tendían a usar Richfaces aunque esto con el tiempo ha ido balanceándose con Primefaces y sus componentes son compatibles con la mayoría de versiones de IE y Primefaces tiene algunos componentes que demostraron incompatibilidades que a su tiempo fueron corregidas!!
Icefaces muy lejos de Primefaces y Richfaces!! los dos últimas son buenas opciones para desarrollo de aplicaciones J2EE, si debo analizar si quiero rapidez . madurez, rendimiento.. Por ejemplo eclipse tiene un plugin para Richfaces (jbosstools).. pero para Primefaces no se desarrollo uno bueno o al mismo nivel.
Saludos
Gerardo