Oracle Application Development Framework (ADF)
For the past few days, I've been playing with the Oracle SOA suite and trying to develop small applications in the new JDeveloper IDE using the Oracle ADF framework. On first impressions, its really good! Oracle has done a great job in the UI and the productivity features that I was able to write a small application (master / detail type of web application) in under 1 hour (given the fact that I had to learn ADF in the process also)! That's truly impressive! The best thing was, in this entire process, I did not have to write one single line of code.
A typical development process using ADF looks like the following:
- Define the entities of your application visually by dragging them from the database. This sets up entity POJO type of classes
- You can then create views out of these entities by combining them together in different combinations depending on the use case that you are trying to solve
- You can then drop these views into what are called application modules which are service endpoints for your application
- Once the above 3 steps are done, you can create a web page and then drop the different entities in the application module (which is wrapped into a binding object) into the web page and JDeveloper automatically figures out the UI required and puts everything in place
- Just run the UI and everything works like magic!
Few things that I liked in the above sequence was the ability to define UI labels as part of your view definition so that the web layer is able to take these out of the entity objects itself. You can also define simple validation rules on the attributes of the entities (like email format etc) graphically and these are enforced uniformly.
I'm still continuing to play around with ADF and will write more blog posts on things that I find interesting. One initial hitch that I had was trying to use SQL Server as the datasource in JDeveloper for my project (I should have guessed that it might not be easy ;-)). Finally, I installed Oracle Xpress Edition (another cool product) and everything worked well. One other irritant was that periodically JDeveloper decided to freeze up and eat 100% of my CPU. Don't know why...