You are not logged in Log in Join
You are here: Home » Members » Phillip J. Eby's Zope Center » The ZPatterns Development Framework

Log in
Name

Password

 
 

Folder icon The ZPatterns Development Framework

A Database Independence and Framework Integration Pattern Language for Zope

Copyright

Copyright 2000, 2001 Phillip J. Eby and Tyler Sarna - All Rights Reserved. This software may be used, modified, and distributed, under the same terms as Zope itself.

Upgrade Notice

If you are upgrading from an earlier ZPatterns release, please read the CHANGES.txt file for important information about updating.

ZPatterns Introduction

The ZPatterns product provides a variety of base classes and frameworks for Zope product and application development. Some currently available patterns include:

PlugIns
A framework for Folder-like objects ("plugin containers") to have management tabs ("plugin groups") that hold collections of objects ("plugins") supporting a particular collaboration interface ("plugin kind"). (Note: the PlugIns pattern implementation is now also available as a seperate package, but is bundled with ZPatterns for your convenience.
SheetProviders
A framework for providing database-independent property sheets to objects. SheetProviders are PlugIns which Racks and Specialists use to give their contents PropertySheets, without any objects (besides the SheetProviders) needing to know how the property sheets are implemented or where they are stored. One can create SheetProviders that store data in literally any kind of database accessible by Zope.
AttributeProviders (New in 0.3.0)
Similar to SheetProviders, but for individual object attributes.
Racks
A framework for database-independent collections of objects. Racks retrieve or store objects. They are SheetProviderContainers and AttributeProviderContainers, and thus allow for property sheets and attributes to be added to their contents from another database. The default Rack implementation stores all data in the ZODB (as do the default "provider" implementations), but the framework code is documented for easy subclassing to create alternative storage methods.
Specialists (New in 0.3.0)
A way of organizing your applications around object interfaces and class-level services. (Known as Implementors in the original RIPP Model)

Currently, these patterns are used by the LoginManager product which uses Rack as a base for UserSources, PlugIn as a base for LoginMethods, and Specialist as a base for LoginManager itself. Thus, by creating Attribute or Sheet Provider objects, you can extend LoginManager's capabilities, as well as the capabilities of any other systems built on Racks and Specialists.

Installation/Setup

To support AttributeProviders and other useful features, ZPatterns 0.3.0 includes a C extension which must be built before the product can be used. After unpacking the ZPatterns product, you will need to build this extension using the included Setup file in the ZPatterns directory. If you are not building ZPatterns in the lib/python/Products directory of your Zope installation, you will need to edit the Setup file to reflect the correct paths to the include files it wants. Please follow the standard procedures for building a Python module on your platform. (On Unix-ish systems, this usually consists of copying a Makefile.pre.in to the directory, then doing a make -f Makefile.pre.in boot followed by make.

Once the extension is built, restart Zope to install the product. Then, if you are upgrading from a previous version of ZPatterns, follow the upgrade procedures in the CHANGES.txt file to update classes and instances of objects based on the previous version of ZPatterns.

Where to Find Other Documentation

You can now use the Zope built-in help system to read LoginManager and ZPatterns documentation, or see the Products/ZPatterns/help directory. At present, only the TODO and CHANGES files exist.

Please also see the ZPatterns Wiki

Also, the ZPatterns are based on the RIPP pattern model presented by Phillip Eby at the Zope Track of IPC-8. There is a PowerPoint presentation of that talk available. (Also available in HTML format )

 Title   Type   Size   Modified   Status 
 0.2.0 Edit object Software Release   2000-04-12 published
 0.3.0 Edit object Software Release   2000-05-06 published
 0.4.0 Alpha 4 Edit object Software Release   2000-06-25 published
 0.4.0 Alpha 5 Edit object Software Release   2000-07-13 published
 0.4.2 Alpha 2 Edit object Software Release   2000-09-14 published
 0.4.2 Alpha 3 Edit object Software Release   2000-09-19 published
 0.4.3 beta 1 Edit object Software Release   2000-10-18 published
 0.4.3 Beta 2 Edit object Software Release   2000-11-09 published
 ZPatterns 0.4.3 patch 2 (Zope 2.3.x required) Edit object Software Release   2001-07-23 published