experiencias usando la tecnología adf

Post on 05-Dec-2014

3.751 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentación de Plinio Arbizu (@oramexico) en #OTNLADTour

TRANSCRIPT

Plinio Arbizu – Oracle Ace Director

◦ Definición de la Arquitectura ADF.◦ Metodología de Desarrollo◦ Recomendaciones Equipos de Trabajo◦ Recomendación en el modelado de BD◦ Recomendaciones en la capa de modelo◦ Recomendaciones en la capa de control◦ Recomendaciones en la capa de Vista◦ Recomendaciones en el manejo de

Versiones◦ Recomendaciones Generales

Plinio Arbizu

Oracle ACE Director Coautor del libro Web 2.0 solutions with

Oracle WebCenter Certificado :

◦ Oracle ADF Certified Implementation Specialist ◦ Oracle WebCenter Portal 11g Certified

Implementation Specialist

Líder del Grupo de Usuarios Oracle en México (ORAMEX)

Consultor de S&P Solutions de México Instructor de Oracle University en Perú

◦ Es un meta-framework que integra diversos frameworks para el desarrollo de soluciones

◦ Reduce la complejidad de los desarrollos J2EE brindando un desarrollo visual y declarativo

◦ Basado en Java y XML◦ Incrementa el desarrollo productivo

Menos codificación y mayor rehúso Enfocado en la aplicación y no en lo “Accesorios”

◦ Promueve el uso de buenas practicas J2EE implementando Patrones de Diseño J2EE (MVC)

Business Services

Data Services

Model

Controller

View

ADF Bindings (JSR 227)

JSF

Desktop Browser-based

Struts JSF/ADF Task Flow

OfficeADF Swing JSP

TopLink

EJB BAM ADF BC PortletsBI EssbaseBPEL Web Services

Java

ADF Faces / DVT

XML Data Legacy DataRelational Data

Packaged Apps

Desarrollar

1 Application

2 Capa de Modelo (Business Components)

• Persistent Business Object

• View Object

• Application Module

3. Capa Controller

• Crear el Flujo de páginas

4. Capa de Vista

• 7- Crear la página JSF

5. Correr la aplicación

Metodología de Desarrollo

Desarrollo Gradual

Conocimientos básicos: Java, PL-SQL, JSF.

Conocimiento del manejo de versiones

Sí va a cambiar el diseño, Diseñador WEB.

Incluir un Administrador de Weblogic.

Puede incluir recien egresados para labores

sencillas.

Alineados a usar ADF (Decl + Progr)

Normalizar

Usar Sequence y Triggers para los Primary Keys.

Un diseño generico impacta en los desarrollos.

Se puede usar Store Procedures, pero no priorizarlo.

No es necesario crear vistas de BD.

Nombrado afecta el mapeo de componentes.

Enterprise Java Beans (EJB)

Estándar JavaEE

Orientado a Objetos

TopLink

Maduro

Orientado a Objeto

Java Beans

Flexible

ADF Business Components

Default

Soporta características OO, Perspectiva Relacional

◦ Brinda interacción de datos y implementación de reglas de negocio.

◦ Mapea las fuentes de datos, ejem : Oracle DB, MySql, etc,(JDBC Driver).

◦ Permite un desarrollo 4GL Asistente y un desarrollo Visual Implementado en metada, no código

◦ Permite la codificación de lógica de negocio.

Sistema de Sistema de MatriculasMatriculas - - matricular()matricular()

HTML, Java, and XML Interfaces

AlumnosAlumnosCursos MATHCursos MATH

ProfesoresProfesoresActivos Activos

AlumnosAlumnos

CursosCursos

ProfesoresProfesores

ViewView EntityEntityApplicationApplication

Lógica de Negocio

Presentacióny Manipulación de Datos

Contenedores deAplicaciones y Servicios

XMLXML

Empieza con sus tablas

Desarrolle sus Entidades que encapsulen su lógica de negocio

Elabore sus ViewObjects que prepara la data para la interacción con clientes Externos

Desarrolle su Aplication Module que incluya las VO’S necesarias en su Aplicación

Finalmente desarrolle su capa de Presentación en la tecnología de su preferencia JSF,ADF Faces

Validaciones Declarativas

Validaciones Declarativas

1

2 4

3

Lista de Valores

Ideal para colocar lógica

Maneja Transacciones por Default

Maneja su propio pool de conexión datos

Cuenta con su propio cache de entidad.

Crear un sólo application module para la aplicación

Crear varios application module aislados

Se utiliza más conexiones a la base de datos

No se preserva el mismo cache de entidad

Se maneja un application module root

Se cuenta con varios modulos de aplicación “Hijos” asociados a

un caso de uso.

Todos comparte el pool de conexiones y el cache de entidades

public void incrementarPrecio(int porcentaje){Row fila = this.getProductoVO1().first();

while (fila !=null){float precio = ((Number)fila.getAttribute("Precio")).floatValue();float nuevoPrecio = precio * (100+ porcentaje)/100 ;fila.setAttribute("Precio", new Number(nuevoPrecio));

fila = this.getProductoVO1().next();}

this.getDBTransaction().commit();}

Mantenga los tipos de datos que sugiere el asistente

Aproveche las validaciones declarativas y las asociaciones

Los View Object puede ser basados en SQL, aproveche los

view criterias y las listas de valores

Modularizar sí tiene una aplicación grande

Usar Nested Aplication Module (Nested)

Usar un App module por conexion a DB

Business Services

Data Services

Model

Controller

View

ADF Bindings (JSR 227)

JSF

Desktop Browser-based

Struts JSF/ADF Task Flow

OfficeADF Swing JSP

TopLink

EJB BAM ADF BC PortletsBI EssbaseBPEL Web Services

