ZCase is a custom framework for creating Zope products with files in the filesystem. The other way to create Zope products is through the web. In comparison to through the web products, filesystem products are more powerful and flexible, but more difficult to build. ZCase elevates product development from programming to computer added modelling, thus removing the prohibiting overhead.
The framework consists of a domain specific formalism ZProduct to create detailed product models and a suit of related transformations to generate complete code.
Current release 0.4 can be downloaded here.
Version must be 0.2.2. You can download a distribution for your platform at the AToM3 site.
Note: distribution version 2.2 is version 0.2.2 (or the other way around)
ZCase was tested with python 2.1.1 and 2.4.1. Versions in between should work too.
Familiarity with AToM3 and knowledge of Zope and Zope products is required.
Just start modelling and constraints and validation rules should guide you towards a valid Zope product.
Screenshot : A model of a container product
For a quick start, load model Poll_ZProduct_mdl.py
from the
<AToM3 home>\samples
folder. This is a ZProduct model of the demo product whose development
is step by step described in The Zope Developer's Guide
(2.4 Edition, Chapter 3, page 33).
Further more, the same folder has models of a generic item and folder products, which can be used as basis for new products.
For more details, refer to the README
in the <AToM3 home>\mdl_ZProduct
directory.
Finally, every modelling construct has Help, which can be accessed so:
Clicking the similarly named button will validate a ZProduct model. A validated model means that the specified product fulfills Zope requirements towards products.
Screenshot : A validated model: valid and warning tokens can be seen
Note: this transformation does not verify if your product actually solves the business problem.
Clicking the similarly named button will start a transformation that
generates/updates two File objects with ids: <your product class name>
and __init__
.
Screenshot : The model is updated with files (the left top conner); generated code displayed
Note: This transformation is computation intensive: on a 3GHz Pentium4
computer, it takes about 20 seconds to update the sample container
product (see directory <AToM3 home>\samples
).
Clicking the "Generate Product Package" button will create a product
file structure in the code generation directory (default ZCase location:
<AToM3 home>\TEMP
). A report will be saved on canvas and shown to the user.
Screenshot : A report of a product generation
The product directory can be placed in the Product folder of a Zope instance.
I worked hard to ensure that you never meet one. However, if one or another way you end up with entities that look like ones from UML class diagrams, DO NOT save such a model over your previous version.
If you did, try to recover the previous version from a backup file that
AToM3 creates (and overwrites) before each save. The file name would be
the original filename with attached extension .back
.
Please submit a bug report.
I had to make some shortcuts. For example:
manage_options = ObjectManager.manage_options + Item.manage_options
registerHelpTopic()
method.ZCase is created by Andriy Levytskyy.
Please submit bug reports, feature requests and your questions via the SourceForge project page or email the project admin.