Today's IT management and developers are continually looking to increase
developer productivity and reduce application development complexity.
Simplifying infrastructure and reducing costs by adopting standards while
supporting all development needs are also important to IT organizations. Throughout most companies, IT management and developers are
looking for easy and fast ways to gain access to existing legacy systems,
infrastructure and resources.
Unlike other currently available developer products, Oracle JDeveloper 10g
(10.1.3) Developer Preview offers a development environment designed to address
all these needs. Oracle JDeveloper 10g enables developers throughout an
organization to easily develop applications based on reliable, widely deployed
Java technology standards, such as the Java 2 Platform, Enterprise Edition (J2EE
platform). Combined with the Oracle Technology Network, it gives you a complete
solution for developing enterprise J2EE applications.
JavaServer Faces Technology
JavaServer Faces (JSF) is a standard J2EE component-based view
framework defined by the
Java
Specification Request (JSR) 127. Some component-based framework implementations, including Tiles and
Oracle's Application Development Framework (ADF) UIX, are currently more mature,
but JSF has gained popularity quickly and extensive tool support for JSF is on
the way. The JSF technology provides robust support for
drag-and-drop visual user interface design and simplified coding.
As one of the active members of the JSF
expert group, Oracle has committed itself to evolve and support JSF, as evidenced by this preview release of Oracle JDeveloper 10g (10.1.3)
with built-in support for JSF and an early-access release of Oracle ADF Faces
Components.
Oracle JDeveloper and JSF
Oracle JDeveloper 10g provides the benefits of visual editing for JSF
applications without sacrificing any source-level development control at all. In
combination with Oracle's extensive JSF component library -
Oracle ADF Faces, Oracle JDeveloper offers unmatched enterprise level
functionality, providing developers all they need out of the box. Oracle JDeveloper 10g allows developers to create new
projects from scratch, but it also includes a flexible import facility allowing
developers to easily import existing JSF applications into JDeveloper.
Figure 1: Visually building JSF applications
Development of JSF Applications
Oracle JDeveloper 10g offers comprehensive and productive development support
for both J2EE 1.3 and 1.4 applications, with deployment support to any J2EE
compliant application server. In fact, the Oracle Containers for J2EE (OC4J) is
embedded in Oracle JDeveloper 10g as part of the
complete development and deployment experience. Oracle JDeveloper has been rated
the best in class SOA and J2EE development environment allowing developers to
build JSF applications with the best Java data access tool - Toplink - that
offers superior persistence, EJBs, regular JavaBeans, or Web Services.
Drag-and-Drop of JSF User Interfaces Components
The Oracle JDeveloper 10g visual development environment provides a simple
drag-and-drop layout environment for user interface components, faces navigation and
configuration elements. This enables developers to rapidly
prototype user interfaces, interact with users to get feedback on
features, and then iteratively refine without constraints.
The underlying technology - JavaServer Faces - provides a consistent visual
design experience, a set of standard components (e.g., buttons, text fields,
data grids, dropdown lists, image components, and so on), and an event-based
coding model similar to what is currently offered in 4GL environments such as
Visual Basic and Oracle Forms. This coding model helps developers focus on
business logic, but not the low level plumbing.
The Oracle JDeveloper 10g visual page editor supports regular HTML, XHTML, JSP 2.0,
and JSF for maximum flexibility. The embedded J2EE container lets you run
your designed page inside your default Web browser
with the same functionality as would your production application. In addition to
rendering of the components provided by the JSF Reference Implementation (RI),
one of the key differentiators for Oracle JDeveloper 10g's visual JSF editor is
the live rendering of custom components such as ADF Faces, MyFaces or other
third party JSF components.
Figure 2: Visual support for JSF custom components
JSF Page Flow Diagram and Overview Editor
Thanks to the Oracle JDeveloper 10g navigation design tool, it is easy to
visually lay out multiple pages by simply dragging and dropping existing pages
from the Application Navigator or by creating new pages from Component palette.
You can also drag and drop connections
between pages, and change the desired outcome directly in the diagram or in
the Property Inspector. There is also an Overview Editor for JSF configuration files,
which allows for friendly
manipulation of all components of the faces-config.xml file.
Figure 3: JSF page flow diagram and configuration overview
JSF-aware Expression Language (EL) Editor
Expression Language is used
throughout JSF as the glue between the actual component and its underlying
source, whether it is an action or a data source. This feature dramatically
simplifies the binding of JSF components to an underlying data model.
Figure 4: EL binding editor
Support for Different Development Styles
In the Oracle JDeveloper 10g development environment, you can easily switch
from visual design and manipulating resources in the Property Inspector and
Structure Windows, to direct editing in the source code. All views of editing an
application are synchronized between the view and the application's source code
for consistent, flexible development.
Figure 5: Support for different development styles
Conclusion and Future Direction
JavaServer Faces is defined in the Java Community Process JSR-127. As one of
the leading members of the JSF expert group, Oracle has devoted time and
resources to developing JSF. So there is no surprise that Oracle has set aside
resources to provide excellent support for developers building applications with
JSF and Oracle JDeveloper. Moving forward the JDeveloper design time will extend
to incorporate the Oracle Application Development Framework (ADF), which will
further increase productivity. With Oracle ADF developers will be able to easily
bind to any data model such as TopLInk, EJBs, JavaBeans and so on, and to
increase productivity in building applications for different devices (e.g.,
browsers, telnet, PDAs, mobile) without changing the way or the components they
develop with.
Key JSF Features of Oracle JDeveloper 10g
JDeveloper now has full design-time support for JavaServer Faces (JSF),
including the reference implementation of JSF (1.1_01) which is bundled with
JDeveloper. An extensive collection of JSF components (ADF Faces) is available
as an Early Adopter release from the Oracle JDeveloper Update Center and from
OTN (http://www.oracle.com/technology/products/jdev/htdocs/partners/addins/exchange/jsf/index.html).
Visual editor provides an intuitive JSF WYSIWYG experience and supports
HTML and JSP 2.0.
Drag and drop support from Component Palette to Visual Editor, Source
Editor, and Structure Window.
Overview editor for JSF configuration files allows for friendly
manipulation of all components of the faces-config.xml file.
JSF page flow diagram provides visual rapid development of JSF navigation.
Built-in JSP code editor with syntax highlighting, code insight, and
much more.
Easy-to-use wizard for importing existing JSF projects.
Advanced structure outlining of JSF pages enables direct editing in the
Structure Window with visual editor synchronization.
Advanced Component Palette with the ability to easily add new tag library sets
and edit existing ones.
A JSF-aware Expression Language (EL) editor dramatically simplifies
binding the JSF components to a data source.
Rendering of JSF facet components in visual editor including look-up for
facets supported by the parent component.
Live rendering of JSF components in the visual editor, allowing for
visual editing of ADF Faces components and other custom third party
components.
Automatic backing bean generation. This feature can be toggled on or off
to allow the experienced developer the choice of manually binding their
components or allowing JDeveloper to generate the necessary backing code for
the components.