Wednesday, March 11, 2009

Application Development Framework

Framework:


A framework is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality.A Framework builds upon the idea of a code reuse by offering well-designed code libraries, documentation and often development tools. A framework provides (or simplifies) the implementation of a high level architecture.It supplies a complete system that accomplishes a specific task such as page flow(as with Struts framework) or business services(as with ADF Business components framework).



Developers are more productive when they use framework. In addition a good framework delivers complete, working code as an infrastructure to your business code, as well as the flexibility to easily modify the framework's behavior.



Need for Oracle ADF:


J2EE is a set of specifications for building multi tier applications using the Java language. Over the years, best practices and design patterns have evolved for the J2EE platform.The problem is that implementing these best practices usually involves writing a lot of infrastructure code.


Oracle JDeveloper aims to solve this problem.Oracle jdeveloper includes the Oracle Application Development Framework. This framework simplifies J2EE development by minimising the need to write code that implements design patterns and application's infrastructure.Oracle ADF provides them as part of the framework.



Oracle Application Development Framework:


Oracle Application Development Framework is a J2EE development framework that implements design patterns and eliminates infrastructure coding. ADF contains all aspects of a development framework i.e. highly integrated code libraries, a well-documented development method and a full featured IDE support to it. ADF provides visual and declarative approach to J2EE development. Oracle ADF features both runtime services and development features.


ADF Architecture :


Oracle ADF is based on the Model-View-Controller (MVC) design pattern. MVC seperates the application architecture into three layers.


  • Model - handles interaction with data-sources and runs the business logic
  • View - handles the application user interface
  • Controller - handles the application flow and acts as the interface between the Model and view layers.


Separating applications into these three layers simplifies maintaining and reusing components across applications.The independence of each layer from others results in a loosely coupled architecture.Oracle ADF provides an easy way to implement the MVC Architecture.


Oracle ADF is based on four layers:



  • Business Services layer - provides access to data from various sources.
  • Model layer - provides an abstraction layer on top of the Business Services layer, enabling the View and Controller layers to work with different implementations of Business Services in a consistent way.
  • Controller layer - provides a mechanism to control the flow of the Web application.
  • View layer - provides the interface to the application.



Oracle ADF lets developers choose the technology they prefer to use when implementing each of the layers. Oracle ADF provides the same visual and declarative development experience regardless of the technology stack used.


YouTube video demonstrating the Introduction to ADF