Frameworks J2EE

13,540 views

Published on

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

2 Comments
4 Likes
Statistics
Notes
No Downloads
Views
Total views
13,540
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
389
Comments
2
Likes
4
Embeds 0
No embeds

No notes for slide

Frameworks J2EE

  1. 1. FRAMEWORKS J2EE
  2. 2. FrameworkConceptos básicos Framework: Conjunto estandarizado de conceptos,prácticas y criterios para enfocar un tipo deproblemática particular, que sirve como referencia paraenfrentar y resolver nuevos problemas de índolesimilar. (wikipedia) Soporte de programas, bibliotecas y un lenguajeinterpretado, etc. para ayudar a desarrollar y unir losdiferentes componentes de un proyecto. Estructura y una metodología de trabajo.
  3. 3. FrameworkMVC - 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.
  4. 4. FrameworkEntorno de desarrollo integrado  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.
  5. 5. FrameworkFrameworks 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.
  6. 6. JSF(Java Server Faces)
  7. 7. JSFConceptos 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.
  8. 8. JSFIncluye  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.
  9. 9. JSFIncluye  Un modelo de eventos en el lado del servidor.  Administración de estados.  Beans administrados.
  10. 10. JSFImplementaciones  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
  11. 11. JSFImplementaciones – 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/
  12. 12. JSFVentajas  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.
  13. 13. JSFDesventajas  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.
  14. 14. JSFFacelets  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.
  15. 15. JSFEJEMPLOS JSF
  16. 16. STRUTS 1.x
  17. 17. Apache Struts 1.xConceptos 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/
  18. 18. Apache Struts 1.xArquitectura HTTPServlet ActionServlet ApplicationConfig struts-config.xml Action RequestProcessor ActionForm
  19. 19. Apache Struts 1.xCaracterí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.
  20. 20. Apache Struts 1.xVentajas  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.
  21. 21. Apache Struts 1.xDesventajas  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.
  22. 22. Apache Struts 1.xEJEMPLOS STRUTS 1.x
  23. 23. STRUTS 2.x
  24. 24. Apache Struts 2.xConceptos 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.
  25. 25. Apache Struts 2.xVentajas  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.
  26. 26. Apache Struts 2.xDesventajas  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".
  27. 27. Apache Struts 2.xArquitectura
  28. 28. Apache Struts 2.xArquitectura simplificada
  29. 29. Apache Struts 2.xEJEMPLOS STRUTS 2
  30. 30. SPRING
  31. 31. SPRINGConceptos 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.
  32. 32. SPRINGConceptos 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).
  33. 33. SPRINGVentajas  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.
  34. 34. SPRINGVentajas  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.
  35. 35. SPRINGPrincipales 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
  36. 36. SPRINGPrincipales módulos
  37. 37. JBOSS SEAM
  38. 38. JBOSS SEAMConceptos 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
  39. 39. JBOSS SEAMConceptos básicos
  40. 40. JBOSS SEAMVentajas  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.
  41. 41. GWT
  42. 42. GWTConceptos 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.
  43. 43. GWTArquitectura
  44. 44. GWTCiclo de vida del desarrollo 1. 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.
  45. 45. GWTGWT 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.
  46. 46. GWTGWT y RPC
  47. 47. GWTVentajas  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.
  48. 48. GWTVentajas  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.
  49. 49. GWTDesventajas  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.
  50. 50. EJEMPLO DE ARQPropuesta de arquitectura Ejemplo aquí: (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php ?pagina=EjemploArquitecturaPropuestaAutentia)
  51. 51. Frameworks J2EE FIN Iker Canarias iker.canarias@gmail.com

×