programar - programacion en capas java pdf
Pros y contras de varias tecnologías de capa de presentación web Java (8)
Mis opiniones son bastante tendenciosas hacia Wicket porque lo he usado por un tiempo después de tropezar con las minas JSP demasiadas veces.
Wicket PRO:
- La verdadera separación de diseño y código.
- Basado en componentes, lo que significa alta reutilización de los elementos del sitio; Por ejemplo, puede crear una forma embellecida con etiquetado automático y estilos CSS y todo, y simplemente cambiando su objeto DAO en el constructor del componente es completamente reutilizable en otro proyecto.
- Excelente soporte para cosas como Ajax, Portlets y varios frameworks en general directamente out-of-the-box Y lo más importante, no depende de nada más que slf4j / log4j para funcionar, ¡todo es opcional!
Wicket CONs:
- El desarrollo tiene cierta confusión sobre las cosas en general y los genéricos Wicket son un poco desordenados ahora, aunque se han limpiado mucho en 1.4
- Algunos componentes (como
Form.onSubmit()
) requieren amplias subclases o anulación de método anónimo para el comportamiento de inyección fácilmente. Esto se debe en parte al poderoso diseño basado en eventos de Wicket, pero desafortunadamente también significa que es fácil hacer un lío de código con Wicket.
CONs aleatorios: (es decir, no he usado pero estas son mis opiniones y / o cosas que he escuchado)
- GWT está basado en JavaScript, lo cual me suena estúpido. El problema principal es que me recuerda demasiado a JSP: s y sus clases autogeneradas que son horribles.
- Tapestry no separa el marcado y el código correctamente de una manera que pueda validarse fácilmente entre los dos, lo que causará problemas en el futuro.
Actualmente estoy trabajando en una aplicación web que hace un uso intensivo de JSF y IceFaces. Hemos tenido algunas discusiones sobre el cambio a otra capa de presentación, y pensé en llevar la discusión a SO y ver qué opinan los expertos.
Tengo curiosidad por saber si alguien puede analizar los pros y los contras de las diversas tecnologías de capas de presentación de Java. Si solo ha trabajado con uno, diga por qué lo ama o lo odia. Si ha trabajado con varios, dé su impresión de cómo se comparan entre sí.
Nuestras tecnologías bajo consideración son:
- IceFaces
- JSF (sin IceFaces)
- GWT (Google Web Toolkit)
- Postigo
- Tapiz
Y si me falta algo de mi lista, házmelo saber.
¡Gracias!
La mayor pregunta que me haría es ¿por qué cambias la capa de presentación? Es un costo muy caro y puedo ver los beneficios de una tecnología que sobrepasa a las otras tanto como el costo de cambiar ...
Me pregunto si usted tiene una capa de servicio que es distinta del cliente web, algo que los controladores web simplemente invocan para hacer su trabajo.
Si lo hace, la opción de tecnología de interfaz de usuario web se puede desacoplar de la parte de atrás. Si se expone como un primer servicio web por contrato, puede tener diferentes aplicaciones para compartirlo. Siempre que sus clientes puedan enviar y recibir XML, pueden interactuar con sus servicios. ¿Quieres cambiar a Flex? No se preocupe: apúntelo al servicio y represente la respuesta XML.
He usado GWT para un par de pequeños proyectos. Aquí hay algunas cosas que me gustan de esto:
- Es ajax por defecto, así que no tuve que hacer que hiciera ajax, solo vino con usar GWT.
- Tiene una buena separación entre el cliente y el código del lado del servidor.
- Puedo probar mi código de cliente usando junit
- Le permite crear aplicaciones nítidas y ágiles, en gran parte porque es ajax.
Cosas que no me gustan
- Algunas cosas no funcionan como se esperaba. Por ejemplo, he visto casos en los que los eventos de clics no se activaron como se esperaba, así que tuve que hacer una solución.
- La implementación automática de Tomcat corriendo en eclipse a veces simplemente deja de funcionar, y nunca pude entender por qué.
¿Qué hay de las rayas ?
En breve:
= JSF =
PROS:
- arquitectura de componentes;
- muchas bibliotecas y herramientas;
- bastante buena compatibilidad con IDE
CONTRAS:
- gran peso, tanto en CPU / memoria y curva de aprendizaje;
- cuando algo no funciona como se espera, es difícil depurar
= WICKET =
PROS:
- ligero;
- sistema de plantillas sensible;
- buenos tutoriales;
CONTRAS:
- la documentación de referencia no está tan bien organizada y es tan profunda como lo son los tutoriales;
- El equipo de desarrollo tuvo algunas dificultades serias, especialmente cuando se convirtió en un proyecto incubado. Esto condujo a la confusión en aspectos importantes del marco, en ese momento tuve que cambiar a otro marco debido a esto ...
Mi selección sería Wicket . Lo he usado y ofrece una excelente reutilización. Tiene uno de los foros / listas de correo más vibrantes. Como una pregunta y va a ser respondida en minutos. Tiene un excelente soporte para AJAX. Una de las desventajas usuales atribuidas a Wicket es la curva de aprendizaje empinada. Bueno, esos eran uno de los contras de la vejez que ya no tienen valor ahora.
JSF: Mejor mantente alejado de eso. Otro equipo que desarrolló un proyecto en JSF ahora está pensando en cambiar a Wicket después de nuestro éxito con él.
@Megadix: Como dijiste, la documentación era pobre al principio, pero ya no. Existe un excelente libro llamado Wicket in Action escrito por los desarrolladores de Wicket. El código de muestra proporcionado en el sitio también es un buen lugar para comenzar y aprender
Vea mi comparación de Wicket and Tapestry 5: Diferencia entre Apache Tapestry y Apache Wicket .