Está en la página 1de 24

Web Application Development

Using
ADF Faces
Agenda

 Application Development Framework


(ADF) introduction
 Java Server Faces (JSF) introduction
 Short on ADF Faces
 Using JSF/ADF Faces in a development
case
 Q/A
Challenges Faced when
Building J2EE Applications
 Building J2EE applications can be complex.
 Development time can be extensive.
 Choosing and implementing appropriate design
patterns can be overwhelming.
 “Do it yourself” applications often repeat existing
application code.
 A large portion of “do it yourself” code is dedicated to
common tasks.
 The more code you write, the greater the chance of
errors.
 An application framework is needed.
Oracle Application
Development Framework
 Reduces the complexity of J2EE development by
providing visual and declarative development
 Increases development productivity
– Less coding, more reuse
– Focus on the application, not the “plumbing”
 Provides a flexible and extensible environment by
allowing multiple technology choices and development
styles
 Encourages J2EE best practices by implementing
standard J2EE design patterns
Oracle ADF
End-to-end J2EE Framework
 Implements standard J2EE best practices
 Model-View-Controller (MVC) design pattern

Rich Clients Web and Wireless Clients

Controller

Model

Business Services

 Focus on the application, not the “plumbing”


 Consolidation and evolution of previous frameworks
Oracle ADF
Visual and Declarative Development

 End-to-end Application Development


– J2EE & Services
 Visual
– WYSIWYG editors
– UML modelers
– Structure pane
 Declarative
– Structure pane
– Property inspector
 Code View/Design View Synchronization
– No separate generation step - always synchronized
– Underlying code always accessible
J2EE Architecture (Simplified)

Enterprise
JavaBeans

ADF Business
Components

Web Services

Java Objects

Clients Business Services Database


No Standard API for Client Binding

Enterprise
JavaBeans

ADF Business
Components
? JDBC
Web Services

Java Objects

Clients Business Services Database


ADF Model

 Data Controls
 Data Binding
 JSR-227: “A Standard Data Binding & Data
Access Facility for J2EE” Business
Component
Web
Service

TopLink
Model
EJB

Java
Class
ADF Model Architecture

 Data control: describes the values and actions


defined by the business service
 Bindings: define how UI
components use the Client
values and actions in
the data model Bindings

Data Control

Business Service
ADF Model Architecture

 Decouples client and business service layers


 Client code contains no references to the
business service
– Better design practice
– Code is more maintainable
 Architecture can be extended to add more
types of business services
Drag-and-Drop Binding

Data Control Palette


– Expose any business service
– Available to any client
ADF – Productivity With Choice
Rich Client Web / Wireless
JSF/ADF
Swing / JClient JSP ADF UIX
FACES
View

Struts/JSF Controller

ADF Bindings
Model
ADF Data Control
ADF Metadata Services

Java EJB ADF Business Web Business


Session
Classes
Beans
Components
Service Object
Services Services

ADF Business
TopLink EJB Components Data
JDBC Finders
Queries Query Object Access

ADF Business Persistent


Java Classes EJB Entity Beans Business
Components
Entity Object Objects
TopLink Mapping
JavaServer Faces (JSF)
Overview

 Developed through Java Community


Process as JSR 127
 Nickname : Faces

 Goal: Simplify creation of Java Server GUIs

 Started: May 2001


 First relase: March 2004
 Oracle is a primary contributor
JavaServer Faces (JSF)
Overview - Why JSF?

 So what’s all the fuss about?


 What makes JSF so compelling?
 Why are IBM, Sun and Oracle devoting
serious resources to JSF?
 Why another framework?
JavaServer Faces (JSF)
Overview - Here is why!

JSF brings backing of a standard


specification – JSR 127
Java Server Faces (JSF)
Overview

 JSF is a natural evolution of J2EE Web


development

JSTL Again, too low level…


Custom Tag Libraries Finally, a comprehensive,
Not standard…
standard API for J2EE
JavaServer
Java ServerFaces
Faces
JavaServer Pages Web
Easierapplications!
but…scriptlets

Servlet API Too low level…


JSF Architecture

HTML
render kit

Front Controller
Backend
Code
WML
WML
renderkit
render kit
JSF Architecture Renderer

UI Component Expr. Language

 UIComponent is rendered
through Renderer class JSF Page
Managed bean
 Expression Language Value
Binding is used to access
managed bean also know as a
"backing bean" J2EE Persistence Layer / JDBC
 Managed bean accesses
J2EE persistence layer

RDBMS
JavaServer Faces (JSF)
Oracle ADF Faces
 Built on top of JSF APIs
 A large component set >100 different components
 Far more advanced and interesting components
– Partial-page rendering, etc.
 ADF model support out-of-the-box
 ADF Faces skins (Look and Feel)
 ADF Databinding (JSR 227)
 Open Source per January 2006
– http://www.oracle.com/technology/products/jdev/ht
docs/faq_adffaces_apache.html
JavaServer Faces (JSF)
Oracle ADF Faces
JavaServer Faces (JSF)
Oracle ADF Faces

 ADF Faces also includes many of the framework


features most needed by JSF developers today:
– File upload support is integrated at a component
level
– Client-side validation is automatically derived from
Validators and Converters for an improved user
experience
– A pageFlow scope makes it easier to pass values
from one page to another
– A new hybrid state saving strategy gives developers
the best of both client and server-side state saving
JSF Architecture Renderer

with ADF UI Component Expr. Language

 EL accesses “bindings” object


to value bind UI components JSF Page
ADF “bindings” Object
 ADF “bindings” object is set
through ADF Filter in web.xml ADF Binding
 Bindings object accesses ADF
ADF DataControl
Binding container, which then
accesses DataControl
 Business Services provide Business Business Business
access to various data sources Service 1 Service 2 Service 3

XML
RDBMS URL
WS
Question & Answers

También podría gustarte