lunes, 25 de agosto de 2008

JHeadStart: Generación de aplicaciones ADF con JDeveloper


Actualización en Noviembre de 2009. Si estás interesado en ADF te recomiendo estos enlaces sobre ADF 11g:
y en mi colección de enlaces públicos de ADF en delicious:
Entrada de Agosto 2008:
JHeadStart es una combinación de herramienta (generador de código) y librerías (runtime framework) que extienden JDeveloper y ADF, para desarrollar aplicaciones de un modo totalmente declarativo basado en metadatos, aplicando patrones de desarrollo ampliamente probados y sin necesidad de escribir código Java.
JHeadStart permite un nivel de entrada a JDeveloper y ADF muy asequible, especialmente para los equipos de desarrollo que vienen de 4GL (Forms, PowerBuilder, VisualBasic, Delphi, etc) o que no tienen experiencia previa en J2EE.

¿Usar o no usar JHeadStart? ¿Es esa la cuestión?
Para los desarrolladores JDeveloper con experiencia una pregunta habitual a la hora de empezar un proyecto con ADF es si usar JHeadStart o desarrollar directamente con ADF. A veces se enfoca esta cuestión del modo "blanco o negro": o bien usamos JHeadStart, o no lo hacemos. Sin embargo, al igual que en tantas ocasiones, la cuestión se puede abordar con varios tonos de grises también, y usar en diferentes proporciones los dos enfoques.

¿Qué aporta JHeadStart frente a desarrollar directamente con ADF y JDeveloper?
  • Plugin de JDeveloper para generación de XML y recursos ADF de una manera declarativa basada en metadatos (blocks, items, layout style, regions, prompt, default values, etc), incluyendo por ejemplo:
    • Páginas JSF basadas en ADF
    • Ficheros XML de definición de página (ADF PageDefinitions)
    • Menú de aplicación
    • Ficheros de propiedades (Resource Bundles)
    • Ficheros de configuración (faces-config.xml)
    • Objetos (Managed Beans)
  • Librerías de runtime (en la capa View-Controller), que incluyen las mejores prácticas de uso de ADF, y la implementación de los patrones de desarrollo ADF, creados a partir de casos de uso reales:
    • Internacionalización (i18n), ficheros o en base de datos con pantallas de mantenimiento en tiempo de ejecución
    • Secuencias de páginas (migas de pan). Ejemplo: paso 1 de 6
    • Contexto rico de navegación entre páginas (deep-linking)
    • Seguridad (Autenticación y Autorización), tanto para JAAS como para implementaciones a medida
    • Valores por defecto complejos
    • Búsqueda avanzada
    • Configuraciones flexibles de elementos en tiempo de ejecución
    • Subida y descarga de ficheros directamente de la Base de Datos
    • Facilidades para la creación de listas de valores, asistentes, árboles, etc
    • Tabla multi-registro con capacidades insert-update-delete
    • Soporte de JavaScript en cliente, por ejemplo para avisar al usuario de que va a abandonar una página sin haber guardado los cambios
¿Cúales son los riesgos de usar JHeadStart?
Derivado de un uso habitual, el riesgo principal sería que los desarrolladores lo intentarán usar en todas en las ocasiones, para todas las páginas, para todos los proyectos, y se confiara demasiado en la generación automática. La herramienta pasa a ser el martillo, y todo lo que vemos son clavos.
También una confianza ciega en el generador conduce a no tener conocimiento de la base tecnológica de ADF subyacente, y no atreverse a hacer modificaciones directamente en los casos en que se requieran, o no tener el criterio para decidir cuando hacerlo.

¿Cuáles son las ventajas de usar JHeadStart?
  • Alta productividad - desarrollo muy rápido de una gran parte de las aplicaciones basada en herramientas con diseño declarativo y metadata.
  • Infraestructura común ya desarrollada – habitualmente el esqueleto de la aplicación y los patrones a aplicar y módulos comunes, son cosa de arquitectos o desarrolladores experimentados, que los desarrollan en una fase inicial.
  • Aproximación estructurada basada en mejores prácticas – JHeadStart ha sido creado por consultores a partir de casos de uso reales, y contiene las mejores prácticas que han ido siendo incorporadas desde el año 2000.


Enlaces y más información:

