-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Kalliope is a set of C# libraries used to read and write ORM2 files. Kalliope is used in Starion Group products and projects to perform code generation. The Kalliope libraries are distributed with the Apache License 2.0.
Object-Role Modeling (ORM) is a fact-oriented approach for modeling, transforming, and querying business domain information in terms of the underlying facts of interest, where all facts and rules may be verbalized in language readily understandable by non-technical users of those business domains. Fact-oriented modeling is attribute-free, treating all elementary facts as relationships. For information modeling, fact-oriented graphical notations are typically far more expressive than other notations. Avoiding attributes in the base model enhances semantic stability and populatability, and facilitates natural verbalization.
- Install the Kalliope.OO nuget in your solution
- Use the
OrmModelLoader
to load an ORM model which returns theOrmRoot
- Use the
ClassGenerator
to convert the ORM model into an Object Oriented model that can be used to generate OO class libraries, SQL schema, HTML docs, etc.
NOTE: Kalliope is a work in progress. Due to the fact that the xml schema that is used by the NORMA tool is not 100% in the public domain, the XML reader is not complete and will throw (on purpose) an exception when it encounters an XML Element it does not yet
know
about. In case this happens, please raise a ticket and provide a sample ORM file so that the issue can reproduced and corrected in a new release.
The Kalliope solution contains the following projects:
- Kalliope: Provides the POCO classes that have been reverse-engineered from the ORM2 and associated meta-models.
- Kalliope.Common: Provides common C# attributes and enumeration data-types that are used throughout the solution.
- Kalliope.DTO: Provides code-generated DTO representions of the POCO classes. Instances of DTO classes are read from a data-source such as an XML file or a REST API.
- Kalliope.Dal: Provides code-generated factory classess and business logic that convert DTO's into a dereferenced POCO based object-graph.
- Kalliope.Xml: Provides XML Readers that deserialize the contents of an ORM2 (XML) file.
- Kalliope.Xml.Tests: Suite of tests to verify that the
Kalliope.Xml
works properly. - Kalliope.OO: Converts an ORM model into an object oriented model using C# classes, interfaces and properties.
- Kalliope.OO.Tests: Suite of tests to verify that the
Kalliope.OO
works properly. - Kalliope.Generator: Provides convention-based dotliquid code generators that use the Kalliope library for code-generation of Kalliope code.
- Kalliope.Generator.Tests: Suite of tests to verify the code-generators and to perform code-generation
For a detailed run down of the structure of each project, please read Solution Structure
The Kalliope libraries are provided to the community under the Apache License 2.0. The solution contains files that contain information about the ORM2 metamodel which are distributed with the Common Public License 1.0 or the zlib/libpng License. The beforementioned files can be found in the resources folder of the Kalliope project.
Contributions to the code-base are welcome. However, before we can accept your contributions we ask any contributor to sign the Contributor License Agreement (CLA) and send this digitaly signed to [email protected]. You can find the CLA's in the CLA folder.
copyright @ Starion Group S.A.