Tuesday, August 25, 2009

Liferay Portal 5.2 Systems Development - Book review

Recently Packt Publishing Ltd sent me a copy of the new book from Jonas X. Yuan untitled "Liferay Portal 5.2 Systems Development" for review.

In this post, I would like to give my feedback including some input from my colleagues who have read parts of this book.

I personally read all the 12 chapters which cover a large variety of topics related to developing portal application with Liferay 5.2 including JSR-286 portlets, EXT and SDK, JSP/struts based portlets, portal pages management, tools, CMS and WCM, personalized community, Layout templates and themes, Inter Portlet Communication (IPC), collaboration features of Liferay, Staging, publishing and APIs.

Reading the book from the front to the back is probably not the best way to take full advantage of the content. I would rather recommend to use it as a reference to Liferay 5.2. application developments.

This book is particularly valuable if your project includes high level of customization, using Liferay Extension Environment and or the integration of Content Management System (CMS) capabilities, as well as Web 2.0/social and collaboration features. The content of the book is consistent with Packt publishing practice to "focus on producing cutting-edge books for communities of developers, administrators, and newbies alike".

If you are an architect, a graphic designer, developer or a build manager, you will find ample step by step configurations and recommendations, code sample, tips and best practices on developing portal applications with Liferay 2.5.

Sometimes, the content is so rich with code snippets, variable names and configurations paths, that the mix of various fonts makes the text a little bit difficult to read, or at least slows your reading. Fortunately, the granularity of the chapters is fine enough that you can jump directly to a very precise topic. The index is also very handy.

I like the fact that the author combine best practices that are specific to Liferay (e.g. Liferay has a property called theme.images.fast.load for performance optimization) and general good web site programming practices (e.g. the use of CSS sprites and the placement of javascript code).

The fact that most of the book describes the development of a specific and complex portal application (Sesame Workshop) is a good thing since you can see how every pieces of the solution are put together. You can even download code sample from Packt Publishing. However, additional examples would have been nice too. It would have been also interesting to see alternatives to JSP and Struts MVC framework such as development based on JSF, RichFaces and/or ICEFaces.

The chaper 9 on Layout templates and themes is very useful, although starting with EXT rather than the Liferay SDK is quite harsh. Also a discussion on the development process: how graphic designers and developers can work more efficiently together would have been very useful in this chapter.

Overall I highly recommend using this book as reference book if you plan or are involved in a portal project based on Liferay 5.2. Even though your overall configuration/architecture might be different, you will find practical tips and solutions to integrate and customize most features of a portal application.

If you are new to Liferay in general (developer or graphic designer) and want to learn the potential of the platform, you can also definitively use this book for specific topics.