Question

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

Was it helpful?

Solution

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).

OTHER TIPS

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).

Here are some of the things that are either not implemented properly or they are completely missing in the vanilla JSF.

  1. Tooling

  2. Declarative binding with the Business layer, all the way to the database or webservices or Content Services.

  3. Reusable Taskflows that allow you to easily share the fragments of user interface between pages rather than develop each page from scratch.

  4. Internationalization

  5. Ability to deliver customizable and personalizable pages using webcenter extensions

  6. Ability to embed advanced data visualizations from Oracle Business Intelligence or other sources.

ADF does all of the above and more.

ADF Lifecycle is ptimized life cycle.

ADF component can get refresh within their boundary (value change event can occur only for the component without disturbing other components. when u refresh the table (like scrolling down to fetch (Say fetch mode)) u can get the data without any validation error in the page.

as data within the table boundary only getting refreshed.

There is client side life cycle in ADF, In case of validation error , adf will avoid unnecessary round trips.(not sure how it di fferes from JSF)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top