tags:

views:

875

answers:

3

I'm quite new to Oracle's ADF and wonder what is the difference between ADF and Sun's reference implementation of JSF?

+2  A: 

Oracle ADF is a special case. It can act as a JSF implementation or a JSF component library.

Next to Oracle ADF there are two other (major) JSF implementations: Sun Mojarra and Apache MyFaces. Mojarra was formely (prior to 1.2_08) known as Sun JSF RI (Reference Implementation). When you want to use JSF you need at least one of them (not both or more). At the moment I can recommend Mojarra above MyFaces.

Then you have many JSF component libraries which you can add on top of any JSF reference implementation, which are an extension to the standard components of a JSF implementation. The component libraries usually adds just that extra flexibility (e.g. Mojarra Scales and Apache Tomahawk) and/or ajaxability -often also in combination with skinnability- (e.g. Apache Trinidad, JBoss RichFaces and IceFaces). Apache Trinidad is by the way kind of fork of Oracle ADF (at certain point they cloned the component library part of the ADF source and enhanced that further). You can in theory use as many component libraries as you want in a project, but mixing skinned/ajaxified libraries is generally not a good idea because of potential collisions in lifecycle, viewhandling, javascripts, etcetera.

BalusC
ADF faces is one implementation of JSF. ADF is collection of ADF faces+ADF Business Components+ ADF model layer). Probabily you have to say Oracle ADF faces at everywhere you said oracle ADF
ram
+3  A: 

As a user of ADF Faces on several enterprise projects, I have a slight disagreement with the approved answer-- ADF Faces can be used as your JSF implementation or as a component library. If used as your JSF implementation there are differences from the JSF spec such as a longer lifecycle (ADFFaces adds two steps to the original JSF lifecycle) and an additional scope for storing variables longer than request but shorter than session (i.e. in "process scope").

If you end up using ADF Faces as your JSF implementation, you need to be aware that you are doing things the Oracle JSF implementation way (so you often can only find answers for what you are trying to do in the Oracle documentation, which can be lacking).

BestPractices
You're right. I've corrected my answer.
BalusC
+2  A: 

ADF is a complete framework. It consists of ADF Faces and ADF Business Components making it a complete framework, model to controller to view. Using ADF, along with JDeveloper, developers can develop applications without ever having to touch any java code (theoretically). I still find myself using some java, however I try to limit it to as little as possible since this a migration project where incoming non-java developers will be working. (And yes, they will have to learn java eventually).

Zombies