Post on 10-Apr-2015
<Insert Picture Here>
Desarrollo declarativo en Java :¿Tan fácil como Oracle Forms?
Agenda• Jdeveloper y ADF• JSF y ADF Faces• JHeadstart• ¿Ya es como Oracle Forms?• Recursos
• OTN• Oracle University
¿Qué es Jdeveloper?
• IDE de Oracle para Java (y otras tecnologías)• Generador y organizador de código 3GL• Algunas capacidades 4GL
• Soporta todo el ciclo de desarrollo en J2EE• Diferentes formas de despliegue• P.e. Aplicación Java, applet, JSP, servlet, EJB
• Fácil desarrollo, depuración y despliegue• Gran cantidad de asistentes para crear código de arranque• Framework de acceso a datos: Business Components (BC4J y
ADF BC)
Oracle Fusion Middleware
DESARROLLAR
J2EE ... y más
Oracle Application Development Framework (ADF)
• Es un “meta-framework” que “empaqueta otros “frameworks”• JSF• Struts• ADF Business Components, etc
• Corrige los retos del desarrollo J2EE• Demasidas opciones tecnológicas• Ninguna herramienta para integrarlas• Conectividad a base de datos dificil (JDBC)
• Disponible desde Jdeveloper 10g• Basado en el patrón de diseño J2EE Modelo-Vista-
Controlador
Application Development FrameworkEnsamblado visual de aplicaciones
Device View Controller Model
• Device & Browser Adaptation
• Ajax• Flash• Mobile• Web 2.0
• Page Flow
• Service Binding
Proceso de desarrollo
• Crear un workspace para la aplicación• Crear proyecto de Business Services y Modelo• Crear proyecto de vista y controlador• Añadir objetos del modelo usando los diagramas,
asistentes y editores de BC• Añadir los objetos de Vista y Controlador
• Crear diagrama de navegación y páginas Y/O• Crear páginas y luego el diagrama e navegación
• Test y debugging
<Insert Picture Here>
Introducion Oracle ADF
Oracle Application Development Framework
¿Qué es ADF?
• Application Development Framework simplifica el desarrollo de aplicaciones
• Productividad y capacidad de elección• Facilidad de uso y productivad gran productividad• Promueve el desarrollo orientado a servicios• Basado en estándares
• Componente clave de la arquitectura de Fusion
¿Qué es ADF?
• Proporciona soluciones de infraestructura• Mapeo O/R, persistencia, caching, controller, binding,
framework UI • Y una forma fácil de manejarlas
• Una herramienta – propiedades, dialogos, editores visuales etc…
Business Services
Web and WirelessRich Clients
Model
Controller
ViewView
ControllerController
ModelModel(JSR 227)(JSR 227)
Arquitectura ADF
Arquitectura ADF
ADF Model
Struts JSF
JSF/ADF FacesJSPADF Swing View
Controller
Model(JSR 227)
Business Services
Rich Client Web / Wireless
Relational Data XML Data Legacy Data
Data Source
EJB/Toplink
ADFBusiness
Components
Java
Classes
Web
ServicesPortlets
Packaged Apps
Desarrollo SOA con ADF
DevelopDevelop
BusinessBusinessServiceService
ExposeExpose
ModelModel
AccessAccess
ViewView
Servicios de desarrolloCapa de Business
• Acceso a datos• O/R Mapping• Queries/DML
• Lógica de negocio• Validación de datos• Lógica de negocio
• Elecciones de implementación• EJB, POJO, Web Services, XML, TopLink, ADF
Business Components
DevelopDevelop
BusinessBusinessServiceService
Servicios de AccesoCapa de Vista
• Elección de tecnologías• JavaServer Faces (JSF)• Swing• JSP• JSP/Struts
• Editor visual de layout• Fácil data binding
AccessAccess
ViewView
Ejemplo de componentes de ADF
Modelo de programacion consistente
J2EEJ2EE Bus. LogicBus. Logic
HTMLHTML RIARIA MobileMobile TelnetTelnet
IndustrialIndustrial
CSSCSS CSSCSS
Phone/PDAPhone/PDABrowserBrowser
SkinsSkins
Render KitsRender Kits
ComponentsComponents
InterfaceInterfaceJava Server Faces / JSPJava Server Faces / JSP
ADF FacesADF Faces
ASKASK
ASASITSITS
IMIM
Servicios de ExposiciónCapa de Modelado ADF
• ADF model• JSR-227 Data Controls
• Interfaz orientada a servicios• Implementación abstracta desde clientes • Acoplamiento ligero entre servicio y aplicaciones
• Más reusable• Descubre y comparte servicios
• Más productividad• Drag and Drop Data Binding
ExposeExpose
ModelModel
ADF Data Binding
• Arrastrar y soltar servicios de negocio a la vista y al controlador
¿Qué es JSF?
• Tecnología Java Server Faces• “Nueva” tecnología
• Parte de la nueva especificación Java (Java EE 5)• Ofrece una implementación de referencia
• Simplifica el desarrollo de JSP• Basado en componentes
• Integra el controlador• No se necesita Struts
• Escribe menos HTML• Lenguaje de marcado de componentes
• Se puede insertar JSF en páginas JSP
¿Por qué Jheadstart?• Oracle ADF es más sencillo que cualquier otra solución J2EE!• Pero…• Los desarrolladores que conocen Oracle Forms y Oracle
Designer quieren que sea aún más sencillo ( “J2EZ”)!• Aumenta la presión en IT para reducir el tiempo de desarrollo
de aplicaciones de negocio • Los prototipos rápidos pueden acelerar las fases de análisis• La arquitectura SOA requiere interfaces de usuario flexibles• La actualización a nuevas versiones/tecnologías es muchos
más sencilla usando metadatos que no dependan de la tecnología
¿Qué es Oracle JHeadstart?
• Es una extensión de JDeveloper para la automatización, basada en plantillas, de las tareas de desarrollo con ADF
• Principios de diseño:• Desarrollo Declarativo (paneles de propiedades)• Prototipado rápido e iterativo• Reune componentes reutilizables, NO genera Java!!• Integra completamente con el diseño ADF y el Run Time de ADF• Al igual que Designer Forms Generator genera aplicaciones Forms,
JHeadstart genera completamente aplicaciones ADF• Implementa las mejores prácticas de ADF• Incluye un path de migración desde Oracle Designer/Forms a ADF
JHeadstart Application Generator (JAG)
• Genera Páginas de ADF Faces (JSPX )• Genera ficheros de configuración XML de Faces• Genera ficheros XML de definición de páginas (data
bindings)• NO genera ningún código Java!• JAG se controla desde:
• Fichero de definición de aplicación basado en XML, creado y editado conun asistente GUI (JDeveloper add-in)
• Plantillas de generación de Velocity• La salida generada es 100% modificable
JSF JSPADF Faces
JSF
ADF Business
Components
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
JDeveloper ADF BC Wizard
JHeadstartApplication
Definition Wizard
Application Definition
ADF BCmetadata
ADF Business
Components
Proceso de Generación
JSF JSPADF Faces
JSF
ADF Business
Components
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
JDeveloper ADF BC Wizard
JHeadstartApplication
Definition Wizard
Application Definition
ADF BCmetadata
ADF Business
Components
JSF JSPADF Faces
JSF
ADF Business
Components
ADF Model
Data Bindings
Data Controls
View
Controller
Model
BusinessServices
JDeveloper ADF BC Wizard
JHeadstartApplication
Definition Wizard
GeneratorTemplates
Application Definition
JHeadstartApplication Generator
ADF BCmetadata
ADF Business
Components
JSF
JSF JSPADF Faces
ADF Model
Data Bindings
Data Controls
Proceso de Generación
Salidas generadas
• Páginas JSF usando ADF Faces• Jerarquía de componentes y binding
• Flujo de páginas• faces-config.xml
• ADF Data Binding• DataBinding Context & Definiciones de Páginas
• Ciclo de vida de la página ADF• Mejoras genéricas para funcionalidades runtime
• Texto traducible• En ficheros de recurso ó ficheros de propiedades
• No se genera java, sólo XML
Principales funcionalidades JHeadstartEstilos de salida • Form, Table, Table-Form, Select-Form, Tree, Tree-Form, Shuttle,
Wizard, (Stacked) Regions, Overflow styles (inline, right, below) • Cualquier combinación de estilos de salida para padre e hijo, en
la misma página o en páginas diferentes • Búsqueda Rápida, Búsqueda Avanzada (en la misma página o
en una página diferente, elección de operadores para query)• Ventana de lista de valores (LOV)
• Uso de LOV para validación• Multi-Select LOV
Principales funcionalidades JHeadstartComportamiento en Runtime• Inserción multifila, actualizaciones, Borrado multiselección• Ordenación y scrolling de datos• Notificación de cambios pendientes• Valores por defecto• Enlaces• Items con dependencias condicionales• Búsquedas por rango, búsquedas case-insensitive, alertas de
máximo número de resultados• Consultas dinámicas usando parámetros de bind para la
query• “Breadcrumbs”
Tipos de atributos de pantalla
• Text
• Checkbox
• Choice
• List
• Edit
• Hidden
• Read Only• Date• Date Time
• Image
• Download• Upload
¿Tan fácil como Oracle Forms?• No...pero está muy cerca• RAD para operaciones estándar• RAD para operaciones complejas
• Forms es algo más sencillo que Jdeveloper sin Jheadstart• Jdeveloper con Jheadstart está muy por delante de Forms
• Complejidad del desarrollo• Hay una curva de aprendizaje desde Forms• Con Jheadstart, la curva es mucho menor
• Facilidad de extensión• ADF Faces –3GL está siempre presente• Forms también usa java (PJCs)
• Interfaces gráficas interactivas• Forms se basa en un cliente pesado (applet)• El código de ADF Faces + Jheadstart es muy interactivo
Otras comparaciones
• Componentes preconstruidos en ADF Faces• Forms tiene 22• ADF Faces tiene más de 100 (algunos no visuales)
• Experiencia de desarrollo• Forms= Declarativo, visual con algún PL/SQL• ADF Faces = Declarativo y visual con algo de Java (y Expression
Language)• Jheadstart = Sólo declarativo
• Futuro• Forms – soporte hasta 2012• ADF Faces – Nueva tecnología• J2EE es el foco de Oracle• Jheadstart está creciendo rápidamente• Ayuda a los expertos en Forms
¿Dónde empezar?
• Competencias necesarias• Java está omnipresente
• Pero sólo a un nivel de scripting• Se necesitaría un arquitecto Java en el proyecto
• XML es muy útil• Basta con conocer “elementos” y “atributos”
• HTML no se usa realmente en ADF Faces• Ayuda saber lo que es una tabla HTML
• Método desarrollo ADF• ADF Business Components
Para más información
• http://oracle.com/technology/jdev• Software, Demos, Tutoriales, Foros
• http://oracle.com/technology/products/adf/learnadf.html• Tutorial completo ADF
• http://www.oracle.com/technology/products/jheadstart/index.html• Jheadstart: Demos, FAQs, próximos talleres
Cursos de Introduccion, Avanzados y Certificaciónes
Tel. 902 302 302
“El aprender es un tesoro que seguirá a su dueño por todas partes” - Proverbio Chino
¿Quieres aprender más?
Gracias por su asistencia a este seminario