[Zope-CMF] Development Philosophy & Architecture Questions

Shane Hathaway shane@zope.com
Tue, 01 Apr 2003 13:11:17 -0500


Norfleet, Sheppard S. wrote:
> When should one create a tool as opposed to a portal content type?  Other
> than the obvious difference in the nomenclature one could write in code in a
> portal content type that should be placed into a tool instead; for instance
> version control for content types.  Should one create a new version
> controlled document(file) content type, or make a tool that performs version
> control on an existing type.

Basically, put functionality common to several content types in a tool 
rather than in a base class.  To give you some perspective, Zope uses a 
large hierarchy of base classes to implement functionality that spans 
content types.  But such a large hierarchy has become a difficult burden 
to bear.  So CMF moves common functionality to tools instead of base 
classes.

CMF doesn't always obey this rule because of constraints imposed by 
Zope2, so CMF has some base classes for content.  But Zope3 is meant to 
solve these issues and remove all the mix-in cruft.

Shane