SlideShare una empresa de Scribd logo
1 de 70
Descargar para leer sin conexión
1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle ADF Programming
Best Practices for Beginners
Frank Nimphius
Senior Principal Product Manager
Application Development Tools
Program Agenda
 Simplify Your Development Choice

 ADF Business Components
 ADF Task Flow
 ADF Binding
 ADF Faces
 JavaScript
 Break Out Of Isolation

3

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Simplify Your Development
Choice

4

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Simplify Your Technology Choice
Choose a Development Approach

Database Oriented

Java EE Oriented

SOA Oriented

• EJB / JPA

• Services

 ADF Binding

• ADF Binding

• ADF Binding

 ADF Task Flow

• ADF Task Flow

• ADF Task Flow

 ADF Faces

• ADF Faces

• ADF Faces

 Data Visualization

• Data Visualization

• Data Visualization

 RDBMS
 ADF BC

5

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Simplify Your Technology Choice
Common Technologies

Database Oriented

Java EE Oriented

SOA Oriented

• EJB / JPA

• Services

 ADF Binding

• ADF Binding

• ADF Binding

 ADF Task Flow

• ADF Task Flow

• ADF Task Flow

 ADF Faces

• ADF Faces

• ADF Faces

 Data Visualization

• Data Visualization

• Data Visualization

 RDBMS
 ADF BC

6

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Business Components

7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Business Components
Application
Module
Data Model

View
Object
XML
Definition
References

View Object
Base Class
XML
Definition
References

AM
Base Class

8

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

1

*

Entity
Object
XML
Definition
References

Entity Object
Base Class
ADF Business Components
Architecture Best Practices

9

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use ADF Business Components Preferences

10

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use ADF Business Components Preferences

EntityImpl

YourOrgEntityImpl

YourAppEntityImpl

11

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use ADF Business Components Preferences

12

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use ADF Business Components Preferences

13

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Architecture Square
http://bit.ly/adfarchsquare
 Development
– Oracle ADF Development

Essentials
– ADF Code Guidelines (v1.00)
– ADF Naming and Project Layout

Guidelines (v2.00)

14

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Business Components
Implementation Best Practices

15

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
General Considerations
Custom Framework Extension Classes

 Always create and use custom base-classes for at least
– ApplicationModuleImpl
– EntiyImpl

– ViewRowImpl
– ViewObjectImpl

 Note that creating custom super classes for <object>Def classes are

less common

16

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Entity & View Object
When to generate Java Impl files

 Generate Java Impl files when entity objects are accessed from Java

or Groovy
 Ensure code that accesses entity objects directly uses type safe APIs
instead of the generic framework APIs
 Do not generate Impl classes without a need
– Keep code base size reasonable.

– Impl classes for the *def classes are rarely needed

17

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
View Criteria
Prefer One View Object with Many View Criteria

 Not necessary to create separate VO that only differ by their WHERE

clause
 Apply view criteria declaratively when defining view accessor and AM
data model instances
– Use bind variables with View Criteria
– Be aware that "Ignore Null Values" options is of bad performance

 Avoid direct user input in ADF BC queries to protect against SQL

injection attacks
18

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Performance Tuning And Optimization
Developers always strive for "better"
 Premature optimizations as the root of all evil
– Measure Performance, don't guess it.
– If performance measures as bad, look for optimizations

 Make the general assumption that ADF will probably get it right
– Consider the greater cost of do-it-yourself (DIY)

 Think AM Pools!
– Good rule of thumb: One AM instance serves 10 - 15 users comfortably
– Size for peak load based on this.

19

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Read. Understand. Tune.
 http://docs.oracle.com/middleware/1212/adf/

adf-monitortune.htm

20

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Task Flow

21

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Bounded Task Flow
Flows, Sub-Flows, Regions
Bounded Task Flow
Input Parameter
Input Parameter
Input Parameter

Return Value
Return Value

22

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Managed
Beans
ADF Task Flow
Architecture Best Practices

23

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Task Flow Oriented Architecture (TOA)
 Think task flow from design time on
– Inventory existing task flows
– Identify patterns and standardize on them

 Ensure objectives and requirements reflect task flow benefits
– Reuse, loose-coupling

 Think "unit-of-work" and factor task flow functionality into subflows
– Share Data Control frame with sub-flows

– Hide sub-flows from showing in ADF library

24

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use Task Flow as a "Common Language"

 Use task flow diagrammer as "common language"
– Use task flow templates as blue prints
– Use verbs and meaningful names in control flow case names

 editOrder, createOrder,

manageEmployee

 Use the display and description properties of the contained

activities to explain the non-obvious

25

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Task Flow Design
Task Flow Sizing Considerations
 Build Composite Task Flows
– Larger task flows built out of several smaller task flows
– Only top level task flow exposed for reuse
– Encapsulates task flow dependencies

 Good for distributing work among developers
 Dependency management "by agreement" in smaller teams
 Smaller memory foot print through load-on-demand and task flow

private memory scopes

26

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Task Flow
Implementation Best Practices

27

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Handling Input / Return Parameter Values

 Save task flow input / return parameter values

in managed beans in pageFlowScope
– Easy to document
– Type safe API
– EL accessible
– Easy to discover and manipulate

input parameter values
– NPE protection

28

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Managed Beans

 Java classes configured in faces-config.xml, adfc-config.xml

or <task-flow-name>.xml
 Managed by JSF or ADF Controller
– Java EE scopes
 request, session, application

– Additional ADF scopes
 backingBean, view, pageFlow

 Hold code for UI related logic and data

29

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Bounded Task Flow & Managed Beans
Best Practice
 Always use the smallest possible scope for managed beans
– Helps Framework to "clean up" memory footprints
– Think "state"
 Does the managed bean need to keep state?
 If so, how long?

 Don't reference managed beans in session or application scope
– Violates task flow isolation and reuse

30

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Data Control Scope
 Use shared data control scope as often as possible
– Less database connections

– Simplifies task flow inter-communication
– Automatic parent view collection to child task flow detail

collection synchronization

31

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Task Flow Exception Handler
 Define an exception handler activity in every bounded task flow

 Leverage Task Flow Templates
– Use as Blueprint or Reference
– Define exception handlers for

all bounded task flows

32

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
What Could Happen
Task Flow Exception Propagation
Memory Stack

!

Task Flow 1 View1

EH

Task Flow 2
Call
Task Flow 2 View2

