Book review: JDeveloper 11g Handbook: A Guide to Fusion Web Development

1

In this blog I will share with you my experiences with the Oracle JDeveloper11g Handbook – A Guide to Oracle Fusion Web Development (McGraw-Hill, 2010) – written by Duncan Mills, Peter Koletzke and Avrom Roy-Faderman. It is the successor of their previous book, JDeveloper 10g for Forms & PL/SQL Developers. This is a book to learn the basics of ADF Fusion development and a valuable guide for reference. If you’re a starter, than the hands-on part in this book is a good and practical exercise.

 

Part 1  – Overviews

Chapter 1 starts with an overview of Fusion development and ADF. What is the Oracle Fusion brand, its history and architecture?  It’s good to have an overview how ADF relates to all the other technologies but to really understand the contents you must already have some knowledge of all the Oracle Fusion technologies.

Chapter 2 is a general introduction to the JDeveloper IDE. It is a good read for newbie’s but also for experienced developers to browse – there is much possible in JDeveloper 11. For example a file comparison, keyboard shortcuts (tools/preferences), refactoring (renaming or moving files), working with Subversion, the help center (JDeveloper menu, context-sensitive help page: F1).

Chapter 3 is on JDeveloper tools; amongst others:  the application navigator, the project panel, the new gallery, wizards, the structure window, the component palette and the property inspector. Also very useful to know: JavaScript editing, running/debugging PL/SQL code and the JDeveloper debugger:  explained are all the various useful debug windows (smart data, data, ADF data, EL Evaluator, breakpoints).

Chapter 4 is a very general introduction to Java Enterprise Development. It describes the JEE architecture model; Java, HTTP, Servlets, AJAX and what level of knowledge people need to start working with the ADF Fusion technology.

Part 2 – ADF Business Components

This part (chapter 5, 6, 7 and 8 ) is an excellent introduction and extensive reference guide for ADF Business Components. Only for this part already this book is worth buying. Figure 5-1 on page 152 gives a good insight on the relationships that the different ADF BC objects have with each other. For example the differences between Entity Object definitions, -instances and –usages. Every subject of ADF BC (Entity Objects, associations, ViewObjects, ViewLinks, ApplicationModules) is described and explained well, also new ADF BC subjects like declarative SQL mode, View Accessors and ViewObject instances used as LOV.

Part 3 – ADF View and Controller

Part 3 starts with chapter 9 and 10 with an introduction to JavaSever faces (JSF) and a small hands-on on this subject.

Chapter 11 is on the ADF Controller and taskflows. This is the most important subject to understand when you work with an ADF Fusion application. It explains the problem with JSF and why the ADF Controller and taskflows are created, the different scopes (pageFlow, view, and backingBean, request, session), the taskflow components and advanced taskflow subjects. Unfortunately, after reading this chapter the whole concept of taskflows did not became clear to me, even not after reading it again. I think this chapter should have been more understandable and detailed about this crucial subject. The chapters in the Fusion Developer Guide are much more informative and give you insight on this subject.

Chapter 12 is on ADF Faces Rich Client. It gives you a good introduction and overview off all the components, different layout containers and facets that exist. A worthwhile read, if you want to be able to create a perfect layout.

Part 4 – ADF Model

Chapter 13 is on ADF Model basics. It explains how you can make data-bound pages while dragging and dropping collections and attributes from the data control palette. Table 13-1 on page 468 is very informative.

Chapter 14 is on advanced bindings. This is not an easy subject and it is explained well with examples of the different types of bindings like attribute-, table-, tree-, list of values-, action-, method bindings-.  Very helpful for reference.

Chapter 15 is on iterators and executables.  The different types of executables are discussed (invokeAction-, taskFlow-, page-,searRegion executable) and how to control execution using their properties – valuable information.  Also the Fusion lifecycle,  customizing error handling and Contextual Events are quickly discussed, but I think a little bit too quickly and could have been more extensive.

Part 5 – Developing the Sample Application

In part 5 – almost one third of the book – is on the hands-on sample application called The Ultimate Human Resources Application (TUHRA) . The instructions are clear, well written and tested instructions, divided over nothing less than 250 pages.  First it starts in chapter 16 starts with a discussion about design principles and a typical Fusion page design and the design of the sample application. The rest of part 5 is a big hands-on: a basic CRUD application based on the HR schema:

You can become familiar with many of the new concepts and techniques that are discussed in this book and that are typical of an ADF Fusion application, like taskflows, page templates, page fragments, ADF Faces RC components (layout, popup  menu),  new ADF BC subjects (ViewCriteria, ViewAccessors, List of values ), PPR, etc. Also by creating  the sample application you learn to find your way around in JDeveloper; for example where to find all numerous properties on the property inspector, how to work with the structure window (dragging and dropping components, surrounding or converting components), get insight in the use of the different tabs (source, design, bindings) on a JSFF or JSPX file.  In chapter 21 ADF security is discussed and added to the sample application.

Very valuable is also the last chapter (22) about the deployment process to a Weblogic server. This explains how you can setup your own standalone Weblogic Server for testing. It shows you how to create and run a Weblogic Domain, run the administration console, how to create a JDBC datasource, and how to deploy your application from a EAR or directly from JDeveloper.

Unfortunately I could make this sample application only with an old version of JDeveloper , version 11.1.1.1, as one crucial ViewObject (AllEmployees ) uses Declarative SQL mode that for some unexplainable reason did not work for me on newer JDeveloper versions. There is an errata page, but I did not find this here. A good thing is that you can download all the specific completed sub-steps of the application so that you can skip parts if you want or the review your code.

Conclusion

All in all I think this is a book that you should have on your shelve as a ADF Fusion developer. A book to learn the basics and for reference of the JDeveloper IDE, and many ADF Fusion subjects like ADF Business Components and the ADF Model. If you’re a starter with ADF Fusion development the hands-on part is a very valuable one to absorb the concepts and worth to take your time for it. It is like a complete starter’s course in ADF Fusion development.

But it should not be the only book – it still doesn’t give you complete insight into difficult subjects like the ADF Controller and taskflows, the ADF Fusion lifecycle or Contextual Events. For real business problems and a more in depth discussion of the technology, the Fusion Developer Guide is a clearer, more comprehensive (and advanced) book and should be the next step of mastering the ADF Fusion technology.  I think both books should be on your shelf as an ADF developer.

You can buy the book here.

Share.

About Author

Frank Houweling is an Oracle ADF and Java specialist with AMIS (The Netherlands). He focuses mainly on Oracle Fusion ADF, Java Enterprise development and performance management. During the past years he has been requested several times as troubleshooter of ADF projects with bad performance. As such he has been performing performance analysis, bottleneck detection and developing mitigating solutions based on these analysis. He is also the creator of the AMIS ADF Performance Monitor, an advanced monitor that can identify, report and help solve performance bottlenecks in ADF applications.

1 Comment

Leave a Reply