Season greetings my fellow JDevelopers!
Our software group has been working with ADF for around 5 years and
through the years we have accumulated a good amount of knowledge
working with JDeveloper and ADF. Much of our current application
structure has been resurrected in the early days of JDeveloper 10
where there were more samples codes floating around then there were
"best pratice" documentation. I understand this is a subjective topic
and varies site to site, but I believe there is a set of common
practices our group has started to identify as critical to
streamlining a development process(reusable decorated ui components,
modular common biz logic, team development with svn, continuous
integration/build, etc..). One of our development goals is to minimize
dependency between each engineer as everyone is responsible for both
client and middle layer implementation without losing coding
consistency. After speaking with a couple of the aces at the last
openworld, I understand much of our anticipated architectural
requirements are met with JDeveloper 11(with the introduction of
templates, declarative components, bounded task flows, etc..) but due
to time constraints on upcoming deliverables we are still about an
year away before moving on with that new release. The following is a
little bit about our group/application.
JDeveloper version: 10.1.3.4
Number of developers: 7
Developer responsibilties: Build both faces & bc code
We have two applications currently in deployment.
1.A flavor of Steve Muench's dynamic jdbc credentials login module
2.Core ADF Faces & BC application
In our Core ADF Faces application, we have the following structure:
OurApplication
-OurApplicationLib (Common framework files)
-OurApplicationModel (BC project)
-src/org/ourapp/module1
-src/org/ourapp/module2
…
-OurApplicationView (Faces project)
public_html/ourapp/module1
public_html/ourapp/module2
…
src/org/ourapp/backing/module1
src/org/ourapp/backing/module2
…
src/org/ourapp/pageDefs/
Total Number of Application Modules: 15 (Including one
RootApplicationModule which references module specific AMs)
Total Number View Objects: 171
Total Number of Entities: 58
Total Number of BC Files: 1734
Total Number of JSPs: 246
Total Number of pageDefs: 236
Total Number of navigation cases in faces-config.xml: 127
Total Number of application files: 4183
Total application size: 180megs
Are there any other ways to divide up this application? Ie: module
specific projects with seperate faces-config files/databindings? If
so, how can these files be "hooked" together? A couple of the aces
has recommended that we should separate all the entity files into its
own project which make sense. Also, we are looking into the maven
builds which should remove those pesky model.jpr files that constantly
gets “touched”. I would to love hear how other groups are organizing
their application and anything else they would like to share as a ADF
best pratices.
Also feel free to update the following thread on the jdeveloper
forums:
http://forums.oracle.com/forums/thread.jspa?threadID=841321&stqc=true
Cheers,
Wes