[Zope-CMF] CMFBoringContent.

Joachim Werner joe@iuveno-net.de
Sat, 4 Aug 2001 17:31:31 +0200


> Comments are appretiated :)

Hi!

I am known to be very critical about the CMF. And Erik's excellent how-to
gives me the opportunity to point at some weaknesses I see in the CMF
architecture:

Let's compare the procedure you describe in the how-to with the procedure of
adding a non-CMF content type. The result:

"Normal" Content Type:

- Create a folder in "lib/python/Products" and enter the folder
- Create an "__init__.py" with some rather easy-to-learn registration
information
- Create a "productname.py" file with all the stuff needed to describe the
content type
- create a www folder with all the icons and a dtml folder with all the
default DTML
- restart Zope

CMF Content Type:

- do all of the above, only that the dtml folder is called "skins" and that
you have to use some new, specific syntax to comply with the CMF framework

Now the additional work starts:
- register to portal_types
- check registration to workflow and change if necessary
- register portal_skins

All the additional work is not automated though all the necessary
information would be available. Also, most of the actions are error-prone
and some of them could break the CMF if not done properly. E.g., I can write
any icon name in the portal_type registration, regardless whether the icon
exists or not. Many things are just bound by name and can be overloaded by
accident. Why not add new content types automatically when they are
installed, or if that is not desired, make them an option that can be
activated/deactivated in the portal_types tool?

So compared to the plain old Zope, I don't get more comfort and ease of use,
but more things do learn and do wrong. All of this in exchange to some
rather basic functionality like basic workflow support or a slightly more
intelligent catalog.

I know that's a rather biased opinion, but I am still waiting for somebody
to explain me what the CMF can really do to make content management
application development easier instead of just "less flexible" ...

Cheers

Joachim