Recently, I was approached by Packt publishing if I would be interested in reviewing the Alfresco 3 Cookbook - quick answers to common problems. I like to cook, so I agreed. In short; I expected to cook, stirr and fry, but got a thorough guided tour through the ingredients and the kitchen.
The Cookbook is a great book if you’re a starter on Alfresco. I see many people start out with Alfresco and get overwhelmed with the possibilities. – This is their book.
It takes you by the hand and let you install Alfresco and the supporting tools needed. Almost all features of the Alfresco Explorer interface as well as many of Alfresco Share are described. I cannot help but having a glance at Munwar Shariff’s Alfresco Content Management Implementation book, also on my shelf. There are some similarities. Next to the ‘picks and clicks’, the Cookbook also describes the first steps in configuration, the datamodel, JavaScript API (Sample chapter!), Webscrips, Freemarker and JBPM Workflow, configuring fileservers and using the Sharepoint protocol. For a starter book, it covers it all, and you can follow the guides. For a brief overview of the contents in sections, see this great review, and this one from Dick Weisinger (FormTek) is valid as well.
Alfresco provides a lot of functionality, and some feature can be realized on more than one way. If one knows the limitations, one can make the right design decisions. Certain choices allow one way of working, but can block another. In my opinion the book lacks some reflection on the subject matter. Some examples:
- Full text search is mentioned, but I would love some more detail. For each content item, Lucene indexes a maximum number of terms. If one stores big documents, this can be a point of attention (with a penalty on performance?) (lucene.indexer.maxFieldLength).
- The concept of a Tag Scope is explained very briefly, but I had a different understanding than the explanation on the Wiki. From the Wiki I learned a tag scope is defined by setting an Aspect, but this was not mentioned at all in the Cookbook.
- In the chapter about WebScript a Freemarker templates is described. The feature of JSON encoding (jsonUtils.encodeJSONString) is not mentioned at all, although it should be used at every template in my opinion, since most of the time one cannot control the content of many attributes.
- The same for Freemarker and defaults. Having a default value in a string prevents having a null-object to apply a method onto (and fail, since Freemarker is allergic to undefined variables)
- Why pick one mechanism over the other ? (I switched from executing a Freemarker to search and process into JavaScript once because JS allows Lucene to search in a particular store (Workspace versus Archive). Freemarker on the other hand can easily determine if a given property is a date, string or boolean.)
- What are downsides from working in the interface only? Instantiating space templates containing Rules can be a bad idea from a management perspective since there become many definitions of the same. Policies and behaviours can be an alternative, or defining the logic at another level in the Spaces structure. These are design decisions that can make or break a project.
- Rules can be a pain when having a test, acceptance and production environment. How to migrate from one environment to the other, especially when the repository is fully stuffed? At what point are policies and behaviours better friends?
- Workflow can be used to automate stuff. But ‘too much’ code in a workflow is a bad idea. What are alternatives? Should you use adding/removing aspects or property values as a trigger? Should you build custom Script objects implementing the business logic?

great review, thanks a lot !
I read the cook book written by snig bhaumik, and to my surprise..it is just a copy paste of all the forums and alfresco tutorials. In the worst case i have also found the the lines with a certain amount of mistake in the forum was exactly copy pasted.(including the errors also). Dont know how a big company like packtup publishes such articles without having expert review and just make bad reputation in the company.
First of all, thanks for your feedback.
I do see a purpose for this book though. Especially Alfresco beginners have a nice set of recipes to start working with the product, all nicely grouped together that can be read on the couch, in the train or the plain. in my opinion the content of a book does not have to be fully unique, new and non-existing. Bundling existing knowledge has some value too. Let’s face it, the product is in the market for over 5 years now. The repository part (lets say all-but-Share) is quite stable for some time.
Personally I am looking forward to the announced (?) book about configuring/customizing Alfresco Share….
yes i agree, with you it is just a begginer guide, in fact i know this guy Snig bhaumik, who is not author but a copy paste master.
I don’t know Snig Bhaumik, but his book certainly serves a purpose.