Current Task Flow

!

Task Flow 4

EH

Task Flow 3
Call

Task Flow 3
Task Flow 3 View3

Task Flow 2
Task Flow 4
Call

Current Task Flow
Task Flow 4 View4

Method
Call

BANG!

33

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Task Flow 1
What Could Happen
Task Flow Exception Propagation
Memory Stack

!

Task Flow 1 View1

EH

Task Flow 2
Call
Task Flow 2 View2

!
EH

Task Flow 3
Call

Propagate
Exception

Task Flow 3 View3

Task Flow 4
Call

Task Flow 2

Current Task Flow
Task Flow 4 View4

Method
Call

BANG!

34

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Current Task Flow

Propagate
Exception

Task Flow 1
What Could Happen
Task Flow Exception Propagation
Memory Stack

!

Task Flow 1 View1

EH

Task Flow 2
Call
Task Flow 2 View2

!
EH
Current Task Flow

Task Flow 2

Task Flow 1

35

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Visual Example
Task Flow Exception Propagation
!

BANG!
36

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Best Practices at a Glance
Wildcard Navigation
 Avoid cluttering diagrams for common navigation rules
 Use wild card navigation for common functionality
– Cancel
– Commit

37

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Binding

38

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Understanding ADF Bindings
How Oracle ADF binds into JSF
Business Service
Web Service

ADF Data Binding
Data
Control

POJO

Data
Binding

JSF Page
JUCtrl Generic
Binding

Expression Language

ADF BC
EJB

ADF Faces Component
Tag (<af:name../>)

FacesCtrl
Binding

Server Side JSF Component
JMX
TopLink

BAM

39

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Component
Component Model
UI Renderer
Programming Against the Binding Layer
 Expression Language
– Current binding layer can be accessed from #{bindings} or ${bindings}
 Use from JSF components
– Populate UI component value #{bindings.firstName.inputValue}
 Use from PageDef file
– E.g. access field binding value - ${bindings.firstName.inputValue}

 Java
– ADF binding layer is represented by Java objects at runtime
– BindingContext.getCurrent()is the generic entry point

40

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use Public APIs Only

 ADF classes have an API package and an IMPL package
– Define logical framework abstractions
– Simplifies implementation of future product changes

 APIs in IMPL package are internal-only
– Not to be used outside of framework
– Internal packages have "internal" in the naming (It’s a clue!)

 If you are not sure …
– Use EL in Java: #{bindings.allDepartments.treeModel.makeCurrent}

41

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Understanding ADF Programming
Example: Accessing the Binding Layer

import oracle.adf.model.BindingContext;
import oracle.binding.BindingContainer;
…
BindingContext bctx = BindingContext.getCurrent();
BindingContainer bindings = null;
bindings = bctx.getCurrentBindingsEntry();

42

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Understanding ADF Programming
Example: Accessing Attribute Binding

AttributeBinding attributeBinding = null;
attributeBinding =
(attributeBinding)bindings.get("AttributeName");
/* set / get value */
attributeBinding.setInputValue(value);
attributeBinding.getInputValue();

43

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Understanding ADF Programming
Example: Method and Action Bindings
//get method or action binding
OperationBinding methodBinding =
(OperationBinding)bindings.get("methodOrActionName");
//optional: if method expects arguments
Map paramsMap = methodBinding.getParamsMap();
paramsMap.put("argumentName1",value);
Object result = methodBinding.execute();
//check for errors, e.g. exceptions
List errors = method.getErrors();
If(!errors.isEmpty()){ …}

44

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Accessing Business Service Methods
Best Practice
 Encapsulate all model manipulation code in custom AM and/or VO

methods & invoke them declaratively
– Makes your app easier to regression test

 Only code that belongs in a JSF managed bean is…
– Complex, dynamic UI component manipulation
– Complex conditional navigation

 Even if you require backing bean code, invoke custom AM or VO

methods using action binding
– Guarantees uniform error handling

45

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Always Work Through the Binding Layer
Best Practice – Accessing Business Service Methods
View Layer

Business Layer

Business Service

Application
Module

Managed
Bean

Data Model

PageDef
attribute
binding
Text

method
binding

AM Impl
public void invokePlSQL()

Button
AM Client Interface
public void invokePlSQL()

46

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Model Error Handler

 The ADF model error handler deals with
– All ADF binding errors
– Business service errors that occur when accessing a service trough the

ADF binding layer
 Formats and displays error message
 Default error handler skips the top-level JboException because it

only is a bundled exception wrapper for other business exceptions

47

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Build A Custom ADF Model Error Handler
Best Practice
 Extend oracle.adf.model.binding.DCErrorHandlerImpl and configure your custom

error error handler in DataBindings.cpx
 Override the following methods as needed
– reportException
 Override this method to analyze exceptions for errors you want to handle
– getDisplayMessage
 Override to change or suppress (null value) the displayed message
– getDetailedDisplayMessage
 Override this method to provide HTML markup formatted detail information

– skipException(Exception ex)
 Called by the framework to check if an exception should be ignored

48

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Configuring A Custom Error Handler

49

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Faces

50

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Faces Rich Client Components
Based on Java Server Faces Standard
 Ajax & HTML5 enabled JSF

components
 Pluggable look and feel
 Accessibility & internationalization
 Touch gesture support
 Built-in advanced functionality:
– Partial Page Refresh (PPR),

Partial Submit
– Drag and drop framework
– Dialog and pop-up framework

51

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Backing Bean
 "Special use" of a managed bean
– Contain UI Component references
 <af:inputText label="…" binding="#{BackingBeanName.lastNameField}"/>
– Must be defined in request scope
 JSF components are not serializable (!)

 Best Practices
– Avoid backing beans and perform dynamic component lookup using
 FacesContext.getCurrentInstance().getViewRoot().findComponent(…)
 Relative search: component.findComponent()

 org.apache.myfaces.trinidad.util.ComponentUtils.findRelativeComponent(…, …)

52

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
When Using Backing Beans …

 Use separate beans for separate views
– Avoids "pinning" of UI components and their state
– If views are exactly identical, consider reuse

53

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Avoid Expression Language Gotcha
Manage Bean Scope – Prefix or don't Prefix?
 EL accessing managed beans in Java EE scopes
– Request, session, application
– No scope prefix
– #{beanName}

 EL accessing managed beans in ADF scopes
