Sei sulla pagina 1di 51

FRAMEWORKS J2EE

Framework
Conceptos bsicos
Framework: Conjunto estandarizado de conceptos, prcticas y criterios para enfocar un tipo de problemtica particular, que sirve como referencia para enfrentar y resolver nuevos problemas de ndole similar. (wikipedia) Soporte de programas, bibliotecas y un lenguaje interpretado, etc. para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Estructura y una metodologa de trabajo.

Framework
MVC - Modelo, vistas y controlador
Arquitectura que separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control: Vista: JSPs, HTML, etc. Modelo: Sistema de Gestin de Base de Datos, la lgica de negocio, etc. Controlador: Responsable de recibir los eventos de entrada desde la vista.

Framework
Entorno de desarrollo integrado
IDE: Conjunto de herramientas de programacin. IDE: Es un entorno de programacin: Un editor de texto. Un compilador/intrprete. Un depurador. Sistema de control de versiones. Ayuda para interfaces de usuario. Automatizar tareas: (ANT, Maven, etc.) Ejemplos IDE: Eclipse, NetBeans, etc.

Framework
Frameworks J2EE destacados
JSF (Java Server Faces) Struts (1.x y 2.x) Spring J BOSS SEAM GWT (Google Web Toolkit) Stripes, Tapestry, Wicket, Maverick, etc.

JSF (Java Server Faces)

JSF
Conceptos bsicos
J ava Server Faces: especificacin desarrollada por la J ava Community Process como J SR 127. Tecnologa y framework para aplicaciones web Java que simplifica el desarrollo de interfaces de usuario. Usa JavaServer Pages (JSP) para desplegar pginas. Puede ser integrado con las bibliotecas de componentes JSF JBoss RichFaces o ICEFaces.

JSF
Incluye
APIs para componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegacin de las pginas y dar soporte para internacionalizacin y accesibilidad. Conjunto por defecto de componentes para la interfaz de usuario. Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una pgina JSP.

JSF
Incluye
Un modelo de eventos en el lado del servidor. Administracin de estados. Beans administrados.

JSF
Implementaciones
Sun Microsystems: JSF Reference Implementation. MyFaces: royecto de Apache Software Foundation. Rich Faces: http://www.jboss.org/richfaces ICEFaces: http://www.icefaces.org/main/home/ jQuery4jsf: Basados en uno de los ms populares framework javascript jQuery. PrimeFaces

JSF
Implementaciones PrimeFaces
Ms de 100 componentes Ajax de fcil uso. Soporta JSF 2.0. No requiere una complicada configuraciones. Showcase de Ejemplo para descarga. Documentacin (pdf con 411 pg.). Temas preconfigurados (Ahorra maquetacin) http://www.primefaces.org/

JSF
Ventajas
Java EE Standard. Muchos componentes. Muchas libreras y herramientas. Buen soporte por varios IDEs. Alta demanda laboral. Rpido y fcil para empezar a desarrollar. El cdigo JavaScript se incrusta como parte de componentes.

JSF
Desventajas
Pesado, tanto en CPU como en memoria. Cuando algo no funciona como se espera, es difcil de depurar. Seguir estndares hace que la evolucin de JSF no sea tan rpida como otros frameworks.

JSF
Facelets
Framework para plantillas centrado en JSF. Permite trabajar con JSF de una forma ms natural. Curva de aprendizaje corta. Ayuda a integrar JSP con JSF. ptimo manejo de mensajes de error, que ahora reportan informes efectivos. En JSF, no se indica qu componente y en qu lnea se produce un error.

JSF

EJEMPLOS JSF

STRUTS 1.x

Apache Struts 1.x


