Having been exposed to the Zope/Plone environment for a couple of years now and seen the release of Plone 3.0 as quite a significant turning point in the road map I thought it time to get up-to-speed fully with some of the new features and technologies being exposed.
Picking up a copy of Martin Aspeli’s Professional Plone Development book (PacktPub) where Plone 3.0 is the primary focus seemed to be a good starting point, and I wasn’t to be disappointed.
Following an introduction and background of Plone the book starts straight into a case study which persists through the proceeding chapters. The idea of a single case study is a good one and allows you to see how an entire project can be built up using the Plone/Zope/Python platform and is introduced to the reader in the form of a list of project requirements (and references to jump ahead if only particular elements interest you.)
By Chapter 3 you are guided into setting up your development Plone/Zope instance and giving background on concepts that may be new to the reader such as Buildouts and Eggs. The Chapters then merge straight into developing the products to meet the case study requirements.
Although, as mentioned previously you could jump to just the section you were interested in, this book really comes into its own when used as a complete guide through the project and is followed through page by page, which is how I feel I have gained the best benefit.
Chapter 12 particularly drew my attention due to its look into Relational Databases, a topic which has required me to integrate with since my early Plone 2.0.5 deployments. Rather than the author pushing the concept of using the ZODB for all data, the use of external Relational Databases is investigated and the best methods for incorporation stepped through.
Nicely, the last few Chapters in the book discussing real world deployments of the platform as a series of next steps following the development stage of a project. Plone has been criticised for poor performance in the past, but Plone 3.0 brings real improvements in this area and Performance and Benchmarking are covered well over Chapters 16 to 18.
In summary, this book is not for the newbie to Plone or content editors (some earlier Plone books would be the best start here), but is an excellent resource to bring yourself up-to-date with the Plone 3.0 way of thinking if you have some previous development experience of Plone. The importance and value of this book is also emphasised by the lack of off-line publications in this software area, although the on-line support community is superb (and very active) it is very welcome to add a book like this to your shelves.