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 release of ZPatterns, please read the
  "CHANGES.txt":Help/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
  components include:

    DataSkins (New in 0.4.0) -- A way to use the features of RackMountables
    (pluggable data and event handling) with objects stored in regular ZODB
    containers.  DataSkins just need to be under a "folder w/customization
    support" that contains Customizer objects.

    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")

    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":http://www.zope.org/Members/tsarna/LoginManager
  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
  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":Help/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 these files exist:

	"TODO.txt":Help/TODO.txt -- Bugs, future features, etc.

	"CHANGES.txt":Help/CHANGES.txt -- Changes since previous releases, 
        upgrade notes

  Please also see the "ZPatterns Wiki":http://www.zope.org/Members/pje/Wikis/ZPatterns/

  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":http://www.zope.org/Members/pje/RIPP_Model.ppt available.  (Also
  available in "HTML format":http://www.zope.org/Members/pje/RIPP_Talk_HTML )
