SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
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.
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.
Framework

Entorno 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.
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 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.
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.
JSF

Incluye
    Un modelo de eventos en el lado del servidor.
    Administración 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 más populares
   framework javascript → jQuery.
    PrimeFaces
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/
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.
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.
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.
JSF



EJEMPLOS JSF
STRUTS 1.x
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/
Apache Struts 1.x

Arquitectura
               HTTPServlet




              ActionServlet           ApplicationConfig   struts-config.xml




     Action                  RequestProcessor




                ActionForm
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.
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.
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.
Apache Struts 1.x



EJEMPLOS STRUTS 1.x
STRUTS 2.x
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.
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.
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".
Apache Struts 2.x

Arquitectura
Apache Struts 2.x

Arquitectura simplificada
Apache Struts 2.x



EJEMPLOS STRUTS 2
SPRING
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.
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).
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.
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.
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
SPRING

Principales módulos
JBOSS SEAM
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
JBOSS SEAM

Conceptos básicos
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.
GWT
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.
GWT

Arquitectura
GWT

Ciclo 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.
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.
GWT

GWT y RPC
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.
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.
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.
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

Contenu connexe

Tendances

Tendances (20)

Presentation Spring
Presentation SpringPresentation Spring
Presentation Spring
 
Web Development with NodeJS
Web Development with NodeJSWeb Development with NodeJS
Web Development with NodeJS
 
데이터베이스 모델링
데이터베이스 모델링데이터베이스 모델링
데이터베이스 모델링
 
Materi struktur hirarki basis data
Materi struktur hirarki basis dataMateri struktur hirarki basis data
Materi struktur hirarki basis data
 
PHP
PHPPHP
PHP
 
Arquitetura Node com NestJS
Arquitetura Node com NestJSArquitetura Node com NestJS
Arquitetura Node com NestJS
 
Basic of HTML, CSS(StyleSheet), JavaScript(js), Bootstrap, JSON & AngularJS
Basic of HTML, CSS(StyleSheet), JavaScript(js), Bootstrap, JSON & AngularJSBasic of HTML, CSS(StyleSheet), JavaScript(js), Bootstrap, JSON & AngularJS
Basic of HTML, CSS(StyleSheet), JavaScript(js), Bootstrap, JSON & AngularJS
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
PHP - Introduction to PHP Forms
PHP - Introduction to PHP FormsPHP - Introduction to PHP Forms
PHP - Introduction to PHP Forms
 
Lessons Learned from Using Next.js in Production
Lessons Learned from Using Next.js in ProductionLessons Learned from Using Next.js in Production
Lessons Learned from Using Next.js in Production
 
Introdução ao React
Introdução ao ReactIntrodução ao React
Introdução ao React
 
Form Handling using PHP
Form Handling using PHPForm Handling using PHP
Form Handling using PHP
 
Node.js Express Framework
Node.js Express FrameworkNode.js Express Framework
Node.js Express Framework
 
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
JavaScript: The Good Parts Or: How A C# Developer Learned To Stop Worrying An...
 
Responsive web designing ppt(1)
Responsive web designing ppt(1)Responsive web designing ppt(1)
Responsive web designing ppt(1)
 
Php Tutorials for Beginners
Php Tutorials for BeginnersPhp Tutorials for Beginners
Php Tutorials for Beginners
 
Basics PHP
Basics PHPBasics PHP
Basics PHP
 
ASP.NET Basics
ASP.NET Basics ASP.NET Basics
ASP.NET Basics
 
Asp.Net Tutorials
Asp.Net TutorialsAsp.Net Tutorials
Asp.Net Tutorials
 

En vedette

1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
josezapana
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
Flashnet S.A
 
Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
Jacek Laskowski
 

En vedette (20)

Desarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EEDesarrollo de aplicaciones empresariales con Java EE
Desarrollo de aplicaciones empresariales con Java EE
 
Introducción a java EE 7
Introducción a java EE 7Introducción a java EE 7
Introducción a java EE 7
 
Arquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EEArquitectura y diseño de aplicaciones Java EE
Arquitectura y diseño de aplicaciones Java EE
 
Introducción a JEE
Introducción a JEEIntroducción a JEE
Introducción a JEE
 
Curso Java Avanzado 5 Ejb
Curso Java Avanzado   5 EjbCurso Java Avanzado   5 Ejb
Curso Java Avanzado 5 Ejb
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Pki
PkiPki
Pki
 
Spring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou TvariSpring framework - J2EE S Lidskou Tvari
Spring framework - J2EE S Lidskou Tvari
 
JAVA 2 EE
JAVA 2 EEJAVA 2 EE
JAVA 2 EE
 
Innovaciones tecnológicas
Innovaciones tecnológicasInnovaciones tecnológicas
Innovaciones tecnológicas
 
1 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_11 curso javaserverfaces-presentacion_clase_1
1 curso javaserverfaces-presentacion_clase_1
 
Sesion05
Sesion05Sesion05
Sesion05
 
Modulo 1 java ee platform
Modulo 1   java ee platformModulo 1   java ee platform
Modulo 1 java ee platform
 
Servlets exposicion
Servlets exposicionServlets exposicion
Servlets exposicion
 
Jsp(java server pages)
Jsp(java server pages)Jsp(java server pages)
Jsp(java server pages)
 
