Pregunta

Actualmente estoy trabajando en una aplicación web que hace uso intensivo de JSF y IceFaces. Hemos tenido algunas discusiones de pasar a otra capa de presentación, y yo pensé que tomaría la discusión hacia SO y ver lo que los expertos piensan.

Tengo curiosidad por si alguien pudiera intervenir en los pros y los contras de las distintas tecnologías de capa de presentación de Java. Si sólo ha trabajado con uno, decir por qué lo amas o lo odias. Si usted ha trabajado con varios, y comparte sus impresiones de cómo se comparan uno contra el otro.

Nuestras tecnologías que se consideran son:

  • IceFaces
  • JSF (sin IceFaces)
  • GWT (Google Web Toolkit)
  • Wicket
  • Tapiz

Y si me falta algo de mi lista, que me haga saber.

Gracias!

¿Fue útil?

Solución

Mis opiniones son muy fuertemente sesgadas hacia Wicket porque he estado usando durante un tiempo después de tropezar con minas JSP demasiadas veces.

Pros Wicket:

  • La verdadera separación de diseño y código.
  • componente basado en lo que significa alta reutilización de elementos de sitio; Por ejemplo, puede crear la forma prettified con etiquetado y CSS estilos automáticos y todo y simplemente cambiando es objeto DAO en el constructor del componente es completamente reutilizable en otro proyecto.
  • Excelente soporte para cosas como Ajax, portlets y varios marcos en general directamente fuera de la caja y más importante es que no se basa en nada más que slf4j / log4j para trabajar, todo es opcional!

Contras Wicket:

  • El desarrollo tiene cierta confusión acerca de las cosas en general y de los genéricos peatonales incorporadas son un poco de un desastre en este momento a pesar de que han sido limpiados mucho en 1.4
  • Algunos componentes (como Form.onSubmit()) requieren una amplia subclases o anulación método anónimo para inyectar el comportamiento fácilmente. Esto se debe en parte al diseño de gran alcance basado en eventos de Wicket, pero por desgracia también significa que es fácil hacer un lío de código con Wicket.

Contras azar: (es decir, no he usado, pero estos son mis opionions y / o cosas que he oído)

  • GWT es JavaScript basado en que suena estúpido para mí. El problema principal es que me recuerda demasiado de JSP:. s y sus clases generadas automáticamente que son horribles
  • Tapiz no lo hace marcado y código separado adecuadamente de manera que fácilmente podría ser validada entre los dos lo que provocará problemas en el futuro.

Otros consejos

He usado GWT para un par de pequeños proyectos. Aquí hay algunas cosas que me gustan de él:

  1. Es Ajax por defecto, por lo que no tiene que make que hacer Ajax, que acaba de llegar junto con el uso de GWT.
  2. Se obtuvo una buena separación de cliente frente al código del lado del servidor.
  3. Puedo unidad probar mi código de cliente utilizando JUnit
  4. Permite aplicaciones de edificio, ágil nítidas, en gran parte porque es ajax.

Las cosas que no me gusta:

  1. Algunas cosas no funcionan como se esperaba. Por ejemplo, he visto casos en los eventos de clic no disparó como se esperaba, por lo que tuve que hacer una solución.
  2. Auto-despliegue de Tomcat que se ejecuta en el eclipse a veces simplemente deja de funcionar, y nunca pude entender por qué.

La mayor pregunta que me pregunto es por qué estás cambiando capa de presentación? Eso es un costo muy caro y puedo ver los beneficios de una tecnología que prevalezca sobre los demás tanto como el costo para cambiar ...

En resumen:

= JSF =

PROS:

  • arquitectura de componentes;
  • muchas bibliotecas y herramientas;
  • algo bueno soporte IDE

CONS:

  • peso pesado, tanto en CPU / memoria y curva de aprendizaje;
  • cuando algo no funciona como se esperaba, es difícil de depurar

= WICKET =

PROS:

  • ligero;
  • sistema de plantillas sensible;
  • buenos tutoriales;

CONS:

  • documentación de referencia no está tan bien organizado y profundo como son los tutoriales;
  • equipo de desarrollo tuvo serias dificultades, especialmente cuando devenir y proyectos incubados. Esto condujo a la confusión en los aspectos importantes del marco, en ese momento tuve que cambiar a otro marco de referencia debido a esto ...

¿Qué hay de rayas ?

Mi elección sería Wicket . Lo han utilizado y es da una excelente aptitud para la reutilización. Tiene uno de la lista foro / correo más vibrante. Como cuestión y su va a ser respondidas en cuestión de minutos. Cuenta con un excelente soporte para AJAX. Uno de los inconvenientes habituales atribuidas a Wicket es la curva de aprendizaje. Pues esos fueron uno de los antiguos contras de edad que no retienen el valor más ahora.

JSF: mejor permanecer lejos de ella. Otro equipo que desarrolló un proyecto sobre JSF ahora está pensando cambiar a Wicket después de nuestro éxito con él.

@Megadix: Como has dicho la documentación era pobre en el principio, pero no más. Hay un excelente libro titulado peatonal incorporada en acción escrito por los desarrolladores de Wicket. El código de ejemplo proporcionado en el sitio es también un buen lugar para empezar y aprender

Me pregunto si una tiene una capa de servicio que es distinta del cliente web, algo que los controladores web simplemente invocan a hacer su trabajo.

Si lo hace, la elección de la tecnología de interfaz de usuario web puede ser desacoplada de la parte final. Si se expone como un servicio Web primer contrato, que puede tener diferentes aplicaciones comparten. Siempre y cuando sus clientes pueden enviar y recibir XML que pueden interactuar con sus servicios. Quiera cambiar a Flex? No se preocupe -. Apuntan al servicio y hacen que la respuesta XML

Vea mi comparación de Wicket y tapiz de 5: Diferencia entre Apache Tapestry y Apache Wicket .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top