Conceptos bsicos
Framework Open Source para el desarrollo de aplicaciones Web bajo el patrn MVC (Modelo, vistas y controlador) y J2EE. Permite reducir el tiempo de desarrollo. Extremadamente popular y extendido. Basado en el patrn MVC. El componente primario de Struts es un Servlet. Muy usada actualmente :( http://struts.apache.org/

Apache Struts 1.x


Arquitectura
HTTPServlet

ActionServlet

ApplicationConfig

struts-config.xml

Action

RequestProcessor

ActionForm

Apache Struts 1.x


Caractersticas bsicas
Un slo archivo de configuracin (struts-config.xml), aunque se podran tener varios. Cada accin se modela como un Action. Cada formulario se modela como un ActionForm. Cada pantalla (JSP) debe utilizar tags de Struts. Es posible (y conveniente) utilizar archivos de propiedades para I18N.

Apache Struts 1.x


Ventajas
Versin muy extendida. Actualmente mucha demanda laboral. En empresa privada y sobre todo en administracin. Estable: muy consolidado y probado. Mucha documentacin, ejemplos, libros, etc.

Apache Struts 1.x


Desventajas
Si no est soportado por el IDE, puede resultar tedioso mantener la configuracin. Para una sola pantalla debemos crear por lo menos 2 clases (ActionForm y Action). El manejo de Actions como hilos de ejecucin pueden generar problemas. Obsoleto: actualmente hay mejores alternativas.

Apache Struts 1.x

EJEMPLOS STRUTS 1.x

STRUTS 2.x

Apache Struts 2.x


Conceptos bsicos
Basado en el patrn MVC. Struts 2 no se basa en Struts 1.x, se basa en otro framework llamado WebWork. Ms simple y mucho ms completo que Struts 1,x. Permite reducir el tiempo de desarrollo. Todas las ventajas de usar un Framework: desarrollo ms controlado y homogneo.

Apache Struts 2.x


Ventajas
Formularios POJO (Plain Old Java Objects), ya no se utilizan los ActionForm. Acciones POJO, no hace falta extender de Action. Mejoras en los tags. Archivo de configuracin opcional y con posibilidad de dividirlo en paquetes. Soporte para AJAX. Integracin de herramientas debbuging y profiling.

Apache Struts 2.x


Desventajas
La documentacin no est muy bien organizada. No hay feedback para las propiedades que no se han especificado o las expresiones OGNL no vlidas. Los resultados de Struts 1.x en Google "molestan".

Apache Struts 2.x


Arquitectura

Apache Struts 2.x


Arquitectura simplificada

Apache Struts 2.x

EJEMPLOS STRUTS 2

SPRING

SPRING
Conceptos bsicos
Basado en el patrn MVC. Versin para la plataforma .NET Spring .NET Soporte completo de Java 5. Spring Expression Language. Soporte excelente par aplicaciones REST. Mejorado el soporte de Ajax. Agregado soporte para JAX-RS.

SPRING
Conceptos bsicos
Motivacin -> Facilitar el desarrollo de aplicaciones J2EE, promoviendo buenas prcticas de diseo y programacin. (patrones de diseo como Factory, Abstract Factory, Decorator, Service Locator, etc). Es cdigo abierto. Modularidad, usar mdulos sin comprometerse con el uso del resto. Puede actuar como "pegamento" de integracin entre diferentes APIs (JDBC, JNDI, etc.) y frameworks (por ejemplo entre Struts e iBatis).

SPRING
Ventajas
Controllers, Models (JavaBeans) y Views. Muy flexible -> implementacin mediante interfaces (Struts obliga a heredar de clases concretas). No obliga a utilizar JSP. Permite usar XLST, Velocity, FreeMaker o implemtar tu propio lenguaje. Los controllers se configuran mediante IoC como los dems objetos fcilmente testeables e integrables.

SPRING
Ventajas
Ofrece un framework para todas las capas de la aplicacin. No existen ActionForms se enlaza directamente con los beans de negocio. Cantidad de cdigo testeable, las validaciones no dependen de la Api de servlets.

SPRING
Principales mdulos
Spring Core (Inversin del control (IoC) / Inyeccin de dependencias (DI)) Spring AOP (Programacin orientada a aspectos) Spring JDBC (Acceso a datos) Spring MVC (Desarrollo Web segn el patrn MVC) Spring Remoting (Distribucin) Spring Transaction Abstraction (Transacciones) Otros: Spring TestContext, Spring JMX, Spring Security , Spring Web Flow

SPRING
Principales mdulos

JBOSS SEAM

JBOSS SEAM
Conceptos bsicos
Framework desarrollado por JBoss. Combina a los 2 frameworks EJB3 y JSF. Desarrollo WYSIWYG facilitado a travs del uso de las JBoss Tools. Jboss Tools: Conjunto de plug-ins diseados para el entorno integrado de desarrollo Eclipse. Libro recomendado aqu http://www.seamframework.org/Home

JBOSS SEAM
Conceptos bsicos

JBOSS SEAM
Ventajas
Integracin con Gestores de Contenido y Workflow: JBoss Portal. Alfresco ECM, que se presenta como una excelente propuesta Open Source para el manejo de contenido empresarial. Seam elimina la barrera existente entre JSF y EJB, permitiendo usar EJBs directamente como "backing beans" de JSF y lanzar o escuchar eventos web.

GWT

GWT
Conceptos bsicos
Google Web Toolkit (GWT) es un entorno open source para el desarrollo de aplicaciones amigables en Java basadas en AJAX. El cdigo se escribe en Java. El compilador GWT lo convierte en JavaScript y HTML compatible con cualquier navegador. Coleccin de componentes de interfaz de usuario (widgets) dinmicas y reusables. Licencia Apache 2.0.

GWT
Arquitectura

GWT
Ciclo de vida del desarrollo
1. Escribir y depurar la aplicacin en Java usando GWT. 2. Usar el compilador Java-to-JavaScript de GWT para generar JavaScript y HTML. 3. Comprobar funcionamiento en los navegadores.

GWT
GWT y RPC
GWT usa RPC como mecanismo para interactuar con el servidor. (ej. obtener datos de BD). Permite pasar objetos Java entre cliente y servidor. Usado correctamente permite mover gran parte de la lgica de la interfaz al lado del cliente, obteniendo mejor rendimiento, menor consumo de ancho de banda e interfaces ms amigables.

GWT
GWT y RPC

GWT
Ventajas
Programar en Java permite utilizar IDEs como Eclipse o NetBeans, as como sus herramientas de depuracin.. Cdigo javascript generado por el compilador: Ms eficiente que el escrito a mano. Usa tcnicas de compresin y ofuscacin. Permite inlining: En la llamada a un mtodo javascript, el compilador puede colocar el cuerpo.

GWT
Ventajas
No se necesita mucho conocimiento de otros lenguajes (JavaScript). Los errores comunes JavaScripts (types, type mismatches) son capturados por el programador durante compilacin. Se evitan incompatibilidades de los navegadores. Integracin con JUnit. Internacionalizacin.

GWT
Desventajas
La generacin automtica de HTML podra dificultar el uso de herramientas estndar de HTML y CSS. Slo para desarrolladores Java. Muchos entornos Ajax permiten elegir el lenguaje en el servidor. GWT slo permite Java. Enfoque Inusual: Evaluacin y administracin ms difcil. Desconfianza.

EJEMPLO DE ARQ
Propuesta de arquitectura
Ejemplo aqu: (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php ?pagina=EjemploArquitecturaPropuestaAutentia)

Frameworks J2EE

FIN
Iker Canarias iker.canarias@gmail.com

Potrebbero piacerti anche