karsten schulz senior principal consultant oracle denmark
DESCRIPTION
Web Application Development Using ADF Faces. Karsten Schulz Senior Principal Consultant Oracle Denmark. Agenda. Application Developer Framework (ADF) introduction Java Server Faces (JSF) introduction Short on ADF Faces Using JSF/ADF Faces in a development case Q/A. - PowerPoint PPT PresentationTRANSCRIPT
Karsten SchulzSenior Principal ConsultantOracle Denmark
Web Application Development Using
ADF Faces
Agenda
Application Developer 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 ADFEnd-to-end J2EE Framework
Implements standard J2EE best practices Model-View-Controller (MVC) design pattern
Focus on the application, not the “plumbing” Consolidation and evolution of previous frameworks
Business ServicesBusiness Services
Web and Wireless ClientsWeb and Wireless ClientsRich ClientsRich Clients
ModelModel
ControllerController
Oracle ADFVisual 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)
EnterpriseJavaBeans
ADF Business Components
Web Services
Business ServicesClients
Java Objects
Database
No Standard API for Client Binding
EnterpriseJavaBeans
ADF Business Components
Web Services
Business ServicesClients
Java Objects
Database
JDBC?
ADF Model
Data Controls Data Binding JSR-227: “A Standard Data Binding & Data
Access Facility for J2EE”Web
Service
TopLink
EJB
JavaClass
BusinessComponent
ModelModel
ADF Model Architecture
Data control: describes the values and actions defined by the business service
ClientClient
BindingsBindings
Data ControlData Control
Business ServiceBusiness Service
Bindings: define how UI components use the values and actions in the data model
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 ChoiceADF UIX
ADF Bindings
ADF Data Control
ADF Business Components
Service Object
ADF Business ComponentsQuery Object
ADF Business ComponentsEntity Object
Swing / JClientA
DF
Me
tad
ata
Se
rvic
es
View
Controller
Model
BusinessServices
Swing / JClient JSP ADF UIXJSF/ADF FACES
Rich Client Web / Wireless
Struts/JSF
ADF Bindings
ADF Data Control
JavaClasses
EJBSessionBeans
WebServices
ADF Business Components
Service Object
JDBCEJB
FindersTopLinkQueries
ADF Business ComponentsQuery Object
DataAccess
ADF Business ComponentsEntity Object
Java Classes EJB Entity Beans
TopLink Mapping
PersistentBusinessObjects
AD
F M
eta
da
ta S
erv
ice
s
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
JavaServer Faces (JSF)Overview
JSF is a natural evolution of J2EE Web development
Servlet API
JavaServer Pages
Custom Tag Libraries
JSTL
Too low level…
Easier but…scriptlets
Not standard…
Again, too low level…
JavaServer Faces
Finally, a comprehensive, standard API for J2EE Web applications!
JavaServer Faces
JSF Architecture
HTMLrender kit
Fro
nt C
on
troller
Fro
nt C
on
troller
WMLrender kit
WMLrender kit
BackendBackendCodeCode
JSF Architecture
UIComponent is rendered through Renderer class
Expression Language Value Binding is used to access managed bean also know as a "backing bean"
Managed bean accesses J2EE persistence layer
Renderer
UI Component Expr. Language
Managed beanJSF Page
RDBMS
J2EE Persistence Layer / JDBC
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/htdocs/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 with ADF
EL accesses “bindings” object to value bind UI components
ADF “bindings” object is set through ADF Filter in web.xml
Bindings object accesses ADF Binding container, which then accesses DataControl
Business Services provide access to various data sources
ADF “bindings” Object
ADF Binding
Renderer
UI Component Expr. Language
JSF Page
RDBMS
ADF DataControl
BusinessService 1
BusinessService 2
BusinessService 3
XMLURL
WS
JavaServer Faces (JSF)Oracle ADF Faces – Extend the JSF life cycle
Happens througha registered phase-listener