– backingBean, view, pageFlow
– Require scope prefix
– #{scope.beanName}, #{backingBeanScope.beanName}

54

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Put use of HTML on a "By Exception" List
Avoid Mixing HTML and JSF components
 HTML and JavaServer Faces are different technologies
– Markup oriented vs. component oriented
– Compile – Render, vs. multi stop request lifecycle

 Facelets in JSF 2.x support mixing of HTML and JavaServer Faces

components
– Prior to Facelets and JSF 2.x, mixing HTML and JSF is a no-go
– Still with JSF 2.0 problems may occur because ADF Faces components come with

their own sizing behavior (geometry management)
 Recommendation: Build pages and views with ADF Faces components

55

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Avoid ui:include and jsp:include Tags
 ADF PageDef file is not aware of ui:include or jsp:include references

in a page or view
– Included fragments fail at runtime if they use ADF bound components
– You can copy ADF bindings used by the included content into the view's

PageDef file.
 Prevents reuse of the fragments

 Recommendation
– Use ui:include and jps:include for layouts only (if at all)
– Use ADF regions to add ADF bound content to a page at runtime

56

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use inlineStyle and contentStyle By Exception
Learn to Love Skinning
 inlineStyle property allows developers to add CSS to a component

rendering
– CSS is applied to top-level DOM component
– CSS is directly added to the page output
– Best Practice: Use ADF Faces skinning and reduce the use of CSS to the

absolute minimum (e.g. conditional color coding)
 contentStyle property allows developers to add CSS to the value content

area of an ADF Faces component
– Styles component content area better than inlineStyle but has same issue as

mentioned above

57

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
JavaScript

58

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
ADF Faces Client JavaScript Architecture
DOM
Form

Client Side

Server Side
Servlet

Label1
Label2
Label3

JSF
Lifecycle
OK

Component Tree
UI Components

UI Components
Form

Document

Peer Objects

59

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Form

View Root

Renderer
ADF Faces Client JavaScript Architecture
Features
 JavaScript component API
 af:clientListener
– Listens to DOM and ADF Faces component events

 af:serverListener
– XMLHttp JavaScript call to server
– Queued as custom event on client
– Answered by managed bean

 ExtendedRenderKitService
– Trinidad class to invoke JavaScript from Java

60

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Using JavaScript in ADF Faces
Best Practice
 Use JavaScript by Exception
 Don't overuse JavaScript and first try and find a solution in ADF Faces
 Put JavaScript code in external *.js files
– Include using af:resource

 Code against ADF Faces component model, not the browser DOM
– Component oriented vs. markup oriented
– "document.getElementById" is a serious programming mistake

 Don't use JS classes in internal packages
– See JavaScript docs

61

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Break Out Of Isolation.

62

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Join A Community
 OTN forum
– Best Practice

 Articulate your question well
– Take the same time for asking a question that you want

forum members to spend on answering it
– Keep questions short but comprehensive

– Include your JDeveloper version
 Use Google prior to asking to save time
 Contribute

 EMG
– Architecture, integration, concepts and infrastructure topics
– https://groups.google.com/forum/#!forum/adf-methodology

63

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Schau Dich Schlau
Make yourself a smart cookie by watching ADF Architecture TV

http://bit.ly/adftvsub

64

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Best Practices Summary
Dress For Success

Always
work
through the
binding
layer

65

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Don't fight
the
framework

Think
Task Flow
Best Practices Summary
Dress For Even More Success

Join a
Community
&
Participate

66

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Use Case
Matters

Schau Dich
Schlau!
Join the Oracle ADF Community
http://oracle.com/ADF

@jdeveloper

/jdeveloper

67

JDeveloper

ADF Insider
ADF Architecture

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Learn More at Oracle OpenWorld
Related sessions and labs

Title

Time

Location

Oracle ADF and Oracle ADF Mobile: Lessons Learned
in Real-World Implementations

Wed
11:45

Marriot – Golden Gate C3

Hands-on Lab: Developing Mobile Applications with
Oracle ADF Mobile

Wed
10:15

Marriot – Salon 12

One Size Doesn’t Fit All: Oracle ADF Architecture
Fundamentals

Thu
11:00

Marriot – Golden Gate A

Oracle ADF booth at the Oracle Demo Ground – Moscone South
68

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Graphic Section Divider

69

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
70

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Más contenido relacionado

La actualidad más candente

Oracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable ArtifactsOracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable ArtifactsChris Muir
 
ADF Development Survival Kit
ADF Development Survival KitADF Development Survival Kit
ADF Development Survival Kitandrejusb
 
Oracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication PatternOracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication PatternChris Muir
 
The Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADFThe Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADFDataNext Solutions
 
Build your Business Services using ADF Task Flows
Build your Business Services using ADF Task FlowsBuild your Business Services using ADF Task Flows
Build your Business Services using ADF Task FlowsDataNext Solutions
 
ADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and SynchingADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and SynchingSteven Davelaar
 
Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project LayoutsOracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project LayoutsChris Muir
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlChris Muir
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaEr. Sndp Srda
 
Oracle ADF Architecture TV - Deployment - Deployment Options
Oracle ADF Architecture TV - Deployment - Deployment OptionsOracle ADF Architecture TV - Deployment - Deployment Options
Oracle ADF Architecture TV - Deployment - Deployment OptionsChris Muir
 
Implementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFImplementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFSteven Davelaar
 
Oracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural PatternsOracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural PatternsChris Muir
 
ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14andrejusb
 
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignOracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsOracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsOracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsOracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsChris Muir
 
Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009Jaime Cid
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingChris Muir
 

La actualidad más candente (20)

Oracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable ArtifactsOracle ADF Architecture TV - Design - ADF Reusable Artifacts
Oracle ADF Architecture TV - Design - ADF Reusable Artifacts
 
ADF Development Survival Kit
ADF Development Survival KitADF Development Survival Kit
ADF Development Survival Kit
 
Oracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication PatternOracle ADF Architecture TV - Design - Task Flow Communication Pattern
Oracle ADF Architecture TV - Design - Task Flow Communication Pattern
 
The Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADFThe Challenges Oracle Forms Migration to ADF
The Challenges Oracle Forms Migration to ADF
 
Build your Business Services using ADF Task Flows
Build your Business Services using ADF Task FlowsBuild your Business Services using ADF Task Flows
Build your Business Services using ADF Task Flows
 
ADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and SynchingADF Mobile: Implementing Data Caching and Synching
ADF Mobile: Implementing Data Caching and Synching
 
Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project LayoutsOracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
Oracle ADF Architecture TV - Development - Naming Conventions & Project Layouts
 
Oracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version ControlOracle ADF Architecture TV - Development - Version Control
Oracle ADF Architecture TV - Development - Version Control
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep Sharda
 
Oracle ADF Architecture TV - Deployment - Deployment Options
Oracle ADF Architecture TV - Deployment - Deployment OptionsOracle ADF Architecture TV - Deployment - Deployment Options
Oracle ADF Architecture TV - Deployment - Deployment Options
 
Implementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAFImplementing Data Caching and Data Synching Using Oracle MAF
Implementing Data Caching and Data Synching Using Oracle MAF
 
Oracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural PatternsOracle ADF Architecture TV - Design - ADF Architectural Patterns
Oracle ADF Architecture TV - Design - ADF Architectural Patterns
 
ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14ADF Mythbusters UKOUG'14
ADF Mythbusters UKOUG'14
 
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignOracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
 
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsOracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
 
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation OptionsOracle ADF Architecture TV - Design - Task Flow Navigation Options
Oracle ADF Architecture TV - Design - Task Flow Navigation Options
 
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsOracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
 
Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009Oracle Fusion Development, May 2009
Oracle Fusion Development, May 2009
 
37727897 Oaf Basics
37727897 Oaf Basics37727897 Oaf Basics
37727897 Oaf Basics
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error Handling
 

Destacado

ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesAndreas Koop
 
18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF InteractionSteven Davelaar
 
All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1Markus Eisele
 
ADF Bindings & Data Controls
ADF Bindings & Data ControlsADF Bindings & Data Controls
ADF Bindings & Data ControlsRohan Walia
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersDataNext Solutions
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adfBacely YoroBi
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion developmentDataNext Solutions
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tipsVinay Kumar
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoAndreas Koop
 
Adf performance tuning tips slideshare
Adf performance tuning tips slideshareAdf performance tuning tips slideshare
Adf performance tuning tips slideshareVinay Kumar
 
Designing well known websites with ADF Rich Faces
Designing well known websites with ADF Rich FacesDesigning well known websites with ADF Rich Faces
Designing well known websites with ADF Rich Facesmaikorocha
 
Oracle ADF : Vue d'ensemble
Oracle ADF : Vue d'ensembleOracle ADF : Vue d'ensemble
Oracle ADF : Vue d'ensembleANASYS
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningChris Muir
 

Destacado (20)

ADF User Interface Design Best Pratices
ADF User Interface Design Best PraticesADF User Interface Design Best Pratices
ADF User Interface Design Best Pratices
 
Oracle ADF 11g Tutorial
Oracle ADF 11g TutorialOracle ADF 11g Tutorial
Oracle ADF 11g Tutorial
 
18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction18 Invaluable Lessons About ADF-JSF Interaction
18 Invaluable Lessons About ADF-JSF Interaction
 
All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1All the Java ADF beginners need to know - part1
All the Java ADF beginners need to know - part1
 
ADF Bindings & Data Controls
ADF Bindings & Data ControlsADF Bindings & Data Controls
ADF Bindings & Data Controls
 
Oracle ADF Task Flows for Beginners
Oracle ADF Task Flows for BeginnersOracle ADF Task Flows for Beginners
Oracle ADF Task Flows for Beginners
 
Oracle Developer adf
Oracle Developer adfOracle Developer adf
Oracle Developer adf
 
AMIS Oracle JDeveloper 12c 07 ADF faces skin editor-Betty van Dongen
AMIS Oracle JDeveloper 12c 07 ADF faces skin editor-Betty van DongenAMIS Oracle JDeveloper 12c 07 ADF faces skin editor-Betty van Dongen
AMIS Oracle JDeveloper 12c 07 ADF faces skin editor-Betty van Dongen
 
An Oracle ADF Introduction
An Oracle ADF IntroductionAn Oracle ADF Introduction
An Oracle ADF Introduction
 
A guide to ADF fusion development
A guide to ADF fusion developmentA guide to ADF fusion development
A guide to ADF fusion development
 
Oracle application-development-framework-best-practices
Oracle application-development-framework-best-practicesOracle application-development-framework-best-practices
Oracle application-development-framework-best-practices
 
Oracle adf performance tips
Oracle adf performance tipsOracle adf performance tips
Oracle adf performance tips
 
Cloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, DemoCloud-native Apps - Architektur, Implementierung, Demo
Cloud-native Apps - Architektur, Implementierung, Demo
 
Adf performance tuning tips slideshare
Adf performance tuning tips slideshareAdf performance tuning tips slideshare
Adf performance tuning tips slideshare
 
Designing well known websites with ADF Rich Faces
Designing well known websites with ADF Rich FacesDesigning well known websites with ADF Rich Faces
Designing well known websites with ADF Rich Faces
 
Reporting solutions for ADF Applications
Reporting solutions for ADF ApplicationsReporting solutions for ADF Applications
Reporting solutions for ADF Applications
 
Kvotu teleradio
Kvotu teleradioKvotu teleradio
Kvotu teleradio
 
Goodbye Nightmare: Tips and Tricks for Creating Complex Layouts with Oracle A...
Goodbye Nightmare: Tips and Tricks for Creating Complex Layouts with Oracle A...Goodbye Nightmare: Tips and Tricks for Creating Complex Layouts with Oracle A...
Goodbye Nightmare: Tips and Tricks for Creating Complex Layouts with Oracle A...
 
Oracle ADF : Vue d'ensemble
Oracle ADF : Vue d'ensembleOracle ADF : Vue d'ensemble
Oracle ADF : Vue d'ensemble
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & Tuning
 

Similar a Oracle ADF Beginner Best Practices

Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewChris Muir
 
Solution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataSolution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataInfiniteGraph
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
Oracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewOracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewPaulo Fagundes
 
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Berry Clemens
 
Oracle_DB_sobre_Oracle
Oracle_DB_sobre_OracleOracle_DB_sobre_Oracle
Oracle_DB_sobre_OracleFran Navarro
 
Oracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsOracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsChris Muir
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Application Express - A web development environment for the masses - and for ...
Application Express - A web development environment for the masses - and for ...Application Express - A web development environment for the masses - and for ...
Application Express - A web development environment for the masses - and for ...Sage Computing Services
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesChris Muir
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & designMark Swarbrick
 
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...timfanelli
 
