Book Review: Alfresco 3 Cookbook by Snig Bhaumik

I finished reading Alfresco 3 Cookbook, by Snig Bhaumik, a while ago and I’ve been remiss in getting my review posted. Disclosure: Packt sent me the book for free.

Alfresco 3 Cookbook is the latest entry in what is now a fairly voluminous catalog of Alfresco-related titles. So I was excited to read Snig’s book in the hope that there would be new information being shared, particularly on the latest 3.4 release. Unfortunately, I was a bit disappointed from that perspective–the book does not have much information you can’t find in other books. However, what I do like about the book is that the author covers each use case in very clear, step-by-step instructions. And the book makes use of informative screenshots throughout–I could tell a lot of effort went into that.

The biggest thing missing from the book, in my opinion, is the complete lack of coverage of the Share client. Share has been available since 3.0 and has been the client of choice (over the old Explorer client) for at least a year now, maybe longer, so it is time for authors to shift from Explorer to Share when covering the platform.

Leaving Share out means that some topics, which are most commonly used in Share, get left out as well, such as the Alfresco FTS syntax and “linked rule sets” to name two. But, perhaps more importantly, it means that readers who want to follow along have to use the old client even if their organization is primarily using Share. And, it means there is still no definitive guide available for those who want more technical information on how to customize Share. (As a side-note, I’ve heard one is in the works–I hope the authors of that book will delay publication until they’ve had a chance to incorporate the changes in Alfresco 4 because a lot of work has been done on Share customization in Alfresco 4).

I found a few technical mistakes with the book and I’ve discussed them with the author. Mistakes happen in every book and I normally wouldn’t call them out in a review, but two are important enough to mention here:

  • At the bottom of 271 the author is talking about the name space associated with workflow jPDL. It says, “wf is the workflow namespace defined for jBPM, thus it is pretty fixed, you would use wf namespace prefix in your process definitions,” which is incorrect. This should read, “you would NOT use wf namespace prefix in your process definitions”. The way it reads currently it sounds like the recommendation is to use “wf” as the type namespace, like “wf:someCustomType”, which you should not do.
  • On page 337 it says that Alfresco is GPL, which isn’t accurate. It’s actually LGPL v3.

Still, overall I like the book. The coverage is broad enough to hit just about everything, and deep enough to get most people pointed in the right direction. It should be a good read for those new to the platform. The first four chapters are for end-users or administrators. Topics include things like installing, creating spaces, uploading content and setting metadata, securing content, searching, and creating rules. The author then moves into more technical topics like exporting content, using the node browser, and managing users and groups. The middle of the book is a bit more developer-oriented: Customizing the Explorer client, extending the content model, writing JavaScript and web scripts, and creating and deploying workflows.

One of the last chapters in the book is on integrating Alfresco with Microsoft Office. I thought it was strange that the chapter didn’t mention how to install and configure the SharePoint Protocol module and instead chose to cover the older Office plug-ins.

Bottom-line: If you are new to the platform and are looking for step-by-step instructions for implementing a variety of use cases in Alfresco, grab a copy of Alfresco 3 Cookbook. If you are an experienced Alfresco developer looking for deeper discussions, or you need help with Alfresco Share, look elsewhere.