Notes
Slide Show
Outline
1
Oracle JDeveloper 10g with
ADF Faces and JHeadstart:
 Is it Oracle Forms Yet?

  • Peter Koletzke
  • Technical Director &
    Principal Instructor
2
Agenda
  • JDeveloper and ADF
  • JSF and ADF Faces
  • JHeadstart
  • Is it Oracle Forms Yet?
3
What is JDeveloper?
  • Oracle’s Java IDE
    • 3GL code generator and organizer
    • Some 4GL aspects
  • Supports all development for J2EE
    • Different styles of deployment
    • E.g., Java application, applet, JSP, servlet, EJB
  • Easy development, debugging, deployment
  • Lots of wizards that create starting code
  • Data access framework: Business Components (BC4J and ADF BC)
  • Work in JDeveloper is oriented around
    ADF
4
Oracle Application Development Framework (ADF)
  • A meta-framework: a wrapper for other frameworks
    • JSF
    • Struts
    • ADF Business Components, etc.
  • Meets the challenges of J2EE development
    • Lots of technology choices
    • No tool to integrate them
    • Database connectivity is difficult (JDBC)
  • Available starting in JDeveloper 10g
  • Multiple development paths use same
    code layers
  • Based on Model-View-Controller
    J2EE design pattern
5
 
6
Development Experience
  • Primarily visual and declarative
7
Development Process
  • Create application workspace
  • Create Business Services and Model project
  • Create View and Controller project
  • Add Model objects using the BC diagram,
    wizards, and editors
  • Add View and Controller objects
    • Create navigation diagram then pages
    • AND/OR
    • Create pages then navigation diagram
  • Test and debug
8
Agenda
  • JDeveloper and ADF
  • JSF and ADF Faces
  • JHeadstart
  • Is it Oracle Forms Yet?
9
What is JSF?
  • JavaServer Faces technology
  • “New” technology (ratified JCP in 5/2004)
    • Part of the new Java Platform spec (Java EE 5)
    • Offers reference implementation
  • Effort to simplify JSP development
    • Component-ize it
      • High-level components provide much functionality
    • Integrate the controller
      • No Struts needed
    • Write less HTML
      • Component handles markup language
  • Can embed JSF in a JSP page
    • Reference Implementation only supports JSP
    • Outputs HTML to the browser
10
JSF Code Snippet
  • <af:panelButtonBar
  •     binding="#{backing_Deptapp.panelButtonBar1}">
  •   <af:commandButton
  •       actionListener="#{bindings.First.invoke}"
  •       action="First" text="First"
  •       disabled="#{!bindings.First.enabled}"
  •       binding="#{backing_Deptapp.commandButton1}"/>
  •   <af:commandButton
  •       actionListener="#{bindings.Previous.invoke}"
  •       action="Previous" text="Previous"
  •       disabled="#{!bindings.Previous.enabled}"
  •       binding="#{backing_Deptapp.commandButton2}"/>
  • </af:panelButtonBar>
11
ADF Faces
  • Oracle tag libraries
    • Released to MyFaces open source project in Jan. 2006
      • Trinidad project at myfaces.apache.org
    • Available in JDeveloper 10.1.3
    • Over 100 components
  • Implements most components available in UIX
    • UIX is used by Oracle E-Business Suite apps
  • Uses JSF mechanisms
    • Adds even more functionality to JSF
    • Lots of additional features
  • Important: Oracle is using ADF
    Faces to build Fusion applications
12
ADF Faces Features
  • Supports multiple platforms through “render kits”
    • Theoretically, so does native JSF
    • JSP document or page (for HTML clients)
    • Telnet
    • Wireless
  • Changeable “skins”
    • Look-and-feel characteristics
      • oracle, minimal, simple, your own
    • Can be changed with one config property
  • Solid development support in JDeveloper
  • Dynamic images
    • Tab and button images are
      generated at runtime
      • Text on image is based on
        properties
      • No maintenance of image files
