Oracle ADF je end-to-end okvir za razvoj aplikacija.
Prvo izdanje frameworka, koji se tada nije zvao ADF već JBO (Java Business Objects), dogodilo se 1999. godine. Ubrzo mu je ime promijenjeno u BC4J (Business Components for Java). Uz BC4J, Oracle je počeo razvijati i odgovarajući IDE (Interactive Development Environment), kome je dato ime JDeveloper. Alat je pratio verzije baze i ubrzo se, u verziji 10g, prvi put pojavio termin ADF.
ADF framework generiše skup Java klasa koje omotavaju DML naredbe, kao i XML dokumente koji čuvaju podatke o strukturi izvora podataka. Ove Java klase preko JDBC interfejsa komuniciraju sa bazom, pri čemu su detalji implementacije pristupa bazi skriveni. Razvoj Oracle ADF aplikacija upotrebom JDeveloper-a podrazumeva da developer ima mogućnost projektovanja korišćenjem vizuelnih dijagrama i wizard-a.
JDeveloper takođe pruža mogućnost za programera da izabere da direktno manipuliše izvornim kodom u bilo kom trenutku.
Oracle ADF pruža veliki stepen fleksibilnosti. Baziran je na takozvanom Model-View-Controller (MVC) design pattern-u koji odvaja poslovnu logiku (Model) od klijenta (View) i logike upravljačkog toka (Controller).
Prvi sloj, Business Service, je odgovoran za interakciju između baze podataka i Model sloja i za većinu poslovne logike. ADF poslovne komponente (ADF BC) pružaju poslovne usluge koje su odgovorne za komunikaciju sa tabelama baze podataka i validaciju korisničkog unosa u bazu. Na njega se nadovezuje Model sloj, koji povezuje korisnički interfejs sa poslovnim servisom, omogućava njegovu izmenu, a da to ne utiče na ostale delove aplikacije. Controller sloj kontroliše tok korisničkog interfejsa i često je uključen u navigaciju s jedne strane na drugu putem ADF task flow-a. View sloj je prezentacioni sloj i njega koristi krajnji korisnik za interakciju sa aplikacijom.
ADF BC (Business Components) su jedan od najvažnijih delova ADF-a. One omogućavaju da se uz poznavanje teorije o relacionim bazama podataka i SQL jezika kreira deo logike iz baze koji je potrebno preneti na aplikacioni sloj. Entitet, jedna od tri najvažnije komponente, predstavlja tabelu u bazi podataka. Entity objekti mogu biti međusobno povezani asocijacijama, vezama koje reprezentuju strane ključeve, ali i ostala ograničenja u bazi.
View se kreira nad jednim ili više entity objekata ili na SQL upitu. Kao što entity objekti mogu biti spojeni asocijacijama, tako view objekti mogu biti povezani linkovima – oni predstavljaju takozvanu master-detail vezu između objekata. Aplikacioni modul enkapsulira instance view objekata i metode poslovnih servisa koje su potrebne za njegov rad.
Korišćenjem ADF-a smanjuje se kompleksnost razvoja J2EE aplikacija tako što je obezbeđen vizuelni i deklarativni razvoj. Ovakav pristup minimizira potrebu za pisanje koda i smanjuje vreme potrebno za učenje.
Programerima je omogućeno da naprave sopstveni izbor komponenti koje žele da koriste u svojoj aplikaciji.