Submitted by Ty on February 3, 2002 - 12:12pm.
Introduction
I've just spent a few days with Beehive's The Book of Zope published by No Starch Press. Having never built a web application before, I was definitely part of the author's target audience. Beginning Zope users as well as experienced developers, however, have received equal attention in this guide on writing web applications.
Beehive's writers (see the Preface for the entire list of contributors) acknowledge that Zope may not be the web product for everyone. In fact, they cite two well-known proprietary web design packages in the introduction. They are mindful of Zope's limitations throughout the book, but they capture its strengths as a web application package, and as a content management system, quite well. I was equally impressed by the attention to editing that is often missing in most technical guides. Books written about software, and computing in general, have a short shelf life; editing the text is a time consuming task.
Here's a summary of the Table of Contents:
Table of contents
Chapter 1: Fundamentals
Chapter 2: Quick Start
Chapter 3: Navigating Zope
Chapter 4: DTML
Chapter 5: Working With Zope Versions
Chapter 6: Users, Roles, and Security
Chapter 7: Local Roles and Permissions
Chapter 8: Some Methods for the Role.py & User.py Mods
Chapter 9: ZClasses
Chapter 10: Working with the ZClass
Chapter 11: The ZCatalog
Chapter 12: Zope and MySQL
Chapter 13: Programming Zope: Python in a Jiffy
Chapter 14: Scripting Zope with Python
Chapter 15: Zope Products
Chapter 16: Debugging
Chapter 17: External Data Access
Appendix A: DTML and Built-in Attributes
Appendix B: The REQUEST Object
Appendix C: Source Code for the Website Product
Appendix D: Some ZCatalog Module Methods
Appendix E: Glossary
My point of view
The first three chapters of the book have enough basic information that nearly anyone reading them can navigate and operate the system screens. The core of the programming fundamentals for Zope is contained in Chapter 4 titled "DTML". Despite having only limited experience with HTML tags, I was still able to understand each of the examples with ease. If Zope is someone's first attempt at programming, this book will provide enough theory on redirection, looping, and the initialization of variables to make some sense of the fundamentals of coding in most languages.
The remaining portions of the text build on this early experience by explaining how Zope handles security and data integrity. What makes the book useful for both beginners and seasoned developers alike is the careful integration of useful technical "tricks" and Zope conventions that keeps the book interesting without falling into condescension. As the beginner gains an appreciation for how to build secure web applications, the novice- and expert-level programmer will appreciate the abundant shortcuts and automation techniques that fill every chapter.
Certainly all classes of developers will appreciate the way Beehive has attempted to capture all of the features of Zope in one book. There are chapters covering the fundamental elements of the system (Zope objects) and how to construct custom classes, modifying existing classes, and indexing them all with Zope's cataloging and internal database systems. The authors round out the book by providing a brief explanations on establishing external database connections to Zope, how to write Python scripts (for internal methods and external modules), debugging, external protocols, and finally a chapter dedicated on how to create Zope products. The latter topic covers how to create products (methods, modules, etc.) so that they function properly when used by other Zope developers. Creating a product for your own use is good, creating something that "plays nice" with someone else's system is even better.
The appendices encompass the reference sections that support the main text. They provide both beginner and experienced programmer with an abundance of useful technical information. There are generous sections on DTML, the REQUEST object and its requirements, an extensive outline of a website product for Zope, and a listing of common ZClass modules.
Summary
The chapters in The Book of Zope are mercifully short. The whole book could be read in one day, two days if the reader were to work through all of the examples. I took a few days to work through the material, taking about a half-hour to cover each section. The examples gradually become more complicated (building on the reader's past experience) as the book progresses, but at the end even a beginner should be able to produce a fairly polished product from this neatly compressed content management system. If you are an established database programmer, or a proficient Python programmer, this is one open source tool that you should spend a day with.
Book cover