Commit Consulting : OraFormsFaces and JHeadstart
Oracle JHeadstart 10g and OraFormsFaces have joined forces. Both the JHeadstart team and Commit Consulting concluded that the two products are very complementary. The upcoming version of both products (10.1.3.3) will make it possible to generate ADF Faces pages that embed Oracle Forms using OraFormsFaces straight from JHeadstart 10g.
BBR: Demo: Creación de una aplicación con JDeveloper y JHeadStart 10.1.3 paso a paso.
Aplicación de mantenimiento con Jdeveloper y JHeadStart 10.1.3.
La aplicación se construye sobre el ya típico modelo de datos HR:
1. Creación de área de Overflow inline (Tabla Employees).
2. Creación de un maestro detalle (Departments - Employees).
3. Creación de un arbol con ADF Faces (Regions - Countries - Locations)
Oracle JHeadstart Blog: ADF JHeadstart Workshop
Oracle University Netherlands Training Course about ADF and JHeadStart: ADF Business Components, Java Server Faces, ADF Faces and JHeadstart Training Course.
Click to download a 'application/pdf' Oracle JHeadstart Developers Guide 10.1.3.3 [PDF] : 322 pages: jhsdevguide1013.pdf (application/pdf Object)
JHeadstart docs: ORACLE JHEADSTART 10g for ADF (RELEASE 10.1.3.3) DEVELOPER’S GUIDE
Oracle.com : Steve Muench : What Is Oracle JHeadstart? (Oracle Magazine Article) : Nov 2006
Introduction article to JHeadstart published by Oracle Magazine (November 2006)
What Is Oracle JHeadstart?, Generating Your First Web Application, Running the Default Application, Customizing Preferences and Regenerating
Oracle.com : Oracle JHeadstart Product Center - index
Official Site. Oracle JHeadstart 10g for ADF dramatically improves developer's productivity for the Oracle Application Development Framework (ADF).
Business Information, Technical Information, Demos
Oracle University: Preparation ADF JHeadstart Workshop
This document suggests some self-study tutorials you can do to better prepare for the ADF JHeadstart Workshop,
Oracle Technology Network: JHeadstart Feature List
This document is divided into design-time features and benefits for the developer when building ADF applications, and runtime features you can add to your ADF web application without coding nor generating a single line of Java.
Edwin Biemond : blog : About Java, Adobe Flex, Oracle JDeveloper, JHeadstart and Oracle SOA suite
Architect at Ordina Oracle Solutions in the netherlands. I work for many years with jdeveloper , jheadstart and in the past with designer. I am an expert in adf, messaging ( edifact / ebxml) , web services and tuning
BBR blog: Todas las entradas del Blog de Bbr: JDeveloper, ADF, Forms, JHeadstart
Todas las entradas del Blog de Bbr: JDeveloper, ADF, Forms, JHeadstart
Pedro Gallardo, Alejandro Font, Carles Vila, Fernando Lopez, Valerie Kalusinski, Barbara Gelabert, Raul Morales, etc
Lonneke Dikmans : About JHeadStart: User experience can't be generated : February 2008
I think there are several reasons why you don’t want to use JHeadstart , both from an IT perspective and from a business perspective. Reaction to Lucas Jellema Post.
Lucas Jellema : AMIS Technology blog : Should we use JHeadstart for our ADF Project? It is NOT a black or white decision! : February 2008
Sometimes people approach this question as very "black or white": either we use JHeadstart, or we don’t. However, like on so many occasions, the question is one with several gray-shades as well
Oracle JHeadstart tutorial : Steve Muench : Building Enterprise JSF Applications with Oracle JHeadstart for ADF (10.1.3) : April 2007
A step-by-step, end-to-end tutorial on how to be effective immediately with J2EE application development using Oracle tools.
Author: Steve Muench, Oracle ADF Development Team. Contributions from Steven Davelaar & Sandra Muller, JHeadstart Team
Oracle JHeadstart Blog : Steven Davelaar, Sandra Muller
JHeadstart official blog. The JHeadstart Team is a group within Oracle Consulting in the Netherlands, that has developed a JDeveloper ADF productivity tool called JHeadstart. The core team members are: Ton van Kooten, Sandra Muller and Steven Davelaar as well as Evert-Jan de Bruin, Ruud Bijkerk and Paco van der Linden.
Click to download a 'application/pdf' BBR: Casos de Exito de ADF con JHeadStart: cuore_bbr.pdf (application/pdf Object)
Presentacion de BBR en CUORE 2007 sobre ADF y JHeadStart. Incluye los casos de exito de GenCat Salut (ESPA - IRC Web, GenCat Salut - SGVIA, COEC - OUTIS)

2 comentarios:

Pedro dijo...

Para todos aquellos que estéis interesados en JHeadStart aquí os dejo un link muy interesante con una demo de cómo construir una aplicación desde cero usando JHeadStart:

http://www.bbr.cat/index.php?option=com_myblog&show=Demo-Creacion-de-una-aplicacion-con-JDeveloper-y-JHeadStart-10.1.3-paso-a-paso..html&Itemid=53

Espero que os resulte interesante.

Pedro Gallardo Delgado

patrick dijo...

Great blog, keep up the good work. Glad to see sites like this.
software consultancy