Oracle ADF is an end-to-end application development framework.

The framework’s initial release, which was called JBO (Java Business Objects) rather than ADF at the time, happened in 1999. Its name was quickly changed to BC4J (Business Components for Java). Oracle began creating a complementary IDE (Interactive Development Environment) called JDeveloper in line with BC4J. The tool kept up with database versions, and shortly, in version 10g, the name “ADF” was first used.

Oracle ADF is based on J2EE standards and open-source technologies and significantly sped up the development of service-oriented applications. Oracle ADF is suitable for developers who create so-called CRUD (Create, Read, Update, Delete) applications using a web, mobile or desktop interface.

These Java classes communicate with the database using the JDBC interface, where the implementation details of accessing the database are hidden. Using JDeveloper for development of Oracle ADF applications, implies that the developer has the ability to design using visual diagrams and wizards.
Moreover, JDeveloper gives the developer the opportunity to at any time directly alter the source code.

Oracle ADF provides a lot of flexibility. It is built on the Model-View-Controller (MVC) design pattern, which separates the business logic (Model) from the client’s View and control flow logic (Controller).

The first layer, the Business Service, is responsible for the interaction between the database and the Model layer but also for the majority of the business logic. ADF Business Components (ADF BC) provide business services that are responsible for communicating with database tables and validating user input to the database. It is followed by the Model layer, connecting the user interface to the business service and allowing for its alteration without affecting other parts of the application. The user interface’s flow is managed by the Controller layer, which is also frequently used for side-to-side ADF task flow navigation. The View layer is the presentation layer and is used by the end user to interact with the application.

ADF BC (Business Components) are one of the most important parts of ADF. They enable the creation of a piece of the database logic that needs to be passed to the application layer with knowledge of relational database theory and the SQL language. An entity, one of the three most important components, represents a table in the database. Entity objects can be related by associations, links that represent foreign keys, and other constraints in the database.

A view is created on one or more entity objects or on a SQL query. Just as entity objects can be connected by associations, view objects can be connected by links, which reflect the so-called master-detail connection between objects. The application module encapsulates instances of view objects and methods of business services that are contained within and required for its operation.

By enabling visual and declarative development, ADF lessens the complexity of J2EE application development. This strategy cuts down on the amount of coding necessary and shortens the learning curve.
The components that developers choose to use in their applications are entirely up to them.