Authors: Jamie Kurtz and Thomas Besluau
Aimed at: Programmers wanting an intro to Drupal
Reviewed by: Kay Ewbank
A book that proposes you should save time and money by writing complex applications using Drupal. It seems like an interesting idea.
Drupal is an open source content management system (CMS) that is the second most used of all CMS packages. Only WordPress, which isn't really in the same league in terms of potential functionality, beats it in popularity. While it is best known as the development environment for websites, it can be used for creating other applications, and this title aims to show how.
First the bad news about the book; despite being titled “Pro Drupal as an Enterprise Development Platform”, there is no code in the book. The authors put forward the way Drupal can be used for developing enterprise line-of-business applications so that you achieve the majority of your development without writing code.
The book starts with a chapter discussing the way software development has changed, how expensive it is to develop applications from scratch, and how there has to be a better way. You don’t need to be psychic to work out that the ‘better way’, at least according to Kurtz and Besluau, is to use Drupal. Having convinced you (or maybe failed to convince you) of their viewpoint, in the next chapter they go on to introduce Drupal. The important thing is that Drupal can be used to work with all kinds of enterprise business data; storing it using the CMS, indexing it and searching the data. Because of the popularity of Drupal and the very large number of users, a lot of developers have created add-on modules for specific purposes, and this means that most of the time you can find a pre-written module for whatever element you need in your app. Well, that’s the theory anyway.
The rest of the book uses as its example an app for a restaurant that lets people view details such as the menu, lets the managers carry out data maintenance, and ties in Google maps and analytics. I felt this was a bit too mainstream website when the book aims to show how any LOB business app can be developed, but it does have the basic elements you’d want in any app. Chapter 3 concentrates on the business application fundamentals of content types and the Drupal Features Module that is used to manage all the configuration settings you make.
The next chapter looks at ways of implementing the ways applications behave using views, rules, triggers, conditions, and action loops. All these are implemented using pre-written Drupal modules, as are the security elements covered in the next chapters which look at standard security concerns when securing your application. The first chapter in this group looks at the overall things you need to do for securing an app such as authentication, handling passwords, login protection, roles and permissions, and auditing. Two more chapters look in more depth at security, covering similar topics in more depth and how to use Drupal modules to achieve the aims.
Having cracked security, the next topic to be covered is working with content, specifically how to enter data manually and using scripts to import content in batches. Topics such as data validation and handling data revision are also covered. The next chapter looks at system configuration, including using the Google Analytics Module. There’s a good chapter on how to ensure a good user experience using themes and styles, and a useful chapter on using REST services from Drupal that walks you through setting up a REST service for Drupal, working with data, rule-based services, and using it as a service for mobile apps. There’s also a short section on what will happen in this area when Drupal 8 is released.
The final two chapters look at best practices with Drupal and how to convince your bosses that Drupal is a good idea. The best practices chapter had some useful information, but a lot of it was the sort of commonsense material a good developer would know already. The final chapter seemed a bit optimistic; I doubt whether you could really ‘sell Drupal in your enterprise’ on the basis of four and a half pages of generalizations.
Overall, this was an interesting book but I felt it rather missed its mark. The title and introduction make the claim that Drupal is more than just a way of designing websites, but then the examples and much of the text talks only about working with websites. Another thing that puzzled me was that while it’s fine to make the point that you can get a long way using off-the-shelf modules, sooner or later you’re going to have to write some code, and despite the ‘development platform’ in the title, there is no code in the book.
In summary, this is a good introduction to what Drupal does, but it stops short of giving you all you need to develop more than a website.