Oracle Solaris 11.1 New Features
Oracle Solaris 11.1 New FeaturesOracle Solaris 11.1 New Features
Oracle Solaris 11.1 New FeaturesOrgad Kimchi
 
Ebs performance tuning session feb 13 2013---Presented by Oracle
Ebs performance tuning session  feb 13 2013---Presented by OracleEbs performance tuning session  feb 13 2013---Presented by Oracle
Ebs performance tuning session feb 13 2013---Presented by OracleAkash Pramanik
 
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Sorathaya Sirimanotham
 
Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016Bastien Leblanc
 
Multi-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao MiddlewareMulti-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao MiddlewareBruno Borges
 
Java Mission Control in Java SE 7U40
Java Mission Control in Java SE 7U40Java Mission Control in Java SE 7U40
Java Mission Control in Java SE 7U40Roger Brinkley
 

Similar a Oracle ADF Beginner Best Practices (20)

Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best Practices
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow Overview
 
Oracle RAC 12c Overview
Oracle RAC 12c OverviewOracle RAC 12c Overview
Oracle RAC 12c Overview
 
Solution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataSolution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big Data
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Oracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewOracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overview
 
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
 
Oracle_DB_sobre_Oracle
Oracle_DB_sobre_OracleOracle_DB_sobre_Oracle
Oracle_DB_sobre_Oracle
 
Oracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsOracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build Options
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Application Express - A web development environment for the masses - and for ...
Application Express - A web development environment for the masses - and for ...Application Express - A web development environment for the masses - and for ...
Application Express - A web development environment for the masses - and for ...
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service Architectures
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & design
 
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
 
Oracle Solaris 11.1 New Features
Oracle Solaris 11.1 New FeaturesOracle Solaris 11.1 New Features
Oracle Solaris 11.1 New Features
 
Ebs performance tuning session feb 13 2013---Presented by Oracle
Ebs performance tuning session  feb 13 2013---Presented by OracleEbs performance tuning session  feb 13 2013---Presented by Oracle
Ebs performance tuning session feb 13 2013---Presented by Oracle
 
Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016Oracle Cloud Café hybrid Cloud 19 mai 2016
Oracle Cloud Café hybrid Cloud 19 mai 2016
 
Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016Oracle Management Cloud - HybridCloud Café - May 2016
Oracle Management Cloud - HybridCloud Café - May 2016
 
Multi-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao MiddlewareMulti-Tenancy: Da Teoria à Prática, do DB ao Middleware
Multi-Tenancy: Da Teoria à Prática, do DB ao Middleware
 
Java Mission Control in Java SE 7U40
Java Mission Control in Java SE 7U40Java Mission Control in Java SE 7U40
Java Mission Control in Java SE 7U40
 

Más de Berry Clemens

Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...
Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...
Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...Berry Clemens
 
Ebs strategy-roadmap-given
Ebs strategy-roadmap-givenEbs strategy-roadmap-given
Ebs strategy-roadmap-givenBerry Clemens
 
Strategy and erp in-the-cloud
Strategy and erp in-the-cloudStrategy and erp in-the-cloud
Strategy and erp in-the-cloudBerry Clemens
 
Preparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-fullPreparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-fullBerry Clemens
 
EBS 12.1 and 12.2 strategy-roadmap-given
EBS 12.1 and 12.2 strategy-roadmap-givenEBS 12.1 and 12.2 strategy-roadmap-given
EBS 12.1 and 12.2 strategy-roadmap-givenBerry Clemens
 
Oracle Weblogic for EBS and obiee (R12.2)
Oracle Weblogic for EBS and obiee (R12.2)Oracle Weblogic for EBS and obiee (R12.2)
Oracle Weblogic for EBS and obiee (R12.2)Berry Clemens
 
Oracle Fusion functional setup manager
Oracle Fusion functional setup managerOracle Fusion functional setup manager
Oracle Fusion functional setup managerBerry Clemens
 
Oracle E-Business Suitre mobile apps ADF
Oracle E-Business Suitre mobile apps ADFOracle E-Business Suitre mobile apps ADF
Oracle E-Business Suitre mobile apps ADFBerry Clemens
 
Con9437 ad ffor_ebs and mobile
Con9437 ad ffor_ebs and mobileCon9437 ad ffor_ebs and mobile
Con9437 ad ffor_ebs and mobileBerry Clemens
 
Getting optimal performance from oracle e-business suite presentation
Getting optimal performance from oracle e-business suite presentationGetting optimal performance from oracle e-business suite presentation
Getting optimal performance from oracle e-business suite presentationBerry Clemens
 
Fusion_apps extending and customizations
Fusion_apps extending and customizationsFusion_apps extending and customizations
Fusion_apps extending and customizationsBerry Clemens
 
Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Berry Clemens
 
EBS-endeca-technical-considerations
EBS-endeca-technical-considerationsEBS-endeca-technical-considerations
EBS-endeca-technical-considerationsBerry Clemens
 
EBS-technical_upgrade_best_practices 12.1 or 12.2
EBS-technical_upgrade_best_practices 12.1 or 12.2EBS-technical_upgrade_best_practices 12.1 or 12.2
EBS-technical_upgrade_best_practices 12.1 or 12.2Berry Clemens
 
Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289Berry Clemens
 
Con8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebsCon8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebsBerry Clemens
 
Con9534 fusion financials
Con9534 fusion financialsCon9534 fusion financials
Con9534 fusion financialsBerry Clemens
 
Con8442 fusion functional setup manager
Con8442 fusion functional setup managerCon8442 fusion functional setup manager
Con8442 fusion functional setup managerBerry Clemens
 
Con3928 horton session con3928 fusion app on-premise installation lessons lea...
Con3928 horton session con3928 fusion app on-premise installation lessons lea...Con3928 horton session con3928 fusion app on-premise installation lessons lea...
Con3928 horton session con3928 fusion app on-premise installation lessons lea...Berry Clemens
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerBerry Clemens
 

Más de Berry Clemens (20)

Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...
Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...
Simplified user experience_design_patterns_for_the_oracle_applications_cloud_...
 
Ebs strategy-roadmap-given
Ebs strategy-roadmap-givenEbs strategy-roadmap-given
Ebs strategy-roadmap-given
 
