Experiencias Usando la Tecnología ADF
-
Upload
refundation -
Category
Documents
-
view
3.751 -
download
4
description
Transcript of Experiencias Usando la Tecnología ADF
![Page 1: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/1.jpg)
Plinio Arbizu – Oracle Ace Director
![Page 2: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/2.jpg)
◦ 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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/4.jpg)
◦ 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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/5.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/7.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/9.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/10.jpg)
◦ 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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/12.jpg)
Empieza con sus tablas
![Page 13: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/13.jpg)
Desarrolle sus Entidades que encapsulen su lógica de negocio
![Page 14: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/14.jpg)
Elabore sus ViewObjects que prepara la data para la interacción con clientes Externos
![Page 15: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/15.jpg)
Desarrolle su Aplication Module que incluya las VO’S necesarias en su Aplicación
![Page 16: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/17.jpg)
Validaciones Declarativas
![Page 18: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/18.jpg)
Validaciones Declarativas
![Page 19: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/19.jpg)
1
2 4
3
Lista de Valores
![Page 20: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/22.jpg)
![Page 23: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/23.jpg)
![Page 24: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/26.jpg)
![Page 27: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/27.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/28.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/29.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/31.jpg)
Executables - Iteradores
Bindings - Value Bindigs - Action Bindings - Tree Bindings - Etc
![Page 32: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/32.jpg)
◦ 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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/37.jpg)
login
Principal
RegistroVenta
Clientes
ConfirmaVenta
UnBounded Task Flow
![Page 38: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/38.jpg)
login
Principal
Clientes
ConfirmaVenta
UnBounded Task Flow
RegistroVenta
Bounded Task Flow
![Page 39: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/39.jpg)
login
Principal
Clientes
ConfirmaVenta
UnBounded Task Flow
RegistroVenta
Bounded Task Flow
RechazaVenta
Validar
tarjeta?
![Page 40: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/40.jpg)
![Page 41: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/41.jpg)
![Page 42: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/42.jpg)
login
Principal
UnBounded Task Flow ( adfc – config)
ConfirmaVenta
RegistroVenta
ConfirmaCompra
RegistroCompra
Usando Páginas
![Page 43: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/43.jpg)
login
UnBounded Task Flow ( adfc – config)
Usando Fragmentos
Flujo de Venta, Compra..(bounded - fragmentos)
Principal.jspx
![Page 44: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/44.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/45.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/46.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/47.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/48.jpg)
1
23
4
![Page 49: Experiencias Usando la Tecnología ADF](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/49.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/50.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/51.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/52.jpg)
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](https://reader033.fdocuments.es/reader033/viewer/2022050815/548211f8b4af9f690d8b469c/html5/thumbnails/53.jpg)
Preguntas y Respuestas