Project hosting provided by:
|
 |
Background
CH3ETAH started out as a simple GUI for automating code
generation, especially template based generation. It
was born out of frustration
of trying to use some of the one-size-fits-all solutions
for object/relational mapping and then from the frustration
of trying to use batch and scripting files to control
custom generation.
What I wanted was the best of both worlds: the power
and flexibility of custom, metadata-based code generation;
and the simplicity and productivity gains of pre-packaged,
GUI-based application generators. What I wanted was a
system that would let me write templates in whatever
language I wanted, for whatever metadata I wanted, and
package them in a way that would make them easier to use
the next time around.
How does it work?
CH3ETAH allows you to write templates for code generation
and package those templates together with their metadata
requirements. You can then reuse one of these packaged
templates by simply providing the required parameters
and metadata.
That part probably sounds similar to alot of other code
generation solutions that allow you to generate based on
metadata. But most of those solutions either just do
one-off generation, or require you to control active
generation with batch files. That's where CH3ETAH steps
in. CH3ETAH lets you organize all of those templates and
metadata into a code generation project.
Possibly the easiest examples of such a package is for
object/relational mapping. Interacting with data stored in
relational databases can easily account for 50% or more of the code
in many projects. This code is also horrendously repetitive and
error-prone. By automating this and other parts of our projects,
we've seen significant productivity gains, as well as higher
consistency and quality (i.e. less errors).
Following is an animated demo of CH3ETAH in action.
This demo is of version 0.1.20050610 and a lot has changed
since then. Hopefully we'll have an updated demo soon.
To see the demo click
here.
You can also check out the "Getting Started" tutorial
here.
|
|