ADF Methodology for the Masses – ODTUG 2009

I’ve added an abstract for ODTUG 2009 on the ADF Methodology Google Group and I would like to share the content of this abstract with the community as well.

Especially because your feedback is needed to keep the ball rolling and to check out how many people are using ADF today or are interested in an introduction.

The abstract:

A software development methodology is designed to assist experienced and uninitiated technology practioners to standardize their approach to software design & development. They can help highlight common decision points, outline best practices, promote code reuse, and propose standard deliverables among many other things.

This is a meeting of an ongoing group of experts and delegates first held at OOW08 based around ADF and the support of Oracle staff. We’d like to open the opportunity to the user groups to start participating in this event and ODTUG’s reputation as the key-Oracle development eventwould make this ideal.

Summary:
-) Quick Introduction of the ADF Methodology Group
-) Goals of the ADF Methodology
-) ADF as a topic:
a) Propose a standardised approach to ADF design & development beyond just the technical
b) Highlight common decision points, outline best practices, promote code reuse, and propose standard deliverables
c) Understand alternative technologies and how ADF fits in
d) Give a feel for the important topics with JDev 11g ADF (and how to learn about them)

-) Presentations regarding best practices, reporting possibilities, testing strategy, 11g take aways

Benefits:
-) Learn how to adopt ADF at an organizational level
-) Help to promote ADF and to inspire others to use ADF
-) Highlight samples, information, guidelines for ADF
-) Take-outs + where to go from here

The goal of the ADF Development Methodology Group is to propose just such a methodology for JDeveloper Application Development Framework (ADF) based projects. With the experience of real-world experts, including Oracle ACEs and Oracle staff, join us to put such a methodology together.

ADF Taskflows & BPM & UML

You’ve read about the ADF Methodology Group that was founded for the masses and the group is still growing and the topics are evolving.

More information regarding the ADF Methodology can be found on the Oracle wiki page.

Today I’ve added some content regarding a definition on ADF Taskflows, BPM, UML, BPEL, etc. and especially for which purpose these technologies can be used.

On the wiki-page you will find more information regarding when and why I would use these kinds of methodologies and the benefits or drawbacks I find when using them.

Feel free to add comment, add suggestions, add your own approach, etc. Looking forward for new ideas!

That said aside, our Google group is also worth reading in the meantime, you can check it out here.

ADF Methodology Group

Together with Chris, Andrejus, Wilfried and several other ACE’s and ACE Directors we’ve been discussing the need for an ADF Methodology.

Chris has started up this thread, and finally on ODTUG we’ve decided to kick-off on Open World Unconference. We will be running an ADF Methodology session at Oracle OpenWorld as part of the un-conference program.

You can read about this session in this Oracle wiki page.
This is definitely a must attend session for anyone who is doing ADF work – you can register here.
That said aside, our Google group is also worth reading in the meantime, you can check it out here.

Tips & Tricks – ODTUG (chapter 2)

Today I had the opportunity to attend loads of interesting sessions as well, the tips & tricks I’ve picked up regarding ADF, SCM, OWB, JDeveloper.

Some of these tips are very obvious, but worth reminding ;o)

Tips & Tricks when building applications (with JDeveloper):

  • Use 1 source control system, preferably Subversion ;o)
  • For Continuous integration you can use maven/ant which is tightly integrated, supported within Jdeveloper
  • Use Unit Testing througout your project phases, you can use our QA-tool for APEX-development and use JUnit, HTTPUnit, … for JEE based web development such as ADF Faces
  • Define a seperate lib-directory to handle the external libraries you’re using within Jdeveloper, so you’re able to version them efficiently and to manage your dependancies
  • Watch out when you’re refactoring BC4J or ADF applications, because configuration files, pageDefinition files aren’t refactored completely

Tips & Tricks on versioning in Jdeveloper 11g:

  • SCM can be any versioning system such as Subversion and CSV (supported by default), clearcase, serena, …
  • You have the possibility to create a repository within Jdeveloper 11g but this is for development purposes only and not well documented either, so no best practice
  • When you check in your project at a certain child-level, say for example the ViewController-project, Jdeveloper will automatically start from the root level (commit the whole working directory) and drill down to only commit those files that have been changed.
  • Version at application level
  • Define files you want to exclude from being versioned
  • The conflict-resolution is xml-aware which is a great future because most of the time you would be changing configuration files that are defined in XML

A term that will pop-up more and more ‘CLOUD Computing’ or ‘CLOUDS’ … another paradigm ;o)

This just means that clouds are up in the sky, floating around and the IT-world these clouds would hold different services made available to the outside world.

The services would be put inside the cloud to open up business, to start integrating … in other words now the sky has definitly become the limit!

Tips & Tricks from ODTUG

The tips & tricks I’ve learned so far at different ODTUG sessions I’ve attended:

When you’re thinking about moving to fusion middleware:

  • Use a small subset of tools, no big bang approach: ADF + BC + BPEL
  • ADF Faces is still evolving, so you need to consider the rewrite that’s needed when using Faces as your UI
  • Use templates to introduce a common look-and-feel by using af:region-tags which will centralize the layout so you don’t need to go through each page when layout changes
  • Use Enterprise Business Objects, EBO’s, as they are being used in AIA, one common business object that will be the facade-layer between your web layer and model layer
  • Use Grid Control to monitor your fusion-based applications
  • Set up datasources and pooling on the Application Server not on Application Tier
  • Prevent SQL-Injection by using bind variables
  • Use black- and white-lists for defining the security-rules and do’s and donts of your application
  • Don’t define nested roles when defining security in ADF Applications, use flat structures because not all JEE Servers support nested roles

More high-level, pragmatic:

  • Concentrate on business drivers, not on technology: on the ‘what’ not the ‘how’
  • Business Services are your hub, not the database anymore

A great paradigm Basheer Khan uses:

When your moving to a new home you will tap into existing services such as electricity, phone, internet, cable-tv, water, … => this is the same approach that you will be using when moving to SOA. You will tap into existing services.

APEX versus ADF

When talking about User Interfaces, Rapid Application Development (RAD), AJAX-like features such as Drag-and-Drop functionality a lot of frameworks pop up.

When you’re looking at Frameworks and tooling and vendor-specific solutions you could think of APEX, Application Development Framework (ADF), ADF Rich Client Components, Trinidad, …

To be able to compare these products, we’ve tried to build a matrix of features and how these features are managed in APEX and ADF.

We’re talking about 10.1.3 features, not yet about 11g because these aren’t production ready yet. 11g is very promissing about web 2.0 functionality and more service oriented approach, but for now let’s stick to what we have.

Feel free to comment, add features, add comparisons …