Apache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEEApache Tomcat + Java EE = Apache TomEE
Apache Tomcat + Java EE = Apache TomEE
 
Lenguaje de Programación Ruby
Lenguaje de Programación RubyLenguaje de Programación Ruby
Lenguaje de Programación Ruby
 
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, JohannesburgJava EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
Java EE 7: Developing for the Cloud at Geecon, JEEConf, Johannesburg
 
XML
XMLXML
XML
 
Ud4 Seguridad del hardware
Ud4 Seguridad del hardwareUd4 Seguridad del hardware
Ud4 Seguridad del hardware
 

Similaire à Frameworks J2EE

9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
UTN
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
econtinua
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
cok12v
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
kaolong
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
Robert Rayco Quiroz
 
Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02
Felipe Villamizar
 

Similaire à Frameworks J2EE (20)

9 tecnologías v1.1
9 tecnologías v1.19 tecnologías v1.1
9 tecnologías v1.1
 
Introducción Spring Framework
Introducción Spring FrameworkIntroducción Spring Framework
Introducción Spring Framework
 
Plataforma de programación Java
Plataforma de programación JavaPlataforma de programación Java
Plataforma de programación Java
 
spring
springspring
spring
 
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
Aplicaciones web con jakarta struts  - Javier Oliver FulgueraAplicaciones web con jakarta struts  - Javier Oliver Fulguera
Aplicaciones web con jakarta struts - Javier Oliver Fulguera
 
Presentacion mvc orm
Presentacion mvc ormPresentacion mvc orm
Presentacion mvc orm
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Intro jsf
Intro jsfIntro jsf
Intro jsf
 
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)DISEÑO DE APLICACIONES WEB (INTRODUCCION)
DISEÑO DE APLICACIONES WEB (INTRODUCCION)
 
Frameworks Java
Frameworks JavaFrameworks Java
Frameworks Java
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)Manual 2014 i 04 lenguaje de programación ii (0870)
Manual 2014 i 04 lenguaje de programación ii (0870)
 
Java Web - Struts
Java Web - StrutsJava Web - Struts
Java Web - Struts
 
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, PrimefacesSeminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
Seminario de programación Java, con Apache Maven, J2EE, JPA, Primefaces
 
Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02Patronmvc 090816170431-phpapp02
Patronmvc 090816170431-phpapp02
 
Patron Mvc Struts 1 y 2
Patron Mvc Struts 1 y 2Patron Mvc Struts 1 y 2
Patron Mvc Struts 1 y 2
 
01.springframework.pptx
01.springframework.pptx01.springframework.pptx
01.springframework.pptx
 
Spring
SpringSpring
Spring
 
Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)Introducción a Java y BEA (2008)
Introducción a Java y BEA (2008)
 

Plus de Iker Canarias

Plus de Iker Canarias (10)

Patrones de diseño de software
Patrones de diseño de softwarePatrones de diseño de software
Patrones de diseño de software
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Introducción a JUnit
Introducción a JUnitIntroducción a JUnit
Introducción a JUnit
 
Integración de aplicaciones Java
Integración de aplicaciones JavaIntegración de aplicaciones Java
Integración de aplicaciones Java
 
Persistencia de datos en Java
Persistencia de datos en JavaPersistencia de datos en Java
Persistencia de datos en Java
 
Introducción a Tomcat
Introducción a TomcatIntroducción a Tomcat
Introducción a Tomcat
 
Introducción a JBoss
Introducción a JBossIntroducción a JBoss
Introducción a JBoss
 
Buenas prácticas para la construcción de software
Buenas prácticas para la construcción de softwareBuenas prácticas para la construcción de software
Buenas prácticas para la construcción de software
 
Introducción a Servidor HTTP Apache
Introducción a Servidor HTTP ApacheIntroducción a Servidor HTTP Apache
Introducción a Servidor HTTP Apache
 

Frameworks J2EE

  • 1. FRAMEWORKS J2EE
  • 2. 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.
  • 3. 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.
  • 4. Framework Entorno 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. 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.
  • 7. 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.
  • 8. 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.
  • 9. JSF Incluye  Un modelo de eventos en el lado del servidor.  Administración de estados.  Beans administrados.
  • 10. 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
  • 11. 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/
  • 12. 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.
  • 13. 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.
  • 14. 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.
  • 17. 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/
  • 18. Apache Struts 1.x Arquitectura HTTPServlet ActionServlet ApplicationConfig struts-config.xml Action RequestProcessor ActionForm
  • 19. 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.
  • 20. 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.
  • 21. 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.
  • 24. 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.
  • 25. 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.
  • 26. 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".
  • 31. 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.
  • 32. 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).
  • 33. 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.
  • 34. 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.
  • 35. 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
  • 38. 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
  • 40. 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.
  • 41. GWT
  • 42. 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.
  • 44. GWT Ciclo 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. 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.
  • 47. 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.
  • 48. 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.
  • 49. 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.
  • 50. EJEMPLO DE ARQ Propuesta de arquitectura Ejemplo aquí: (http://www.adictosaltrabajo.com/tutoriales/tutoriales.php ?pagina=EjemploArquitecturaPropuestaAutentia)
  • 51. Frameworks J2EE FIN Iker Canarias iker.canarias@gmail.com