Zope

Best described as a "web Application Server for Python".

This Wiki is in Zwiki, which runs on Zope. Running on zope-space that I'm renting (not dedicated hardware).

Supports a text format called Structured Text.

A key product for Zope is the ZopeCMF.

I've been unhappy with the zope books I've read/browsed. Probably better off with the http://www.zope.org/Documentation/Books/ZDG/current/ |developer's guide Jeffrey P Shell recommendations (Jul'03):

  • I try to do a lot of "Product" based development, and I strive to do smaller components with a clean inheritance model. I think they key is just doing smart Python development. Or just smart OOP development, meaning - smaller classes, lots of collaborators. My primary critique of Zope 2 has long been its inheritance tree mess. Zope 3 aims to fix this.

  • Since Products are written in clean Python, they're a bit easier to do unit tests. Instead of testing the web side, you test the Model (or at least, the Model parts), preferably by aping the Controller parts (the methods that will interact with web forms). The CMF has a large body of unit tests, none of which is dependent on a web setup or even a persistent ZODB connection. It takes some work to set up a test harness, but it can be done. There should be enough examples floating through the Zope and CMF core to provide examples of how to do that.

  • For testing web stuff, I know they've come up with some Functional Tests for Zope 3. Richard Jones has released Web Unit (I believe) that can set up web requests and test responses.

  • ZPT is a heavily established Zope 2 technology. It's been in the core since Zope 2.4 and works great. I love it. I can't imagine any other way of templating. (Template System)

  • Formulator product (does this work happily with SQL databases?)

  • I would recommend avoiding ZClasses. I'd also get familiar with the OFS package, particularly the differences between OFS.SimpleItem.Item (not persistent) and OFS.SimpleItem.SimpleItem (persistent); learn Object Manager; learn the classes that make up a Folder; and become familiar with Class Security Info (should be documented in the Zope Developers Guide). This is useful even for non-CMS related stuff. I'm making applications now out of fairly simple persistent objects that load all their page templates off of the file system (out of the product) instead of the ZODB. The objects in question are the View/Controller pair of the application and then talk to other classes and objects inside the Product to do validation, LDAP communication, etc. In total - there are five objects that are put into the ZODB that make the application work.

Docs to help learn:

  • [the](http://www.zope.org/Documentation/Books/Zope Book/current/index_html) Zope Book, available in print and in free HTML. Seems a little content-mgmt focused to me

  • Nov'02 article - a bit Lin Ux-focused

  • links to intro dev pieces

  • [process](http://www.zope.org/Members/k_vertigo/Stories/Team Zope) recommendations - stay away from the ZMI for any real development.

  • Jeffrey P Shell on the Zope inheritance tree

Mar'02 [tutorial](http://cvs.zope.org/checkout/Packages/Job Board Ex/Tutorial.html) on building "job list/board" app with Zope3 - business classes vs ZPT, etc.

Basic intro/weird notes:

  • strange restriction on spacing for 'dtml-let' - 'dtml-let value = "expression"' does not work, but 'dtml-let value="expression"' works fine

One of the big questions when using Zope as an application server instead of just a content management system is which kind of custom code to use: http://www.google.com/search?q=zope+products+%22external+methods%22+zclasses+%22python+scripts%22&hl=en&lr=&ie=UTF-8&oe=utf-8&start=0&sa=N |search

SQL interaction (using an RDBMS instead of ZODB)

  • Ian Bicking isn't happy with it

  • when you want to pass the 'REQUEST' bits as an argument, plus some other variables

Zope support via email

http://www.zope.org/Members/itamar/[[Corrupted Z O D B |Recovering Corrupted Data.fs]] Debugging, testing

import zLOG zLOG.LOG(subsystem, severity=0, summary, message)

TextPad http://www.zope.org/Members/johanc/Tips_and_HowTos/textpad_tooltips_howto |tips Archetypes framework for developing new content types


Zope3 will have a new architecture. It's being done in pieces. Here are some links:

OpenFlow --2003/09/08 02:33 GMT
a very interesting zope product is openflow -- Josef Davies-Coates


Edited:    |       |    Search Twitter for discussion