Strategy and erp in-the-cloud
Strategy and erp in-the-cloudStrategy and erp in-the-cloud
Strategy and erp in-the-cloud
 
Preparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-fullPreparing for EBS R12.2-upgrade-full
Preparing for EBS R12.2-upgrade-full
 
EBS 12.1 and 12.2 strategy-roadmap-given
EBS 12.1 and 12.2 strategy-roadmap-givenEBS 12.1 and 12.2 strategy-roadmap-given
EBS 12.1 and 12.2 strategy-roadmap-given
 
Oracle Weblogic for EBS and obiee (R12.2)
Oracle Weblogic for EBS and obiee (R12.2)Oracle Weblogic for EBS and obiee (R12.2)
Oracle Weblogic for EBS and obiee (R12.2)
 
Oracle Fusion functional setup manager
Oracle Fusion functional setup managerOracle Fusion functional setup manager
Oracle Fusion functional setup manager
 
Oracle E-Business Suitre mobile apps ADF
Oracle E-Business Suitre mobile apps ADFOracle E-Business Suitre mobile apps ADF
Oracle E-Business Suitre mobile apps ADF
 
Con9437 ad ffor_ebs and mobile
Con9437 ad ffor_ebs and mobileCon9437 ad ffor_ebs and mobile
Con9437 ad ffor_ebs and mobile
 
Getting optimal performance from oracle e-business suite presentation
Getting optimal performance from oracle e-business suite presentationGetting optimal performance from oracle e-business suite presentation
Getting optimal performance from oracle e-business suite presentation
 
Fusion_apps extending and customizations
Fusion_apps extending and customizationsFusion_apps extending and customizations
Fusion_apps extending and customizations
 
Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581
 
EBS-endeca-technical-considerations
EBS-endeca-technical-considerationsEBS-endeca-technical-considerations
EBS-endeca-technical-considerations
 
EBS-technical_upgrade_best_practices 12.1 or 12.2
EBS-technical_upgrade_best_practices 12.1 or 12.2EBS-technical_upgrade_best_practices 12.1 or 12.2
EBS-technical_upgrade_best_practices 12.1 or 12.2
 
Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289Con8289 r12 maintenance tips heisler heisler-con8289
Con8289 r12 maintenance tips heisler heisler-con8289
 
Con8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebsCon8439 fusion apps customs to ebs
Con8439 fusion apps customs to ebs
 
Con9534 fusion financials
Con9534 fusion financialsCon9534 fusion financials
Con9534 fusion financials
 
Con8442 fusion functional setup manager
Con8442 fusion functional setup managerCon8442 fusion functional setup manager
Con8442 fusion functional setup manager
 
Con3928 horton session con3928 fusion app on-premise installation lessons lea...
Con3928 horton session con3928 fusion app on-premise installation lessons lea...Con3928 horton session con3928 fusion app on-premise installation lessons lea...
Con3928 horton session con3928 fusion app on-premise installation lessons lea...
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
 

Último

H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Último (20)

