Documente Academic
Documente Profesional
Documente Cultură
A place to discuss best practices and methodologies for JDeveloper ADF enterprise applications Founded mid-2008 by Chris Muir, now 650+ members, staffed by many ACE Directors & ADF experts
http://groups.google.com/group/adf-methodology
<presenter, organisation>
http://one-size-doesnt-fit-all.blogspot.com
11g ADF Business Components ADF Faces RC Task Flows ADF Libraries Resource Palette
Design engineering is more than a mere balancing act between finding the best options among a sea of possibilities, and then implementing those options through the careful orchestration of available resources. To fully manage the challenges of the design process, it is also necessary to develop an instinct for choosing design paths and system configurations that provide some measure of flexibility. This maintains wiggle room as projects advance toward completion, often creating an angel in the architecture to serve as a countermeasure for situations in which the devil is in the details.
http://rfdesign.com/mag/radio_flexibility_designers_best/
Part 5 Multi Master Application, Multi BTF Application Part 6 The Services Pattern [Part 7 ...... Fusion Applications]
Characteristics
Application Model Entity Object View Object Entity Object View Object
AppModule
jspx
Advantages
Simple architecture Self contained, no dependencies, easy to build & deploy Suited for small applications, teams & raw beginners
Disadvantages
Developers can: Break each others work Easily ignore modularization Poor separation of concerns & responsibilities
Re-architecting difficult
Characteristics
Application Model Entity Object View Object Entity Object View Object
AppModule
Advantages
Relatively simple architecture Sophisticated BTF transactions without ADF BC AM trickery Improved design: mapping between business process to BTFs Improved ability to test modules and re-architect
Disadvantages
Developers can tightly couple accidentally Version control tug of war Build & deployment all or nothing affair
Picture removed to reduce ppt download size
Characteristics
Common ADF BC Application Model Entity Object Entity Object View Object View Object View Object View Object Entity Object Entity Object
AppModule
Master Application
AppModule
AppModule
AppModule
ViewController
Advantages
Full power of BTFs
Suited for large applications & developer teams Excellent separation of concerns Each BTF is self contained, loose coupling Developers can become responsible for single BTF Team Leader for Composite Master Easier to reuse BTFs BTFs can be tested standalone
Disadvantages
Complex(er-er) architecture ADF BC security is not possible Dependency management is now an issue Not easy to build & deploy (-> ojdeploy)
AppModule
BTF Templates
Declarative Components
ViewController Bounded Task Flow Bounded Bounded Task Flowjsff Task Flow jsff ViewController jsff Unbounded Task Flow
Page Templates
Skins
JAR
jspx
jspx
Characteristics
Master Application
BTF Application
ADF Library JAR
Master Application
Advantages
Disadvantages
BTFs need to be very flexible Reuse must be a key design concept & concern Dependency management nightmare
OrganisationsList.jsff
Common common.model
common.taskflow
common.deccomp
OrganisationsList.jsff
OrganisationsList
OrganisationsForm.jsff
Common common.model
common.taskflow
common.deccomp
OrganisationsList.jsff
OrganisationsForm
OrganisationsList.jsff
Edit Back
OrganisationsForm.jsff
mon
model
ations bject
askflow
taskflow.orgcomp.view taskflow.orgserv.view OrganisationsList BTF OrganisationsList.jsff Orgs Composite BTF OrganisationsView.jsff Region
eccomp
Edit
OrganisationsForm BTF
OrganisationsForm.jsff
Back
OrganisationsEdit.jsff
Region
OrganisationsHeader.jsff
EventsList.jsff
OrganisationsHeader Region
EventsList BTF EventsList.jsff
EventsList Region
Edit Back
EventsEdit.jsff Region
OrganisationsHeader.jsff
BookingsList.jsff
taskflow.bookcomp.view taskflow.orgserv.view OrganisationsHeader BTF OrgHeader.jsff BookingsComposite BTF BookingsView.jsff Region taskflow.bookserv.view
Page1.jspx
Region
Page2.jspx
Region
Page3.jspx
Region
taskflow.bookcomp.model
Region
Region
Region
Advantages
Extreme reuse Patterns start to appear in BTFs themselves
Disadvantages
Not for the feint hearted Lots of unnecessary requerying data Overcomplicates even simple applications
Guidelines
Use fragments and regions Services should be promiscuous with transactions and data control scope Control overall transactions/data control scope from composite task flows If needed, wrap composites in composites
Reuse must be a mindset, not a nice to have if you adopt this Reuse must be considered at the requirements level, just not the technical level
Oracle ADF: Best Practices From Fusion Applications Teams (OpenWorld 2009)
http://www.scribd.com/doc/21018676/Best-Practices-From-Fusion-Applications-Teams-OpenWorld-2009
Conclusion
Further Reading
Inter-region communication techniques
Contextual Events http://download.oracle.com/docs/cd/E14571_01/web.1111/b31974/web_adv.htm#CACJBFGI JDev 11g: Programmatic Contextual Events http://one-size-doesnt-fit-all.blogspot.com/2010/08/jdev-11g-programmatic-contextual-events.html Master-child BTF chaperone a contextual event alternative http://one-size-doesnt-fit-all.blogspot.com/2010/09/master-child-btf-chaperone-contextual.html