Sunday, October 3, 2010

Review: Plone 3 Intranets by Víctor Fernández de Alba

Plone has great potential for intranets, so it's a good thing there's a book dedicated to this application. PacktPub have a whole line of Plone books, and this is one of the latest on the family.

In this review, i'll try to give an idea of what the book is like. I also have a wishlist, I hope that the book does this:

* expand on the features which are required by an intranet;
* compare Plone to some of its rival systems in the context of these features;
* show how Plone can be used for an intranet: what settings to use, what add-on products to install;

There are some areas where your reviewer has taken the liberty to add a note of his own.
Plone 4 Intranets?

Reviewer note:

When building an intranet from scratch now, i'd recommend doing it in Plone 4.0 (or 4.1, even): Plone 4 is faster and has a prettier user interface, to name but a few advantages.

Fortunately, almost all of this book can be applied to Plone 4 as well. Notable exceptions are the add-on products mentioned, some of which haven't been updated to Plone 4 yet.

Introduction to Plone (ch. 1)



The book starts by introducing Plone, and discussing its place in the CMS market. Python and the ZODB are briefly introduced, as well as the Plone community.

Key intranet features are:

* Usability
* Security
* Collaboration tools
* Productivity
* Content life cycle

It is briefly sketched how Plone implements these features.

Reviewer note:

The comparison with other systems could be extended.

This chapter also points out that the difference between an intranet and a public website, which has traditionally been very pronounced, is fading.

The "Generic Plone" chapters



There are several chapters for introducing people to Plone. While these are indispensible for the beginning Plone users, i won't discuss them in depth here:

Getting started (ch. 2)
About installing Plone.
Managing our content (ch. 3)
Covers basic Plone content management. More advanced features are postponed (see chapters 8 and 11).
Configuring our site (ch. 4)
Covers the configuration options for power users.
Basic Product Development (ch. 10)
A brief introduction.
Theming our Intranet (ch. 12)
A brief introduction.

Managing Users, Groups, Roles and Permissions (ch. 5)



Managing users in an intranet might be different than in a situation where Plone is used as a Web CMS, so a chapter like this has my special attention.

In an intranet, there's a good chance that you have many users logged in simultaneously. The book says this about that:

"Dealing with more than fifty users increases the administration overhead exponentially (...), if we are going to administer more than fifty intranet users, then we might have to start thinking about using an external user repository database."

In practice, most intranets already have an authentication server (Active Directory, OpenLDAP) which you can use (discussed further in chapter 13), so it's not that big an issue.

Managing workflows (ch. 6)



Explains how default Plone workflows work. For an intranet, this is also a particularly interesting feature. This chapter has graphs of the standard Plone workflows (the most interesting being, of course, the intranet workflow). It also shows how you can use add-on products to help manage your workflow settings, and adds a "Best practises" list.

Securing our intranet (ch. 7)



This chapter discusses why you might want to use global roles or local roles, and how to implement both cases. It shows an example policy, and shows how that might be implemented. It touches lightly on the subject of creating private sections and workgroup areas (although this could use some more explanation).

Using Content Type effectively (ch. 8)



Using the right content type for the job. Also expands on Collections, the Table Of Content of a Page, Next/Previous navigation in a Folder, Presentation Mode, slide formatting. Choosing third-party content types.

Note: This chapter is available as a preview at https://www.packtpub.com/sites/default/files/9089-chapter-8-using-content-type-effectively.pdf

Intranet add-on products (ch. 9)



Reviewer note:

I'm missing the part where their differences are discussed. When would you prefer one add-on over another one?

The book discusses products in these categories:
Calendaring and extended Events

Plone4ArtistsCalendar and vs.event.

Reviewer note:

I myself recommend using Plone4Artists to beginners, as i've only heard hard luck stories about it.

Plone 4.1 will ship with plone.app.event, which is based on the work from vs.event and greatly improves Plone's calendaring capabilities.

Form generators

Discusses PloneFormGen.

Reviewer note:

PloneFormGen is a rock-solid product: Well maintained, and it's been updated to work on Plone 4 as well.

Blogs

Quills (Products.QuillsEnabled), Scrawl, PloneBoard (and how to adjust it to intranet use).
Polls and surveys

Discusses PlonePoPoll, PloneSurvey.
Document files management

Quoting the book:

"Eventually, our intranet will contain a lot of files."

Reviewer note:

If this is the case, i recommend using Plone 4, which uses stores individual files on the filesystem instead of putting them all in the database file. This makes for faster startup, less memory usage, better scalability. (You can also get blobstorage to work in Plone 3.)

When people upload binary files, you can still search them using Plone's excellent search facility. Add-on products to do this are discussed.

Content Rules, Syndication, and Advanced Features (ch. 11)



Discusses these features which may be especially useful in an intranet. That's especially true of Versioning, which is also discussed here.

Versioning is especially powerful because you can see a line-by-line difference between two versions of a Page.

Reviewer note:

Storing documents in a binary format like Word, OpenOffice or PDF will make Versioning a lot less useful: All you can see is who uploaded what, and when. Storing documents as Pages will give you the full revision history. (This suggestion may not be feasible in all situations, for example when you want easy offline modification.)

Deploying our intranet (ch. 13)



There are lot of buildout tips and tricks here, quite useful. It also contains a link a prominent Plone developer's web log entry about the subject.

The thing that makes our intranet different from any other huge web site, is that we want to use external authentication. This chapter also shows how to install and configure plone.app.ldap.

Wrap-up



I had hoped for a more in-depth comparison with other systems. That said, this book does a good job at pointing out Plone's strengths in an intranet context, being:

* In-place editing (as opposed to "back end" interface)
* Hierarchical structure
* Workflow
* Fine-grained authorization control (Permissions system)
* Security (Python - Zope)
* Integration with existing authentication solutions (PAS)

The book successfully shows what to consider when setting up an intranet, and how it may be implemented.

Afterword



I have made a point point of not reading others' reviews beforehand. Having done so now, i think i too should mention i've received a free e-book from PacktPub, and am likely to receive another title of my choice.