Frameworks para Java
Algunas conclusiones recogidas sobre la experiencia en los frameworks
Struts
A favor
Bastante probado, mucha documentacion, muchos ejemplos, aun se siguen desarrollando aplicaciones, ampliamente probado. Se debe tener un conocimiento, aunque sea basico, de sesiones, y http.
En contra
Los DTO (Data Transfer Objects) son un dolor de cabeza. Se deben mapear algunos tipos de datos a string. Muchas veces se termina teniendo los objetos de negocio replicados, pero con Strings. Lo cual implica un trabajo extra por cada objeto. El codigo html generado es muy dependiente de struts. Todos las etiquedas son propias de struts. No se desarrolla mas sobre el mismo.
Spring MVC
Aun no he relizado pruebas exhaustivas sobre el mismo, solo algunos ejemplos muy sencillos para probarlo. Parece ser muy potente y esta en constante desarrollo. No me gusta que es bastante similar a struts como maneja las acciones. Se incorporan constantemente nuevas funcionalidades. Facil de exportar el contenido a diferentes formatos. Me parece util para integrarlo con tapestry en algunos puntos.
Tapestry
Hasta ahora es el framework que mas me ha convencido en cuanto a su arquitectura. Como se dice por alli, para usar Tapestry hay que "desaprender" todo lo que se conoce sobre otros frameworks como struts.
Ventajas
Muy buena arquitectura. Errores muy bien detallados. El codigo html es muy facil de leer, y si se utilizan componentes, casi ni se nota que hay algo mas en el. Muy buena separacion de capas. No es necesario conocer demasiado de http (aunque es recomendable cuando se avanza). Hay muchos componentes.
Desventajas
La documentacion no es demasiado buena. Hay que probar mas que leer. Pocos ejemplos al respecto (Este quizas es el mayor problema). Lleva un tiempo adaptarse al framework. El testing no es tan facil (aunque ya hay objetos que permiten realizar el testing de las clases abstractas con las cuales trabaja).
Conclusión
Por el momento me parece que la mejor opcion es utilizar Tapestry, ya que me parece una muy buena alternativa, la cual esta en crecimiento. En unos años sera junto con spring mvc, a mi entender, una de las opciones mas fuertes (quizas tanto como es hoy struts). Para la union es aconsejable utilizar spring (no el mvc), y para la persistencia hibernate. Estos tres frameworks traen muchas ventajas a los proyectos. Los dolores principales de cabeza se presentan con Hibernate y la perdida de las sesiones, y/o los objetos que se inicializan de manera "lazy".
2 comentarios:
Interesante , Es verdad los framework muchas veses es un gran dolor de cabeza para aquellos que no conocen.
Muchas gracias por tu comentario.
Publicar un comentario