H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Oracle ADF Beginner Best Practices

  • 1. 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 2. Oracle ADF Programming Best Practices for Beginners Frank Nimphius Senior Principal Product Manager Application Development Tools
  • 3. Program Agenda  Simplify Your Development Choice  ADF Business Components  ADF Task Flow  ADF Binding  ADF Faces  JavaScript  Break Out Of Isolation 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 4. Simplify Your Development Choice 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 5. Simplify Your Technology Choice Choose a Development Approach Database Oriented Java EE Oriented SOA Oriented • EJB / JPA • Services  ADF Binding • ADF Binding • ADF Binding  ADF Task Flow • ADF Task Flow • ADF Task Flow  ADF Faces • ADF Faces • ADF Faces  Data Visualization • Data Visualization • Data Visualization  RDBMS  ADF BC 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 6. Simplify Your Technology Choice Common Technologies Database Oriented Java EE Oriented SOA Oriented • EJB / JPA • Services  ADF Binding • ADF Binding • ADF Binding  ADF Task Flow • ADF Task Flow • ADF Task Flow  ADF Faces • ADF Faces • ADF Faces  Data Visualization • Data Visualization • Data Visualization  RDBMS  ADF BC 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 7. ADF Business Components 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 8. ADF Business Components Application Module Data Model View Object XML Definition References View Object Base Class XML Definition References AM Base Class 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1 * Entity Object XML Definition References Entity Object Base Class
  • 9. ADF Business Components Architecture Best Practices 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 10. Use ADF Business Components Preferences 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 11. Use ADF Business Components Preferences EntityImpl YourOrgEntityImpl YourAppEntityImpl 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 12. Use ADF Business Components Preferences 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 13. Use ADF Business Components Preferences 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 14. ADF Architecture Square http://bit.ly/adfarchsquare  Development – Oracle ADF Development Essentials – ADF Code Guidelines (v1.00) – ADF Naming and Project Layout Guidelines (v2.00) 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 15. ADF Business Components Implementation Best Practices 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 16. General Considerations Custom Framework Extension Classes  Always create and use custom base-classes for at least – ApplicationModuleImpl – EntiyImpl – ViewRowImpl – ViewObjectImpl  Note that creating custom super classes for <object>Def classes are less common 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 17. Entity & View Object When to generate Java Impl files  Generate Java Impl files when entity objects are accessed from Java or Groovy  Ensure code that accesses entity objects directly uses type safe APIs instead of the generic framework APIs  Do not generate Impl classes without a need – Keep code base size reasonable. – Impl classes for the *def classes are rarely needed 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 18. View Criteria Prefer One View Object with Many View Criteria  Not necessary to create separate VO that only differ by their WHERE clause  Apply view criteria declaratively when defining view accessor and AM data model instances – Use bind variables with View Criteria – Be aware that "Ignore Null Values" options is of bad performance  Avoid direct user input in ADF BC queries to protect against SQL injection attacks 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 19. Performance Tuning And Optimization Developers always strive for "better"  Premature optimizations as the root of all evil – Measure Performance, don't guess it. – If performance measures as bad, look for optimizations  Make the general assumption that ADF will probably get it right – Consider the greater cost of do-it-yourself (DIY)  Think AM Pools! – Good rule of thumb: One AM instance serves 10 - 15 users comfortably – Size for peak load based on this. 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 20. Read. Understand. Tune.  http://docs.oracle.com/middleware/1212/adf/ adf-monitortune.htm 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 21. ADF Task Flow 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 22. Bounded Task Flow Flows, Sub-Flows, Regions Bounded Task Flow Input Parameter Input Parameter Input Parameter Return Value Return Value 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Managed Beans
  • 23. ADF Task Flow Architecture Best Practices 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 24. Task Flow Oriented Architecture (TOA)  Think task flow from design time on – Inventory existing task flows – Identify patterns and standardize on them  Ensure objectives and requirements reflect task flow benefits – Reuse, loose-coupling  Think "unit-of-work" and factor task flow functionality into subflows – Share Data Control frame with sub-flows – Hide sub-flows from showing in ADF library 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 25. Use Task Flow as a "Common Language"  Use task flow diagrammer as "common language" – Use task flow templates as blue prints – Use verbs and meaningful names in control flow case names  editOrder, createOrder, manageEmployee  Use the display and description properties of the contained activities to explain the non-obvious 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 26. Task Flow Design Task Flow Sizing Considerations  Build Composite Task Flows – Larger task flows built out of several smaller task flows – Only top level task flow exposed for reuse – Encapsulates task flow dependencies  Good for distributing work among developers  Dependency management "by agreement" in smaller teams  Smaller memory foot print through load-on-demand and task flow private memory scopes 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 27. ADF Task Flow Implementation Best Practices 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 28. Handling Input / Return Parameter Values  Save task flow input / return parameter values in managed beans in pageFlowScope – Easy to document – Type safe API – EL accessible – Easy to discover and manipulate input parameter values – NPE protection 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 29. Managed Beans  Java classes configured in faces-config.xml, adfc-config.xml or <task-flow-name>.xml  Managed by JSF or ADF Controller – Java EE scopes  request, session, application – Additional ADF scopes  backingBean, view, pageFlow  Hold code for UI related logic and data 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 30. Bounded Task Flow & Managed Beans Best Practice  Always use the smallest possible scope for managed beans – Helps Framework to "clean up" memory footprints – Think "state"  Does the managed bean need to keep state?  If so, how long?  Don't reference managed beans in session or application scope – Violates task flow isolation and reuse 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 31. Data Control Scope  Use shared data control scope as often as possible – Less database connections – Simplifies task flow inter-communication – Automatic parent view collection to child task flow detail collection synchronization 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 32. Task Flow Exception Handler  Define an exception handler activity in every bounded task flow  Leverage Task Flow Templates – Use as Blueprint or Reference – Define exception handlers for all bounded task flows 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 33. What Could Happen Task Flow Exception Propagation Memory Stack ! Task Flow 1 View1 EH Task Flow 2 Call Task Flow 2 View2 Current Task Flow ! Task Flow 4 EH Task Flow 3 Call Task Flow 3 Task Flow 3 View3 Task Flow 2 Task Flow 4 Call Current Task Flow Task Flow 4 View4 Method Call BANG! 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Task Flow 1
  • 34. What Could Happen Task Flow Exception Propagation Memory Stack ! Task Flow 1 View1 EH Task Flow 2 Call Task Flow 2 View2 ! EH Task Flow 3 Call Propagate Exception Task Flow 3 View3 Task Flow 4 Call Task Flow 2 Current Task Flow Task Flow 4 View4 Method Call BANG! 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Current Task Flow Propagate Exception Task Flow 1
  • 35. What Could Happen Task Flow Exception Propagation Memory Stack ! Task Flow 1 View1 EH Task Flow 2 Call Task Flow 2 View2 ! EH Current Task Flow Task Flow 2 Task Flow 1 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 36. Visual Example Task Flow Exception Propagation ! BANG! 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 37. Best Practices at a Glance Wildcard Navigation  Avoid cluttering diagrams for common navigation rules  Use wild card navigation for common functionality – Cancel – Commit 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 38. ADF Binding 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 39. Understanding ADF Bindings How Oracle ADF binds into JSF Business Service Web Service ADF Data Binding Data Control POJO Data Binding JSF Page JUCtrl Generic Binding Expression Language ADF BC EJB ADF Faces Component Tag (<af:name../>) FacesCtrl Binding Server Side JSF Component JMX TopLink BAM 39 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Component Component Model UI Renderer
  • 40. Programming Against the Binding Layer  Expression Language – Current binding layer can be accessed from #{bindings} or ${bindings}  Use from JSF components – Populate UI component value #{bindings.firstName.inputValue}  Use from PageDef file – E.g. access field binding value - ${bindings.firstName.inputValue}  Java – ADF binding layer is represented by Java objects at runtime – BindingContext.getCurrent()is the generic entry point 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 41. Use Public APIs Only  ADF classes have an API package and an IMPL package – Define logical framework abstractions – Simplifies implementation of future product changes  APIs in IMPL package are internal-only – Not to be used outside of framework – Internal packages have "internal" in the naming (It’s a clue!)  If you are not sure … – Use EL in Java: #{bindings.allDepartments.treeModel.makeCurrent} 41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 42. Understanding ADF Programming Example: Accessing the Binding Layer import oracle.adf.model.BindingContext; import oracle.binding.BindingContainer; … BindingContext bctx = BindingContext.getCurrent(); BindingContainer bindings = null; bindings = bctx.getCurrentBindingsEntry(); 42 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 43. Understanding ADF Programming Example: Accessing Attribute Binding AttributeBinding attributeBinding = null; attributeBinding = (attributeBinding)bindings.get("AttributeName"); /* set / get value */ attributeBinding.setInputValue(value); attributeBinding.getInputValue(); 43 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 44. Understanding ADF Programming Example: Method and Action Bindings //get method or action binding OperationBinding methodBinding = (OperationBinding)bindings.get("methodOrActionName"); //optional: if method expects arguments Map paramsMap = methodBinding.getParamsMap(); paramsMap.put("argumentName1",value); Object result = methodBinding.execute(); //check for errors, e.g. exceptions List errors = method.getErrors(); If(!errors.isEmpty()){ …} 44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 45. Accessing Business Service Methods Best Practice  Encapsulate all model manipulation code in custom AM and/or VO methods & invoke them declaratively – Makes your app easier to regression test  Only code that belongs in a JSF managed bean is… – Complex, dynamic UI component manipulation – Complex conditional navigation  Even if you require backing bean code, invoke custom AM or VO methods using action binding – Guarantees uniform error handling 45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 46. Always Work Through the Binding Layer Best Practice – Accessing Business Service Methods View Layer Business Layer Business Service Application Module Managed Bean Data Model PageDef attribute binding Text method binding AM Impl public void invokePlSQL() Button AM Client Interface public void invokePlSQL() 46 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 47. ADF Model Error Handler  The ADF model error handler deals with – All ADF binding errors – Business service errors that occur when accessing a service trough the ADF binding layer  Formats and displays error message  Default error handler skips the top-level JboException because it only is a bundled exception wrapper for other business exceptions 47 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 48. Build A Custom ADF Model Error Handler Best Practice  Extend oracle.adf.model.binding.DCErrorHandlerImpl and configure your custom error error handler in DataBindings.cpx  Override the following methods as needed – reportException  Override this method to analyze exceptions for errors you want to handle – getDisplayMessage  Override to change or suppress (null value) the displayed message – getDetailedDisplayMessage  Override this method to provide HTML markup formatted detail information – skipException(Exception ex)  Called by the framework to check if an exception should be ignored 48 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 49. Configuring A Custom Error Handler 49 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 50. ADF Faces 50 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 51. ADF Faces Rich Client Components Based on Java Server Faces Standard  Ajax & HTML5 enabled JSF components  Pluggable look and feel  Accessibility & internationalization  Touch gesture support  Built-in advanced functionality: – Partial Page Refresh (PPR), Partial Submit – Drag and drop framework – Dialog and pop-up framework 51 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 52. Backing Bean  "Special use" of a managed bean – Contain UI Component references  <af:inputText label="…" binding="#{BackingBeanName.lastNameField}"/> – Must be defined in request scope  JSF components are not serializable (!)  Best Practices – Avoid backing beans and perform dynamic component lookup using  FacesContext.getCurrentInstance().getViewRoot().findComponent(…)  Relative search: component.findComponent()  org.apache.myfaces.trinidad.util.ComponentUtils.findRelativeComponent(…, …) 52 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 53. When Using Backing Beans …  Use separate beans for separate views – Avoids "pinning" of UI components and their state – If views are exactly identical, consider reuse 53 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 54. Avoid Expression Language Gotcha Manage Bean Scope – Prefix or don't Prefix?  EL accessing managed beans in Java EE scopes – Request, session, application – No scope prefix – #{beanName}  EL accessing managed beans in ADF scopes – backingBean, view, pageFlow – Require scope prefix – #{scope.beanName}, #{backingBeanScope.beanName} 54 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 55. Put use of HTML on a "By Exception" List Avoid Mixing HTML and JSF components  HTML and JavaServer Faces are different technologies – Markup oriented vs. component oriented – Compile – Render, vs. multi stop request lifecycle  Facelets in JSF 2.x support mixing of HTML and JavaServer Faces components – Prior to Facelets and JSF 2.x, mixing HTML and JSF is a no-go – Still with JSF 2.0 problems may occur because ADF Faces components come with their own sizing behavior (geometry management)  Recommendation: Build pages and views with ADF Faces components 55 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 56. Avoid ui:include and jsp:include Tags  ADF PageDef file is not aware of ui:include or jsp:include references in a page or view – Included fragments fail at runtime if they use ADF bound components – You can copy ADF bindings used by the included content into the view's PageDef file.  Prevents reuse of the fragments  Recommendation – Use ui:include and jps:include for layouts only (if at all) – Use ADF regions to add ADF bound content to a page at runtime 56 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 57. Use inlineStyle and contentStyle By Exception Learn to Love Skinning  inlineStyle property allows developers to add CSS to a component rendering – CSS is applied to top-level DOM component – CSS is directly added to the page output – Best Practice: Use ADF Faces skinning and reduce the use of CSS to the absolute minimum (e.g. conditional color coding)  contentStyle property allows developers to add CSS to the value content area of an ADF Faces component – Styles component content area better than inlineStyle but has same issue as mentioned above 57 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 58. JavaScript 58 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 59. ADF Faces Client JavaScript Architecture DOM Form Client Side Server Side Servlet Label1 Label2 Label3 JSF Lifecycle OK Component Tree UI Components UI Components Form Document Peer Objects 59 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Form View Root Renderer
  • 60. ADF Faces Client JavaScript Architecture Features  JavaScript component API  af:clientListener – Listens to DOM and ADF Faces component events  af:serverListener – XMLHttp JavaScript call to server – Queued as custom event on client – Answered by managed bean  ExtendedRenderKitService – Trinidad class to invoke JavaScript from Java 60 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 61. Using JavaScript in ADF Faces Best Practice  Use JavaScript by Exception  Don't overuse JavaScript and first try and find a solution in ADF Faces  Put JavaScript code in external *.js files – Include using af:resource  Code against ADF Faces component model, not the browser DOM – Component oriented vs. markup oriented – "document.getElementById" is a serious programming mistake  Don't use JS classes in internal packages – See JavaScript docs 61 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 62. Break Out Of Isolation. 62 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 63. Join A Community  OTN forum – Best Practice  Articulate your question well – Take the same time for asking a question that you want forum members to spend on answering it – Keep questions short but comprehensive – Include your JDeveloper version  Use Google prior to asking to save time  Contribute  EMG – Architecture, integration, concepts and infrastructure topics – https://groups.google.com/forum/#!forum/adf-methodology 63 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 64. Schau Dich Schlau Make yourself a smart cookie by watching ADF Architecture TV http://bit.ly/adftvsub 64 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 65. Best Practices Summary Dress For Success Always work through the binding layer 65 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Don't fight the framework Think Task Flow
  • 66. Best Practices Summary Dress For Even More Success Join a Community & Participate 66 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Use Case Matters Schau Dich Schlau!
  • 67. Join the Oracle ADF Community http://oracle.com/ADF @jdeveloper /jdeveloper 67 JDeveloper ADF Insider ADF Architecture Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 68. Learn More at Oracle OpenWorld Related sessions and labs Title Time Location Oracle ADF and Oracle ADF Mobile: Lessons Learned in Real-World Implementations Wed 11:45 Marriot – Golden Gate C3 Hands-on Lab: Developing Mobile Applications with Oracle ADF Mobile Wed 10:15 Marriot – Salon 12 One Size Doesn’t Fit All: Oracle ADF Architecture Fundamentals Thu 11:00 Marriot – Golden Gate A Oracle ADF booth at the Oracle Demo Ground – Moscone South 68 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 69. Graphic Section Divider 69 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  • 70. 70 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.