Saturday, January 12, 2013

Book Review: Oracle ADF Enterprise Application Development Made Simple

Book cover from
http://www.packtpub.com
Oracle ADF is a framework for building Rich Web applications with Java which is built on top of Java EE. So if you have previous experience in building Web applications using JSF you are likely to start developing with Oracle ADF pretty fast. On the contrary, if you are just beginning with Web development, the visual and declarative development that this framework offers will let you build your applications in a fast pace.
The latest release of the framework (as of today) is 11gR2 (11.1.2.3.0) and you can develop using Oracle JDeveloper or Eclipse with the Oracle Enterprise Pack for Eclipse  (OEPE) plugin. Oracle ADF is not free, but there is a smaller version of the framework that is free to develop and free to deploy (even on production) and is called ADF Essentials.

In this post, I'll be reviewing the book "Oracle ADF Enterprise Application Development Made Simple" written by Sten E. Vesterli and published by PACKT. I have to say that this book is not for beginners in the Oracle ADF field, it is aimed at Sr. Java developers or those with ADF background willing to take the next step or even Java architects, as it is not focused on development tips and tricks but on the set of tools and configurations that you need in order to manage the development lifecycle of an ADF application.

Chapter 1, ADF Proof of Concept, shows the steps you should follow in order to prove that ADF is the framework your team should use for that next project. It first briefly introduce you to ADF architecture and components that you should know in order to build your enterprise applications. Then it shows a case study that leads you to create a proof of concept from design to development. Again, this is not a development book, so it doesn't dive on some development concepts.

Chapter 2, Estimating the Effort, presents you a way to measure the cost and how long it will take to build the enterprise application using ADF. It describe some of the common techniques that some companies apply such as use cases or user stories and it states that the user is a critical success factor for the project. It presents three scenarios (optimistic, likely, pessimistic) and shows you the estimation for the case study presented on chapter one.
This chapter also presents a nice software to create UI designs before development called Balsamiq. The good thing about this software is that it produces a "hand-written" look so everyone knows that it is not the final design and that it can change.

Chapter 3, Getting Organized, teaches you that before start coding, you need to think about the skills and the team you need in order to create enterprise applications with ADF. Then it talks about the programming tasks you should be aware of when building such applications and presents you some third party tools you may use in order to enhance collaboration and control the development lifecycle. It finishes showing you how to structure your application so you don't end up with one big workspace but with small ones that you can then integrate.

Chapter 4, Productive Teamwork, introduces you to the Oracle Team Productivity Center, its advantages and quick configuration steps you should follow in order to install and start using this tool inside JDeveloper. I have to say that this tool is a must if you are working in teams and are developing ADF applications.

Chapter 5, Prepare to Build, tells you the basic libraries you need to build in order to make your application extensible in the future. This is a good chapter, because you start building the base structure of your application.

Chapter 6, Building the Enterprise Application, this is where the real development of the application begins. This chapter guides you to the several steps you should follow in order to start working with JDeveloper and the other integrated tools. The mentioned steps are detailed and applied to the case study. It gives you a real sense of what is to be made during development.

Chapter 7, Testing your Application, shows you several libraries and software you can use in order to create tests for your Business components, User Interfaces and for Stress/Performance tests. It gives you examples based on the case study built through out the book. Really easy to follow step by step tutorial and it gives you the tips to configure the tools to work with ADF.

Chapter 8, Look and Feel, guides you to defining the appearance of components without affecting their functionality. As you are building a modular ADF application, it shows you how easy it is to change the look and feel of your application based on Skinning.

Chapter 9, Customizing the Functionality, this is an advanced topic. It tells you how you can customize the same application for several clients. There is some theory about how it works and then hands on simple example that shows you what you need to do in order to customize your application.

Chapter 10, Securing your ADF Application, this chapter is about the many easy-to-use security features built into ADF. It shows you all the configurations you can make in order to have a fine-grained security in your ADF applications. IMPORTANT: the smaller version of ADF, ADF Essentials, is not bundled with this security mechanism, but you can use the Java EE security instead (more about this in future post).

Chapter 11, Package and Deliver, finally, the last step of the development cycle shows you what you should be considering when deploying your applications: cleaning your code, database connections, etc. And it gives you a list of application parameters you should set for a production environment. At the end, it illustrates you in how you can automate the process of compiling, running tests and deploying to the application server using Ant. Great tips for improving your software development process.

Appendix A, Internationalization, shows you the configurations you need in order to have your application available for other languages and zones. Again, easy to follow step by step tutorial.

As you can see, it is a complete book that goes through all the phases when developing applications using ADF, although, several concepts apply to other technologies. I really enjoyed this book, I'm and experience ADF developer and it helped me in architecting several projects, a 100% recommended. One more thing, the book is published in a lot of formats: printed book, kindle, PDF, ePub, so you have many options to read it. I have the kindle edition and it looks great on my kindle, paragraphs are well formatted and the source code is easy to read. There's only one thing, some tables does not fit the page on the kindle version, so you cannot read the last column.

For more information about this book go to:
http://www.packtpub.com/oracle-adf-enterprise-application-development/book

See ya!