20 septiembre, 2018

Desarrollo de Aplicaciones Web II (Java)

LOGRO PRINCIPAL

En este cursos aprenderemos a desarrollar aplicaciones webs en N-CAPAS utilizando los patrones de diseño JEE, el estilo arquitectónico MVC y las funcionalidades provistas por los framework JSF (Java Server Faces) a nivel de vista-controlador y por JPA (Java Persistence API) a nivel de persistencia. 

Este pequeño curso estará divido en dos partes, En la primera parte, aprenderemos a configurar y utilizar el framework JPA mediante el desarrollo de aplicaciones Stand.Alone. En la segunda parte, aprenderemos  a utilizar el framework JSF para desarrollar aplicaciones web. Por último, integraremos las funcionalidades de ambos frameworks en una aplicación final.

Sin mas, trataré de explicar de una manera rápida y sencilla algunos conceptos que sean necesarios sin extender demasiado el post y al finalizar cada publicación dejaré el link del proyecto finalizado para que puedan ser descargado.

Herramientas Utilizadas (Opcional):

Eclipse Java EE IDE for Web Developers
Apache Tomcat 7.0.22
JSF 2.0 (Mojarra 2.0.3)
EclipseLink 2.3.3 - Indigo


Primera Parte

Introducción a JPA


Java Persistence API es una especificación de persistencia para la plataforma JAVA que aplica el Mapeo Relacional Objeto  (ORM: Object-Relational Mapping) permitiendo interactuar con bases de datos relacionales sin perder las ventajas de la orientación a objetos. Esto permite construir  aplicaciones  completamente orientadas a objetos.


Persistencia de objetos

La persistencia permite respaldar en una fuente de datos el estado de un objeto, representado por los valores de sus atributos en un determinado momento.

Entidad

Es un objeto que tiene atributos y relaciones con otras entidades y debe cumplir con las siguientes características: debe ser persistente, debe tener granularidad (bajar de nivel, país, departamento, distrito, ...),  debe tener identidad (tener un identificador único) y debe tener transaccionalidad (las operaciones de insertar, eliminar, actualizar deben realizarse en un contexto transaccional para ser grabados en una base de datos). 

Una entidad está descrita por Metadata (Anotaciones ó XML). Las anotaciones de JPA se clasifican en dos categorías (no se almacena en base de datos).


Persistence Unit

Contiene la configuración implícita o explícita (con un nombre asociado) para las entidades y para el Entity Manager.

EntityManagerFactory

Genera una especie de plantilla para la persistencia, tomando la configuración particular desde una unidad de persistencia


EntityManager

Es la que ejecuta todo el trabajo de persistencia. Por tanto, una entidad mientras que no se trabaje con el Entity Manager es un objeto Java simple como cualquier otro. Cuando el Entity manager obtiene una referencia a una entidad, se dice que dicha entidad está en estado “managed”. Los Entity Managers son configurados para trabajar con determinados tipos de objetos, bases de datos y son implementados por un proveedor (provider) conocido
como “persistence provider”. En términos prácticos este provider es la implementación de la especificación JPA. Los Entity Managers se generan a partir de una factoría de tipo EntityManagerFactory,

Persistence Context

Es el conjunto de entidades en estado managed o gestionadas dentro de un Entity Manager.

Lenguaje Nativo

JPQL (Java Persistence Query Languaje

El siguiente diagrama muestra la relación entre los componentes principales de la arquitectura de JPA:


Implementaciones

Algunas de las implementaciones mas conocidas de JPA son: Hibernate, TopLink, OpenJPA, EclipseLink.

Si quiere comparar las implementaciones de JPA: Toplink, EclipseLink, Hibernate y OpenJPA, aquí te dejo un link: http://terrazadearavaca.blogspot.com/2008/12/comparativa-de-implementaciones-de-jpa.html

Publicaciones:

➣ Sesión01 - (JPA) Introducción al framework de persistencia JPA
➣ Sesión02 - (JPA) Gestión de la capa de persistencia
➣ Sesión03 - (JPA) Relación entre entidades

Segunda Parte

Introducción a JSF

Java Server Faces (JSF) es el estándar “oficial” en la capa web para la plataforma Java EE. JSF incluye un conjunto de componentes predefinidos para la interfaz gráfica web (UI), un modelo de programación basado en eventos y la habilidad para añadir componentes desarrollados por terceros. En resumen toma los mejores elementos de los frameworks que le precedieron (CGI, Servlet, JSP, Struts, Spring MVC) y los combina en un conjunto de API’s estándares para el desarrollo de interfaces de usuario. Al ser JSF una especificación, se pueden encontrar implementaciones de diferentes fabricantes, lo cual permite no vincularse con ningún proveedor en particular y tener la total libertad de seleccionar aquel que más se acomode a nuestras necesidades.

Algunas implementaciones de JSF son:

Proyecto Mojarra (La implementación de referencia de SUN Microsystems ahora propiedad de Oracle Corp).

Oracle ADF Faces, extiende la funcionalidad de JSF proporcionando muchas funcionalidades Ajax.

MyFacesproyecto de Apache Software Foundation, para mantener una implementación abierta de JavaServer Faces JSF, por medio del desarrollo de bibliotecas y componentes.

Rich Faces, alojado por Jboss (Grupo RedHat), agrega componentes visuales y soporte para AJAX

ICE Faces, contiene diversos componentes para interfaces de usuarios más enriquecidas, tales como editores de texto enriquecidos, reproductores de multimedia, entre otros.

PrimeFaces, es una librería muy liviana, todas las decisiones hechas son basadas en mantener a PrimeFaces lo más liviano posible, muy simple que no necesita dependencias y configuraciones.

OpenFaces, es un librería open source que contiene diferentes componentes JSF, un Framework Ajax y un Framework de validación por parte del cliente.

jQuery4jsf, contiene componentes basados en el Framework JavaScript jQuery. Es un proyecto alojado por Google Code:

Publicaciones:


No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!