We had a number of queries and discussions on the OA Framework Forum on OTN regarding OAF, ADF and Oracle Applications. In this article, I am going to cover where OAF and ADF stand with respect to Oracle Applications and what are the expectations out of them.
OAF stands for Oracle Applications Framework and is a MVC architecture based J2EE framework customized for use in Oracle Applications development. It is tailor made for use in the development, customization of Oracle Apps pages and any custom application development to be hosted, integrated in Oracle Apps. It has the inbuilt support for features like session management, AOL/J security, connection pooling etc. OAF provides classes for all the standard web widgets seen on the Self Service pages like Text field, List of Values, Table, HGrid, Buttons etc. I won't go deep into OAF architecture, you can get that detail in the OAF Dev guide.
Only choice of tool to work with OAF is Jdeveloper with OA Extension. There is no OA extension /plugin available for any other IDE. This is another factor where people keep getting confused. Jdeveloper is a generic Java IDE but the one without the OA extension can't be used for OAF development. OA extension is what provides the required OA libraries and enables OA based Workspace, Project creation.
OAF is the only option for any Oracle Apps related development [Here I am not considering PUI Forms interface for the simple reason that Oracle has stopped any new PUI based development a couple of years ago and is trying to convert them to OA pages]. Release 11i and recently launched Release 12 version of Oracle Apps is based on OAF. For look & feel and business logic changes to Oracle provided seeded Self Service pages, one can make use of Extension and Personalization features of OAF. Modifications done following the Extension and Personalization guidelines are upgrade and patch safe. Any direct modification made to seeded code will be overwritten during the patching.
ADF stands for Application Development Framework. Unlike OAF, it is not a vendor or technology specific framework. In fact it supports a number of technologies for each of its Model, View and Controller components and hence has received a good appreciation from the developer, architect community. It has gained popularity as the choice of framework for generic J2EE based applications development.
ADF is going to be used for Fusion release of Oracle Applications. As oracle itself is working on the Fusion release of Applications code and establishing the Applications specific standards, libraries, I don't see the fusion specific ADF development standards being out for customers, vendors anytime before 2009 or 2010 [ Might be even later based on the policy they come up with]. Though you can still create custom applications in ADF and host on a 10gAS server, the integration, maintenance, Apps LAF will be the issues you will have to face. ADF still doesn't have the native support for integration with release 11i or R12 based system and I don't see it coming as ADF is more of meant for fusion product which is still underway. As the path will be to move to fusion, I don't think that there will be any extra effort to provide native support of ADF for 11i or even in R12.
The first looks of the Fusion release Applications are supposed to be out in the Dec, 2008 [ % of functionality covered is not committed] and now with the exit [read firing] of John Wookey, Senior Vice President of Applications Development, who spearheaded the fusion development, I am not sure what's the new milestone dates as per new management [signs of further delays are out]. Well, this definitely means that all the customers will be on 11i or R12 release of code for a couple of more years and the biggest chunk of maintenance/enhancement work will be based on OAF. To stress on this aspect, you should consider the fact that there are no standards, guidelines available for customers, vendors with respect to ADF and Fusion. With the new framework going to take some time to get stabilize along with new fusion Apps code development, its going to take couple of more years.
Only scenario where I see ADF fit into current Apps related development is the kind of project where you have to develop a completely standalone application which just uses the Oracle Apps data but is not required to integrate with the Oracle Apps. For all Oracle Applications related development and customizations, stick to OA Framework.
What does the above mean? Good news for OAF developers as for next 5-6 years, most of the Oracle Applications related work will be on OA framework. Also keep in mind that ADF has many features which are similar to OAF. Hence it will be an easy path to learn ADF if you know OAF properly and want to move over to ADF related development. As the majority of current Oracle Applications code and customizations are OAF based, there should be an easy migration road map for OAF based customizations to fusion technology.
Mukul has put up a nice intro on the comparison of OAF and ADF tech stacks. Check it here.