experiencias usando la tecnología adf

53
Plinio Arbizu – Oracle Ace Director

Upload: refundation

Post on 05-Dec-2014

3.751 views

Category:

Documents


4 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Experiencias Usando la Tecnología ADF

Plinio Arbizu – Oracle Ace Director

Page 2: Experiencias Usando la Tecnología ADF

◦ 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

Page 3: Experiencias Usando la Tecnología ADF

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ú

Page 4: Experiencias Usando la Tecnología ADF

◦ 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)

Page 5: Experiencias Usando la Tecnología ADF

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

Page 6: Experiencias Usando la Tecnología ADF

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

Page 7: Experiencias Usando la Tecnología ADF

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)

Page 8: Experiencias Usando la Tecnología ADF

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.

Page 9: Experiencias Usando la Tecnología ADF

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

Page 10: Experiencias Usando la Tecnología ADF

◦ 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.

Page 11: Experiencias Usando la Tecnología ADF

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

Page 12: Experiencias Usando la Tecnología ADF

Empieza con sus tablas

Page 13: Experiencias Usando la Tecnología ADF

Desarrolle sus Entidades que encapsulen su lógica de negocio

Page 14: Experiencias Usando la Tecnología ADF

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

Page 15: Experiencias Usando la Tecnología ADF

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

Page 16: Experiencias Usando la Tecnología ADF

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

Page 17: Experiencias Usando la Tecnología ADF

Validaciones Declarativas

Page 18: Experiencias Usando la Tecnología ADF

Validaciones Declarativas

Page 19: Experiencias Usando la Tecnología ADF

1

2 4

3

Lista de Valores

Page 20: Experiencias Usando la Tecnología ADF

Ideal para colocar lógica

Maneja Transacciones por Default

Maneja su propio pool de conexión datos

Cuenta con su propio cache de entidad.

Page 21: Experiencias Usando la Tecnología ADF

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

Page 22: Experiencias Usando la Tecnología ADF
Page 23: Experiencias Usando la Tecnología ADF
Page 24: Experiencias Usando la Tecnología ADF

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

Page 25: Experiencias Usando la Tecnología ADF

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();}

Page 26: Experiencias Usando la Tecnología ADF
Page 27: Experiencias Usando la Tecnología ADF

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

Page 28: Experiencias Usando la Tecnología ADF

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

Page 29: Experiencias Usando la Tecnología ADF

Database table ADF BCEntity Object

ADF BCView Object

ADF BCApplication Module

ADF ModelData ControlBinding ContainerDatabound components on a JSP

Page 30: Experiencias Usando la Tecnología ADF

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.

Page 31: Experiencias Usando la Tecnología ADF

Executables - Iteradores

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

Page 32: Experiencias Usando la Tecnología ADF

◦ 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}">

Page 33: Experiencias Usando la Tecnología ADF

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

Page 34: Experiencias Usando la Tecnología ADF

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; }

Page 35: Experiencias Usando la Tecnología ADF

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

Page 36: Experiencias Usando la Tecnología ADF

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

Page 37: Experiencias Usando la Tecnología ADF

login

Principal

RegistroVenta

Clientes

ConfirmaVenta

UnBounded Task Flow

Page 38: Experiencias Usando la Tecnología ADF

login

Principal

Clientes

ConfirmaVenta

UnBounded Task Flow

RegistroVenta

Bounded Task Flow

Page 39: Experiencias Usando la Tecnología ADF

login

Principal

Clientes

ConfirmaVenta

UnBounded Task Flow

RegistroVenta

Bounded Task Flow

RechazaVenta

Validar

tarjeta?

Page 40: Experiencias Usando la Tecnología ADF
Page 41: Experiencias Usando la Tecnología ADF
Page 42: Experiencias Usando la Tecnología ADF

login

Principal

UnBounded Task Flow ( adfc – config)

ConfirmaVenta

RegistroVenta

ConfirmaCompra

RegistroCompra

Usando Páginas

Page 43: Experiencias Usando la Tecnología ADF

login

UnBounded Task Flow ( adfc – config)

Usando Fragmentos

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

Principal.jspx

Page 44: Experiencias Usando la Tecnología ADF

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

Page 45: Experiencias Usando la Tecnología ADF

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

Page 46: Experiencias Usando la Tecnología ADF

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

Page 47: Experiencias Usando la Tecnología ADF

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

Page 48: Experiencias Usando la Tecnología ADF

1

23

4

Page 49: Experiencias Usando la Tecnología ADF

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

Page 50: Experiencias Usando la Tecnología ADF

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

Page 51: Experiencias Usando la Tecnología ADF

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)

Page 52: Experiencias Usando la Tecnología ADF

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

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

Page 53: Experiencias Usando la Tecnología ADF

Preguntas y Respuestas