miércoles, agosto 09, 2006

Java Server Faces: La siguiente generación de MVC Web

Llevaba tiempo queriendo aprender esta nueva tecnología que lleva años dando vueltas por el JCP (Java Community Proccess) pero que no terminaba de florecer. Tengo que reconocer que esta vez fuí infiel a Manning y terminé comprando el libro de O'reilly cuyo título es "Java Server Faces".
La meta de esta tecnología es abstraer lo suficiente el desarrollo de aplicaciones web, el protocolo http y sus limitaciones, para conseguir que los desarrollos que hagan al estilo de aplicaciones gui (por eventos) de toda la vida. Según parece le pidieron al mismísimo Craig R. McClanahan (creador del framework de Struts) que les ayudase con la especificación de la tecnología. Y, actualmente le han pedido unirse al proceso de especificación a Howard Lewis Ship, el creador de Tapestry, dado que este framework hace que las aplicaciones web sean todavía más parecidas al modelo de desarrollo por eventos.
La verdad es que cuando uno se enfrenta con Java Server Faces por primera vez nota unas ciertas reminiscencias con respecto a Struts. Cosas como la validación y el control de la navegación así lo demuestran, aunque el grado de sofisticación es mucho mayor.
Aunque Java Server Faces sea una tecnología reciente, es cierto que tiene un esfuerzo que demostrar, y es conseguir integrar la funcionalidad de AJAX en las propias especificaciones de la tecnología. En caso de que no sea así, dudo que JSF ocupen el lugar en el mundo del desarrollo de aplicaciones web que sus autores reclaman.
Java Server Faces dispone de un catálogo de componentes gui que facilita la vida a los desarrolladores de webs, además existen distintos catálogos por parte de todo tipo de fabricantes (open source y propietarios).
Yo solo he tenido oportunidad de trabajar con la implementación de Apache llamada MyFaces. Además de dicha implementación disponen también de más componentes gracias al proyecto Tomahawk así como el proyecto Tobago.
La curva de aprendizaje de Java Server Faces yo diría que es más pronunciada que la de Struts, quizás debido a que viniendo de Struts se tienen una serie de manias innecesarias.
En Java Server Faces el código de la aplicación va en beans que son registrados en un archivo xml en el que se configura la aplicación JSF. La manera de configurar los beans de la aplicación recuerda a Spring en el sentido de que permite la inyección de dependencias (o la Inversión de Control). Y ya que hablamos del archiconocido framework Spring, debemos dejar claro que la integración entre ambos resulta de lo más sencillo del mundo (solo hay que cambiar lo que se llama un "resolvedor de variables" para que sea spring quien se encargue de mapear e inyectar los beans en la aplicación).
Aparte de la curva de aprendizaje, con JSF se pueden hacer desarrollos más profesionales y con mejor calidad de código que con otros frameworks en menos tiempo. Gracias a todos los componentes que se pueden usar out-of-the-box así como la filosofía de orientación a eventos que supone, hacen que la aplicación resulte muy completa.

No hay comentarios: