Thursday, 8 February 2007

Get your dirty little hands on

I recently had the privilege of getting my grubby little hands on Peter Koletzke's and Duncan Mill's latest book Oracle JDeveloper 10g for Forms & PL/SQL Developers. I thought I'd write an impromptu mini-review, because overall I'm a fan of this book for JDeveloper beginners from my own experience of flogging JDeveloper on the black market.

Learning JDeveloper and the associated Application Development Framework (ADF) technologies such as ADF Business Components (ADF BC) and ADF Faces (Oracle's implementation of JavaServer Faces) is not an easy task. Full stop. Texts that make an effort to reduce the learning curve are essential for beginners.

At this time there are really only 2 texts for JDeveloper 10.1.3, specifically this guide, and Oracle's own ADF Developer's Guide for Forms/4GL Developers.

Earlier texts for the "10g" version of JDeveloper exist, but don't get caught out. 10g for JDeveloper, like other Oracle products, actually refer to a number of versions. For example the Oracle JDeveloper 10g Handbook which was co-authored by Avrom Roy-Faderman, Peter Koletzke and Paul Dorsey refers to the 10.1.2 release, not 10.1.3 release of JDeveloper. This older text is dated in parts as it doesn't consider ADF Faces. In turn though, this older text is still useful as it gives another explanation of the JDeveloper technologies such as ADF BC.

There are potentially three groups of people interested in learning JDeveloper; beginner Java programmers, traditional Oracle Forms and PL/SQL programmers, and other experienced Java programmers interested in both what the JDeveloper IDE and ADF frameworks to offer. As the title of this book suggests, it is aimed at the Forms and PL/SQL crew. However it is also applicable to the later group, experienced Java programmers, who want a guide for learning the IDE and framework.

Considering the new guide, it's useful to consider what it isn't: it isn't a book to learn Java, though it does have a "basics" Java chapter; it isn't a book to get your head around the entire JDeveloper IDE, it focuses on the IDE parts that support ADF BC and ADF Faces; it isn't a book to learn the entire set of Java frameworks that JDeveloper supports, including Oracle's own Toplink, nor EJBs; and finally it isn't a reference book, as it reads like one long tutorial.

As a tutorial then, what does this book do? Well this is where I'm impressed.

A few years back thanks to a lucky opportunity I made the jump from Forms to JDeveloper. The tutorials at the time focused on creating web-pages, then the ADF BC side, then other bits in time.

I've found over this time that my learning was backwards. As a Forms programmer I had little knowledge of Java which would have been useful (luckily I was a C++ coder in a former life, so this went okay for me), little knowledge of J2EE, no knowledge of JSPs, no knowledge of web applications, including HTTP request-responses and much more.

Since the beginning I've been back filling that knowledge and now finally know far too much. Now, JDeveloper touts itself as an "end-to-end" development tool meaning it supports database development, through creating a Java persistence layer, and creating web pages and deploying. This book is the missing part because it explains to the inexperienced Forms and PL/SQL programmers all the bits you need to know before you start putting those web pages together; it's not just about the flashy bits.

So the key to this book, is that yes, it is a long tutorial building an application from one end to the other, but it takes time out to talk about concepts the authors think you should know to supplement your knowledge.

Chapters that I thought out-of-the-box and beneficial to a beginner programmer included; Web Communications - how does HTTP request and response work - which is the underpinnings of the whole web gig; Required Web Languages - a discussion on languages besides Java that you'll need to pick up; and JavaServer Faces Basics, including what JSF components you really need to know.

Also I was a pleasantly surprised to find a chapter on Application Design Principles, including best practices, standards, and creating JSF templates, something I think missing and yet to be considered appropriately elsewhere in detail.

In any review you need to be critical somewhere, and besides some easily forgivable editorial mistakes, I think the one chapter included at the end on JHeadstart was inappropriate given this is an Oracle Consulting product that needs to be purchased separately. I would have preferred a discussion of OC4J under OEM on OAS as this is where your program goes and provides its own set of learning challenges. While OAS is not free, and JDeveloper doesn't haven't to be installed into OC4J (other J2EE servers are supported), it is the defacto choice for most existing Oracle sites with Forms and other similar development tools.

Readers need to understand that the book does have a large overlap with the ADF Developer's Guide for Forms/4GL Developers so you may not regards it is as good value. However to myself, this is not necessarily a bad thing as the explanation of comments from a 3rd party is often useful I find.

Readers must also note that once completing this book, you wont be an expert JDeveloper-er.... you'll be the over the first step of many on the way to productivity in the JDev environment. There is no golden chalice in IT, so don't have unrealistic expectations.

However you've got to start somewhere and I recommend this book as a great beginner guide. I've also found it useful for myself as it provides a good A.B.C of how to explain JDeveloper concepts to others in a logical fashion.

For the record both authors are well known in the Oracle arena. For myself I know of Peter Koletzke from his presentations at Oracle OpenWorld, among other sources including his website, and Duncan Mills from his blog and role as JDeveloper Principal Product Manager.

No comments: