Friday, December 12, 2008

Review: Alfresco Developer Guide

I just finished reading Jeff Pott's new book Alfresco Developer Guide. If you have been looking for a technical book on how to develop applications on top of the Alfresco platform, this is it. Jeff wastes little time introducing abstract content management concepts or explaining the user interface, he digs right into setting up your local development environment. I like this approach but it assumes a solid foundation in both ECM and Java - if you don't have one, there are plenty of other books to start with. The expectation of some baseline knowledge saves the book from getting bogged down with introducing Spring, jBPM, and many of the other popular Java frameworks and components that make up Alfresco.

The book is written with a bias toward the document management end of the ECM spectrum but that makes sense for a book about Alfresco. Only one chapter (out of 9) is devoted to Alfresco's WCM component. The core strength of book is how it teaches developer to build dynamic web applications and services that access documents from the Alfresco repository (which may be the core strength of Alfresco too). There is great coverage on Alfresco's Web Scripts framework with plenty of interesting examples that showcase the flexibility of the platform. For example, there is a nice description of how to create an AJAX document rating widget you could put on another website.

Jeff's writing style is both thorough and readable. He has a nice technique of pulling up and explaining details in "What Just Happened?" sections. This allows him to run cleanly through a topic and then summarize and discuss some of the nuances of the steps.

Unfortunately for Jeff, his book (which covers 2.2 of the Enterprise Edition) came out right around the time version 3.0 was released. However, since he writes mainly about the API level, the book will stay relevant and accurate longer (Luckily API's can't change as fast as user interfaces). So, if you are a Java developer and are considering using Alfresco for building a "document centric web application," this book will help.