Frameworks Web Para Java

Buenos días, soy de Colombia, hace ya tiempo que leo las diferentes entradas que se publican en su página y me han ayudado mucho a mi crecimiento como profesional, siempre he querido poner mi granito de arena para esta comunidad que tanto me a ayudado pero nunca había sabido que hacer, pero resulta que llevo 3 días dictando un micro-curso en la universidad en la cual estudio y los estudiantes me pidieron que les regalara información de diferentes frameworks que yo conociera y pensé que esta información puede ser ese granito de arena que hace tanto había querido aportar, sin mas, comparto este conocimiento y espero sea de su agrado y nos ayude tanto a ustedes, que depronto desconocen cosas de aquí, como a mi, que como humano que soy, no me las se todas y me interesa esa retro-alimentación que se obtiene de los comentarios dados por ustedes.

--

Buenas tardes Muchachos, aquí les voy a consolidar unos Frameworks Web para java que conozco para que los mirén, puede que les quede gustando alguno en especial.
GWT (Google Web Toolkit): Creado por Google, en este framework el desarrollador no necesita tener conocimiento de HTML ya que el objetivo es que solamente se desarrolle en Java y el framework se encargará de traducir esta programación a código HTML y Javascript, se caracteriza porque la vista del cliente se maneja desde el browser del usuario que se conecta (javascript) y lo que corresponde al servidor se ejecuta desde el servidor (java), lo que hace que la aplicación sea muy rapida al no estarse conectando al servidor 'por cada clic' que se da. Esta licenciado con "Apache License, Version 2"
Al igual que con JSF tenemos implementaciones, con GWT también tenemos implementaciones.
  • SmartGWT: Es una implementación que se basa en las ya maduras librerias SmarClient (En Js), aprovechando muchos de los componentes que en esta ya estan creados, aquí un show-case con aproximadamente 250 Ejemplos. Licenciado con GNU Lesser General Public Licence, también tiene una versión enterprise que es de cobro.
  • ExtGWT: Esta implementación esta basada en las librerías ExtJS (en Js), aquí el show-case de la página para ver los componentes que se tienen a disposición. Tiene una versión de cobro y una versión libre licenciada con GNU General Public License.
Vaadin: Este framework se basa en la concepto del GWT, es decir que solamente se programa en java y el se encarga de crear el HTML y javascript, disponemos tambien de una gran cantidad de componentes y una comunidad que va creando mas conforme va creciendo, aquí un show-case con los componentes que tenemos acceso por defecto. Esta licenciado con Apache License Version 2.0, algunos de los componentes creados en la comunidad pueden ser de cobro.
ZK: No sé mucho de este framework, asi que estraigo de wikipedia "ZK es un framework de aplicaciones web en AJAX, completamente en Java de software de código abierto que permite una completa interfaz de usuario para aplicaciones web sin usar JavaScript y con poca programación", aquí la página principal de ejemplos y por aquí el show-case de los componentes que se tienen a disposición.
Apache Tapestry: Tampoco se mucho acerca de este Framework, asi que me remito a wikipedia - trato de traducir con ayudita de google  - "Apache Tapestry es un framework web para desarrollo en Java que esta orientado completamente a objetos, para implementar aplicaciones acorde a la arquitectura modelo-vista-controlador. Tapestry fue creado por Howard Lewis de forma independiente, y fue adoptado por la Apache Software Foundation. Tapestry hace hincapié en la simplicidad, facilidad de uso, y su objetivo es evitar forzar a los programadores a crear enormes bloques de "glue code", utilizando la Convención sobre el paradigma de configuración. Tapestry utiliza un enfoque modular para el desarrollo web, por tener una fuerte unión entre los componentes de interfaz de usuario (objetos) en la página web y sus correspondientes clases de Java. Esta arquitectura basada en componentes toma muchas ideas de WebObjects.
JSF: Framework web para programar en Java, para desarrollar aplicaciones acordes a la arquitectura modelo-vista-controlador, fue desarrollado por SUN. Existen varias implementaciones de este framework para el manejo de componentes, integración con ajax.
  • IceFaces: Desarrollado por IceSoft, actualmente muy conocida por nosotros, esta implementación aparte de adicionar mas componentes al framework, tambien nos evita tener que estar pendientes del uso de Ajax ya que todos sus componentes lo traen embebido y funciona directamente en la aplicación desarrollada con este framework, distribuido con licencia MPL (Mozilla Public Licence), tiene su propia FAQ acerca de la licencia, también tiene una versión de cobro. Aquí el show-case para que veamos los componentes que ponen a nuestra disposición.
  • RichFaces: Esta implementación es una de las grandes del mercado, tiene una gran cantidad de componentes y es soportada por la empresa jboss, este framework nos integra ajax a nuestra aplicación web evitándonos la tediosa programación de ajax, en este caso nosotros nos encargamos de controlar el ajax, es decir, que en los componentes yo defino cuando funcionan con ajax, tiene una gran cantidad de componentes y es muy usado en el mercado. Esta es el show-case de los componentes que tenemos a nuestra disposición al utilizar richfaces.
  • PrimeFaces: Esta implementación trae una gran cantidad de componentes (mas que icefaces), nos provee, al igual que icefaces, ajax, pero con el modelo de richfaces, es decir nosotros controlamos las acciones ajax, también pone a nuestra disposición una gran cantidad de temas para nuestra aplicación. Aquí esta el show-case del framework para que veamos la gran cantidad de componentes que nos proponen podemos usar.
  • OpenFaces: Esta implementación maneja ajax con el modelo de richfaces, es decir, controlado por el usuario y nos da una gran cantidad de componentes. Aquí el show-case.
  • ADF: Esta implementación esta a cargo de Oracle, es de cobro, totalmente integrada con IDE JDeveloper de Oracle y es una excelente herramienta -si se tiene el $$$-. Este link nos muestra un video de como utilizarla y los resultados que se pueden obtener
  • ZK: ZK también tiene su implementación para JSF, los componentes son los de ZK pero llamados con la estructura de una página JSF.
Existen otra gran cantidad tanto de frameworks como de implementaciones de estos que o no conozco o se me olvidan al momento de redactar esta información, de todas maneras, el objetivo de esto es dar una pequeña introducción a un mundo de frameworks, que como estudiantes, pocos tenemos conocimiento de su existencia y al empezar en el mundo del desarrollo web nos podemos ver intimidados por su aparente 'complejidad' pero con un framework, este trabajo se nos simplificara considerablemente.
Espero sus comentarios ya que es la primera vez que hago un consolidado de este tipo y me gustaría saber que opinan.
Cordialmente,
Pablo Bastidas V

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Frameworks RIA

Muy buena compilación de frameworks. Faltaron algunos como el famoso Struts 1 y 2 y Spring MVC, entre otros. Pero lo mas destacable de los frameworks que mencionas es su capacidad de generar aplicaciones RIA (Rich Internet Application), esto es, aplicaciones que explotan el lado visual y la interacción asíncrona. Salvo Tapestry, los framework mencionados nos evitan el tener que programar el código javascript, html y css requerido para crear la interfaz gráfica de usuario.
Para aquellos que gustan del javascript sería muy bueno también si pudieras hacer una compilación de los frameworks de javascript existentes (JQuery, Dojo, ExtJS, etc)