[Zope-dev] Using Zope for Groupware/Messaging applications

R. David Murray bitz@bitdance.com
Sat, 17 Feb 2001 18:53:05 -0500 (EST)


On Sat, 17 Feb 2001, Doug Hellmann wrote:
> I've yet to see any documentation which sufficiently explains what
> ZPatterns is and how to use it for me to consider it in any of my
> projects.  I've read the wiki pages and I just don't get it.
> 
> Where should I be starting for enlightenment?

Well, if you've read the Wiki, there really isn't anything else to
read other than the Coad book for general object design background.

I "figured out" zpatterns by starting to build a store using 
EMarket 0.2.0, which is ZPatterns based.  It didn't take very
long before I started to really appreciate the power of the ZPatterns
approach.

Fundamentally think of it as doing the object design of your system
without worrying about where the data is going to get stored.

If you want a nuts and bolts capsule description, think of it as
providing you the ability to easily make just about anything about
your objects computed.  That is, when any part of your application
goes to access one of your objects, there is code that can get
triggered to do all sorts of Cool Stuff in order to build the object
from arbitrary data sources.  This means you can do things like
have (my example) a Paradox database of books, authors, and a
books-to-authors map, and have Author and Book objects in the system
such that a Book has a list of its Author objects and the Author
has a list of its Book objects, all in about 20 lines of ZSQL and
skinscript.  Plus I have a 'long description' field that comes from
another database table, and thumbnail and full sized images that
are stored in Image objects in the ZODB.  All this stuff is seemlessly
assembled into Author and Book objects by, like I said, about
20 lines of the skinscript and zsql.  The rest of the app has no
idea how those objects come to be or where the data comes from
(or goes to).

You really have to try it to understand, though, I think.  It's not
as hard as the discusions on the mailing list may make it seem.
The learning curve is somewhat steep, but also rather short, at least
for the wow-this-is-powerful stuff (I'm still learning the subtleties).

--RDM