Java

ADF Faces / DVT

XML Data Legacy DataRelational Data

Packaged Apps

Database table ADF BCEntity Object

ADF BCView Object

ADF BCApplication Module

ADF ModelData ControlBinding ContainerDatabound components on a JSP

Data Controls panel:◦ Es una representación de

la capa de business service que contiene Métodos Parametros y valores de

retorno Atributos Colecciones

◦ Se genera automáticamente basado en cada módulo de aplicaciones.

Executables - Iteradores

Bindings - Value Bindigs - Action Bindings - Tree Bindings - Etc

◦ Las expressiones asociadas a los bindings son escritas usando EL.

◦ Estas son evaluadas en tiempo de ejecución para determinar que mostrar

◦ ADF EL expressions tipicamente tienene esta forma:#{bindingVariable.BindingObject.propertyName} Ejemplo de un inputText component en una página JSF

<af:inputText value="#{bindings.Ename.inputValue}” label="#{bindings.Ename.label}” required="#{bindings.Ename.mandatory}">

Binding Context

BindingContainer

Data Control

Page definition file

*PageDef.xml

Binding context definition file

DataBindings.cpx

Structure definition file

*.xml

DataControls.dcx

Data Controls definition file

public String calcular() { // Add event code here... BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry(); AttributeBinding dato= (AttributeBinding)bindings.getControlBinding("empleadoParametro"); AttributeBinding resultado = (AttributeBinding)bindings.getControlBinding("totalResultado");

OperationBinding operationBinding = bindings.getOperationBinding("obtenerTotal"); Map parametros = operationBinding.getParamsMap(); parametros.put("cod", dato.getInputValue()); Double retorno= (Double)operationBinding.execute(); resultado.setInputValue(retorno); if (!operationBinding.getErrors().isEmpty()) { } return null; }

Controle los descriptores en las integraciones.

Los Bindigs también se programan. ( Ver más adelante)

Inicialmente use siempre bindings para acceder a los business

Manipule los bindigs según sus necesidades.

Inicialmente use esta forma

de integración

ADF task flows son unidades lógicas de flujos de paginas◦ Ofrece ventajas sobre los flujos JSF :

La aplicación puede ser dividida en tareas (Task) Puede contener otros tipos de elementos además

de páginas Reusables Comparte el mismo scope de memoria.

◦ Pueden ser del tipo unbounded o bounded

login

Principal

RegistroVenta

Clientes

ConfirmaVenta

UnBounded Task Flow

login

Principal

Clientes

ConfirmaVenta

UnBounded Task Flow

RegistroVenta

Bounded Task Flow

login

Principal

Clientes

ConfirmaVenta

UnBounded Task Flow

RegistroVenta

Bounded Task Flow

RechazaVenta

Validar

tarjeta?

login

Principal

UnBounded Task Flow ( adfc – config)

ConfirmaVenta

RegistroVenta

ConfirmaCompra

RegistroCompra

Usando Páginas

login

UnBounded Task Flow ( adfc – config)

Usando Fragmentos

Flujo de Venta, Compra..(bounded - fragmentos)

Principal.jspx

Usar un sólo flujo unbounded (adfc-config.xml)

Modularizar las páginas en flujos del tipo bounded

Los elementos de los flujos son reusables (doble reuso)

Recuede que no son sólo pagínas sino pueden ser decisiones

ó invocación a metodos.

Puede usar páginas ó fragmentos

Fragmentos son altamente reusables y pueden ser exportados

a componentes personalizables ó portlets

Business Services

Data Services

Model

Controller

View

ADF Bindings (JSR 227)

JSF

Desktop Browser-based

Struts JSF/ADF Task Flow

OfficeADF Swing JSP

TopLink

EJB BAM ADF BC PortletsBI EssbaseBPEL Web Services

Java

ADF Faces / DVT

XML Data Legacy DataRelational Data

Packaged Apps

Deberá crear su template El trabajo se realiza basado en Layout

(Contenedores)◦ Panel Group Layout (Horizontal, Vertical)◦ Panel Form Layout (Almacenar componentes en formato

formulario) Existe una gran variedad de componentes “out of

the box” (Combos, Input Text, Grillas)◦ Generalmente sugeridos por el asistente.

Generalmente se utiliza un managed bean para soportar los eventos de la página.◦ Los eventos ó Listeners dependen del componente

ADF Library permite que reuse componentes:◦ Se empaqueta en un ADF Library JAR files.◦ Incluya estos en un catalogo de recursos.◦ Incluya la libreria en el proyecto que usted este

trabajando

1

23

4

Todo es Java y XML Utilice SVN, se integra a Jdeveloper Puede hacer commit, update, revert Puede comparar su versión contra la que

esta desplegada en el server..

Defina un integrador que sea el encargado de los despliegues y archivos sensibles

Cuide archivos “Sensibles”◦ adfc_config.xml◦ Databindings.cpx◦ Proyectos (*.jpr)◦ Faces_config.xml

Si esta empezando, cree el esqueleto del proyecto y que los desarrolladores sólo hagan actualizaciones

ADF es un framework integral para realizar aplicaciones de negocio

ADF no es un framework para hacer sólo mantenimientos

ADF trabaja declarativamente y programaticamente

ADF permite personalizar. No es rigido.

ADF soporte el trabajo de aplicaciones “Grandes”.

ADF permite el trabajo de equipos.

ADF es la base de Fusion y puede ser el inicio para escalar a otras

tecnologías (WebCenter, BPM, Applications)

www.oracle.com/technetwork/jdev• Tutorials• Demos• Software• Discussions• Blogs• And more

plinioa.blogspot.com• Curso en Español• Artículos (avanzado)• Eventos

Preguntas y Respuestas

top related