frameworks j2ee

51
FRAMEWORKS J2EE

Upload: iker-canarias

Post on 05-Dec-2014

11.043 views

Category:

Documents


0 download

DESCRIPTION

Introducción a los principales Frameworks J2EE como JSF, Struts1, Struts2, Spring, JBOSS Seam, GWT, etc.

TRANSCRIPT

Page 1: Frameworks J2EE

FRAMEWORKSJ2EE

Page 2: Frameworks J2EE

Framework

Conceptos básicos Framework: Conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática 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 metodología de trabajo.

Page 3: Frameworks J2EE

Framework

MVC - Modelo, vistas y controlador

Arquitectura que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control:

• Vista: JSPs, HTML, etc.

• Modelo: Sistema de Gestión de Base de Datos, la lógica de negocio, etc.

• Controlador: Responsable de recibir los eventos de entrada desde la vista.

Page 4: Frameworks J2EE

Framework

IDE: Conjunto de herramientas de programación.

IDE: Es un entorno de programación:• Un editor de texto.• Un compilador/intérprete.• Un depurador.• Sistema de control de versiones.• Ayuda para interfaces de usuario.• Automatizar tareas: (ANT, Maven, etc.)

Ejemplos IDE: Eclipse, NetBeans, etc.

Entorno de desarrollo integrado

Page 5: Frameworks J2EE

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.

Page 6: Frameworks J2EE

JSF (Java Server Faces)

Page 7: Frameworks J2EE

JSF

Conceptos básicos J ava Server Faces: especificación desarrollada por la J ava Community Process como J SR 127. Tecnología y framework para aplicaciones web Java que simplifica el desarrollo de interfaces de usuario.

Usa JavaServer Pages (JSP) para desplegar páginas.

Puede ser integrado con las bibliotecas de componentes JSF JBoss RichFaces o ICEFaces.

Page 8: Frameworks J2EE

JSF

Incluye APIs para componentes de una interfaz de usuario y administrar su estado, manejar eventos, validar entrada, definir un esquema de navegación de las páginas y dar soporte para internacionalización 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 página JSP.

Page 9: Frameworks J2EE

JSF

Incluye Un modelo de eventos en el lado del servidor.

Administración de estados.

Beans administrados.

Page 10: Frameworks J2EE

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 más populares framework javascript → jQuery.

PrimeFaces

Page 11: Frameworks J2EE

JSF

Implementaciones – PrimeFaces Más de 100 componentes Ajax de fácil uso.

Soporta JSF 2.0.

No requiere una complicada configuraciones.

Showcase de Ejemplo para descarga.

Documentación (pdf con 411 pg.).

Temas preconfigurados (Ahorra maquetación)

http://www.primefaces.org/

Page 12: Frameworks J2EE

JSF

Ventajas Java EE Standard.

Muchos componentes.

Muchas librerías y herramientas.

Buen soporte por varios IDEs.

Alta demanda laboral.

Rápido y fácil para empezar a desarrollar.

El código JavaScript se incrusta como parte de componentes.

Page 13: Frameworks J2EE

JSF

Desventajas Pesado, tanto en CPU como en memoria.

Cuando algo no funciona como se espera, es difícil de depurar.

Seguir estándares hace que la evolución de JSF no sea tan rápida como otros frameworks.

Page 14: Frameworks J2EE

JSF

Facelets Framework para plantillas centrado en JSF.

Permite trabajar con JSF de una forma más 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é línea se produce un error.

Page 15: Frameworks J2EE

JSF

EJEMPLOS JSF

Page 16: Frameworks J2EE

STRUTS 1.x

Page 17: Frameworks J2EE

Apache Struts 1.x

Conceptos básicos Framework Open Source para el desarrollo de aplicaciones Web bajo el patrón MVC (Modelo, vistas y controlador) y J2EE.

Permite reducir el tiempo de desarrollo.

Extremadamente popular y extendido.

Basado en el patrón MVC.

El componente primario de Struts es un Servlet.

