Most applications consist of a big number of model- or so called domain-objects. Building different views, editors, and reports; querying, validating and storing those objects is very repetitive and error-prone, if an object changes its shape frequently.
Magritte is a fully dynamic meta-description framework that helps to solve those problems, while keeping the full power with the programmer in all aspects. Moreover since Magritte is described in itself, you can let your users modify the meta-world and add their own fields and forms without writing a single line of code.
Metacello new
baseline: 'Magritte';
repository: 'github://magritte-metamodel/Magritte';
load
ConfigurationOfMagritte3
from http://smalltalkhub.com/mc/Magritte/Magritte3/main/. MagritteForVisualWorks
from the Cincom public StORE.Christoph Lamprecht ported Magritte to Perl.
In you project Baseline or Configuration definition, add to the spec:
baseline: 'Magritte'
with: [ spec repository: 'github://magritte-metamodel/magritte:v3.8';
loads: #(Core) ];
This snippet uses v3.8 release version, remember to change the release version to your needs. See BaselineOfMagritte for other groups to load beside of 'Core'.