13
Featured Feature: PPR
  • Partial page rendering (PPR)
  • Only part of page is submitted
    • For example, only table values are refreshed
    • This makes the user experience smoother
    • Available on several components
    • JavaScript effects without
      JavaScript coding
  • AJAX-like
    • Asynchronous JavaScript and XML
    • Industry-standard method
    • Very hot currently
14
Some ADF Core Components
15
Still More ADF Faces Core Components
16
Agenda
  • JDeveloper and ADF
  • JSF and ADF Faces
  • JHeadstart
  • Is it Oracle Forms Yet?
17
JHeadstart
  • Oracle product
    • Developed by Oracle Consulting’s Center of Excellence in the Netherlands
    • Google “JHeadstart Product Center”
      • Limited trial version available for download
  • Add-in for JDeveloper
    • In sync with version 10.1.3.2
  • Contains JHeadstart Application Generator
    • Generates ADF Faces and JSF code from definitions in the application definition file
    • Fully template-driven
    • Modify the generated code using
      standard JDeveloper techniques
  • Contains JHeadstart Designer
    Generator – migrate Designer definitions
18
Sample Generated Page
19
Sample Generated Page (snippet)
20
Sample Generated Page
21
Agenda
  • JDeveloper and ADF
  • JSF and ADF Faces
  • JHeadstart
  • Is it Oracle Forms Yet?
22
Short Answer
23
It’s a Close Second
  • RAD for standard operations
    • A tie
  • RAD for complex functions
    • Forms slightly ahead of JDeveloper without JHeadstart
    • JDeveloper with JHeadstart is way ahead of Forms
  • Development complexity
    • Forms developers face a learning curve with JDeveloper
    • With JHeadstart the learning curve is much less
  • Ease of extensions
    • ADF Faces - 3GL is always present
    • Forms needs Java (PJCs)
  • Highly interactive UI – Forms
    • Apples and oranges (light client vs. heavy client)
    • ADF Faces and JHeadstart generated code is very interactive
24
Other Comparisons
  • Prebuilt components – ADF Faces
    • Forms has 22 (8 of which are drawing shapes)
    • ADF Faces has over 100 (some are not visual)
  • Development experience
    • Forms = declarative and visual with some PL/SQL
    • ADF Faces = declarative and visual with some Java (and Expression Language)
    • JHeadstart = declarative only
  • Future
    • Forms’ future is solid – support to 2012
      • Functionally stable, no new features
      • Still part of Oracle Applications (E-Business Suite)
    • ADF Faces – very new technology
      • Nothing in J2EE lasts very long
      • J2EE is Oracle’s focus
    • JHeadstart
      • Has rapidly growing following
      • Makes sense for Forms developers
25
It is a Suggested Path
  • JDeveloper is a J2EE tool
    • Supports any style of J2EE code
    • Less need to think about “plumbing”
  • Before ADF Faces, little guidance for suggested path
    • “Productivity with
      Choice”
      • The myth for Forms
        developers
    • How to choose?
26
What Do You Need to Start?
  • Language skills needed
    • Java is omnipresent
      • But only at a scripting level
      • Still need a Java architect on the project
    • XML is a handy skill
      • If you know “elements” and “attributes,”
        that’s enough
    • HTML is not really used in ADF Faces
      • Helps to know what an HTML table is
  • ADF development method
    • ADF Business Components
27
Can ADF Faces Help You?
  • It can help shops that have J2EE experts
    • J2EE experts will be more productive
    • They need to learn the ADF process
  • It can also help shops who have “traditional” non-J2EE Oracle developers
    • Forms  and PL/SQL developers can be
      productive with the declarative tools
      • With training, they can write Java extensions
      • Much of the complexity is hidden
    • They need a J2EE expert to guide them
      and code the internal, complex stuff
28
Summary
  • ADF is a framework in JDeveloper that helps development productivity
  • You can create J2EE web applications with JSF and ADF Faces
  • JHeadstart provides lots of prebuilt, working code you can use as a starting point
  • JDeveloper development is close to Forms development
    • Rivals Forms’ productivity
    • Extremely rich component set
    • Support for declarative and visual programming
    • Requires a bit of ramp up time
    • It’s J2EE-compliant and you still
      need a J2EE architect
29