Implementation

by Russ Ferriday last modified Feb 07, 2010 01:16 AM
Overview of the components we will look at in following sections

"Generalization, generalization but no over generalization" is the main point. We want to make an implementation that can be used by others trying to do something close to what we want to do, but not exactly the same. But be aware that too much generalization defeats the object. The trick is to find the balance. Let us know if you think we have done that with TreeWalker

Previously we used inheritance, mixin and multiple inheritance mechanism to generalize/specialize the behaviour of a class. This meant to organize the class into a hierarchy, generalize in a bottom-up approach and and specialize in a top-down approach.

In the Zope 3 CA, implementation will be different and will use different components:

  • The interfaces
  • The adapter
  • The event
  • The ZCML configuration
  • The browser view

This will help to separate the different functionality into different components.

Five

Homepage: http://codespeak.net/z3/five/

Five is a Zope Product which has been created to help developers move step by step from Zope 2 to the Zope 3 CA. Without it, Zope 2 and Zope 3 would be two totally separate worlds, and it would be impossible to migrate between them.

Five is included in the recent Zope 2.8 (Five version 1.2) and Zope 2.9 (Five version 1.3). Five is really close to the Zope 3 style and allow us to use Zope 3 interfaces, adapters and events inside Zope 2 without having to install Zope 3.

Five isn't widely documented, unfortunately, because Zope 2 developers aren't aware of the power that Zope 3 could provide them and therefore only few projects use it. We are trying to break through this and push things forward but we can't be the only ones doing it, that's why we hope this tutorial might help you to get into Five and Zope 3.