Muy usada actualmente :(http://struts.apache.org/

Page 18: Frameworks J2EE

Apache Struts 1.x

ArquitecturaHTTPServlet

ActionServlet ApplicationConfig

Action RequestProcessor

ActionForm

struts-config.xml

Page 19: Frameworks J2EE

Apache Struts 1.x

Características básicas Un sólo archivo de configuración (struts-config.xml), aunque se podrían tener varios.

Cada acción 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.

Page 20: Frameworks J2EE

Apache Struts 1.x

Ventajas Versión muy extendida.

Actualmente mucha demanda laboral. En empresa privada y sobre todo en administración.

Estable: muy consolidado y probado.

Mucha documentación, ejemplos, libros, etc.

Page 21: Frameworks J2EE

Apache Struts 1.x

Desventajas Si no está soportado por el IDE, puede resultar tedioso mantener la configuración.

Para una sola pantalla debemos crear por lo menos 2 clases (ActionForm y Action).

El manejo de Actions como hilos de ejecución pueden generar problemas.

Obsoleto: actualmente hay mejores alternativas.

Page 22: Frameworks J2EE

Apache Struts 1.x

EJEMPLOS STRUTS 1.x

Page 23: Frameworks J2EE

STRUTS 2.x

Page 24: Frameworks J2EE

Apache Struts 2.x

Conceptos básicos Basado en el patrón MVC.

Struts 2 no se basa en Struts 1.x, se basa en otro framework llamado WebWork.

Más simple y mucho más completo que Struts 1,x.

Permite reducir el tiempo de desarrollo.

Todas las ventajas de usar un Framework: desarrollo más controlado y homogéneo.

Page 25: Frameworks J2EE

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 configuración opcional y con posibilidad de dividirlo en paquetes.

Soporte para AJAX.

Integración de herramientas debbuging y profiling.

Page 26: Frameworks J2EE

Apache Struts 2.x

Desventajas La documentación no está muy bien organizada.

No hay feedback para las propiedades que no se han especificado o las expresiones OGNL no válidas.

Los resultados de Struts 1.x en Google "molestan".

Page 27: Frameworks J2EE

Apache Struts 2.x

Arquitectura

Page 28: Frameworks J2EE

Apache Struts 2.x

Arquitectura simplificada

Page 29: Frameworks J2EE

Apache Struts 2.x

EJEMPLOS STRUTS 2

Page 30: Frameworks J2EE

SPRING

Page 31: Frameworks J2EE

SPRING

Conceptos básicos Basado en el patrón MVC.

Versión 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.

Page 32: Frameworks J2EE

SPRING

Conceptos básicos Motivación -> Facilitar el desarrollo de aplicaciones J2EE, promoviendo buenas prácticas de diseño y programación. (patrones de diseño como Factory, Abstract Factory, Decorator, Service Locator, etc).

Es código abierto.

Modularidad, usar módulos sin comprometerse con el uso del resto.

Puede actuar como "pegamento" de integración entre diferentes APIs (JDBC, JNDI, etc.) y frameworks (por ejemplo entre Struts e iBatis).

Page 33: Frameworks J2EE

SPRING

Ventajas Controllers, Models (JavaBeans) y Views.

Muy flexible -> implementación 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 demás objetos → fácilmente testeables e integrables.

Page 34: Frameworks J2EE

SPRING

Ventajas Ofrece un framework para todas las capas de la aplicación.

No existen ActionForms se enlaza directamente con los beans de negocio.

Cantidad de código testeable, las validaciones no dependen de la Api de servlets.

Page 35: Frameworks J2EE

SPRING

Principales módulos Spring Core (Inversión del control (IoC) / Inyección de dependencias (DI)) Spring AOP (Programación orientada a aspectos) Spring JDBC (Acceso a datos) Spring MVC (Desarrollo Web según el patrón MVC) Spring Remoting (Distribución) Spring Transaction Abstraction (Transacciones) Otros: Spring TestContext, Spring JMX, Spring Security , Spring Web Flow

Page 36: Frameworks J2EE

SPRING

Principales módulos

Page 37: Frameworks J2EE

JBOSS SEAM

Page 38: Frameworks J2EE

JBOSS SEAM

Conceptos básicos Framework desarrollado por JBoss.

Combina a los 2 frameworks EJB3 y JSF.

Desarrollo WYSIWYG facilitado a través del uso de las JBoss Tools.

Jboss Tools: Conjunto de plug-ins diseñados para el entorno integrado de desarrollo Eclipse.

Libro recomendado aquí

http://www.seamframework.org/Home

Page 39: Frameworks J2EE

JBOSS SEAM

Conceptos básicos

Page 40: Frameworks J2EE

JBOSS SEAM

Ventajas Integración 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.

Page 41: Frameworks J2EE

GWT

Page 42: Frameworks J2EE

GWT

Conceptos básicos Google Web Toolkit (GWT) es un entorno open source para el desarrollo de aplicaciones amigables en Java basadas en AJAX.

El código se escribe en Java. El compilador GWT lo convierte en JavaScript y HTML compatible con cualquier navegador.

Colección de componentes de interfaz de usuario (widgets) dinámicas y reusables.

Licencia Apache 2.0.

Page 43: Frameworks J2EE

GWT

Arquitectura

Page 44: Frameworks J2EE

GWT

Ciclo de vida del desarrollo1. Escribir y depurar la aplicación en Java usando

GWT.

2. Usar el compilador Java-to-JavaScript de GWT para generar JavaScript y HTML.

3. Comprobar funcionamiento en los navegadores.

Page 45: Frameworks J2EE

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 lógica de la interfaz al lado del cliente, obteniendo mejor rendimiento, menor consumo de ancho de banda e interfaces más amigables.

Page 46: Frameworks J2EE

GWT

GWT y RPC

Page 47: Frameworks J2EE

GWT

Ventajas Programar en Java permite utilizar IDEs como Eclipse o NetBeans, así como sus herramientas de depuración..

Código javascript generado por el compilador:

• Más eficiente que el escrito a mano.

• Usa técnicas de compresión y ofuscación.

• Permite inlining: En la llamada a un método javascript, el compilador puede colocar el cuerpo.

Page 48: Frameworks J2EE

GWT

Ventajas No se necesita mucho conocimiento de otros lenguajes (JavaScript).

Los errores comunes JavaScripts (types, type mismatches) son capturados por el programador durante compilación.

Se evitan incompatibilidades de los navegadores.

Integración con JUnit.

Internacionalización.

Page 49: Frameworks J2EE

GWT

Desventajas La generación automática de HTML podría dificultar el uso de herramientas estándar de HTML y CSS.

Sólo para desarrolladores Java.

Muchos entornos Ajax permiten elegir el lenguaje en el servidor. GWT sólo permite Java.

Enfoque Inusual:

• Evaluación y administración más difícil.

• Desconfianza.

Page 50: Frameworks J2EE

EJEMPLO DE ARQ

Propuesta de arquitectura

Ejemplo aquí:

(http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EjemploArquitecturaPropuestaAutentia)

Page 51: Frameworks J2EE

FINFrameworks J2EE

Iker [email protected]