The NORMA Pro product adds advanced capabilities to the NORMA product installed from the Visual Studio Marketplace. These Visual Studio extensions are usually accessed from the Visual Studio extensions dialog, which will seamlessly select the version matching your Visual Studio installation.
NORMA Pro includes the NORMA installer along with various extensions that have been written to enhance NORMA over the years (the earliest extensions date to 2009, about 3 years after the original NORMA releases). NORMA Pro currently requires a machine-bound license file that can be obtained directly from Matthew Curland. Please contact him for licensing rates for licensing terms and rate information.
A video providing an overview of NORMA Pro extensions is at NORMA Pro Features. These features are also listed below.
NORMA Pro extensions are roughly divided into additional technical extensions and generators, and model display and reporting features.
Technical Extensions
- Derivation Rule Editor allows formal derivation rules for fact types and subtypes to be entered into the tool by clicking through paths in the model. The ORM Verbalizer provides a textual form of the current rule, allowing for a strong feedback loop. This also covers constraint join paths.
- Dynamic Rules are not bound to a specific fact type or object type. Dynamic rules provide a declarative mechanism to respond to changes in the model with other model changes, such as creating/removing entities and facts.
- Absorption Grouping provides tools for defining one or more hierarchies and mapping these to XML schemas matching the model. Hierarchies can also be defined over partial models, which are well-formed subsets of the current model. An active hierarchy can be represented with shape colors on the ORM diagrams, providing a valuable perspective on the major objects in your model-even if you don't generate an XML schema.
- ECORE Importer extracts data from existing ECORE models in a manner similar to Database Import.
- JFE Generators JFE (JavaScript Fact Engine) is a set of libraries designed to directly implement any ORM model (including ORM itself) and is used by ORM Solutions web projects currently under development. The model viewers on this site such as the verbalizing model viewer and the SVG rendering in the Word Report extension discussed below are all JFE applications. Current generators produce TypeScript declarations for the models, JavaScript model declarations to load into the framework, a backend import/export layer to process state changes, and a relational mapping layer to interface between the I/O layer and the database.
Display and Reporting Extensions
- Custom Colorization supports fine-grained control over shape and model browser colors by added elements to groups, then controlling the colors for all elements in that group. Colorization can be applied to all, none, or a selected subset of diagrams.
- Missing ORM Shape extension tracks elements which are not graphically represented on any diagram, providing a thorough review of your model.
- Multi-page Relational View lets you represent your database diagrams across multiple pages. The default single-page diagram is too cluttered to be useful after 20 or 30 tables. This allows multiple pages and easy expansion to related shapes. Relational elements with no shape are also tracked.
- Word Report is an alternative to the HTML report and generates a .docx with properly formatted and hyperlinked verbalizations and SVG diagrams. Diagrams can be subdivided based on connectivity and model notes can be grouped to provide (sub)diagram titles and document content. This extension eliminates the need to copy/paste to get diagrams and to manually indent pasted verbalizations in Word.
Future Direction
ORM Solutions is actively developing new tooling, generators and frameworks to target end-to-end application development, not database generation. The goal is to make your ORM models primary development artifacts enabling natural code synchronization between all data-transfer layers in the application, custom-code-free imports of any model change, and an integrated query layer for data retrieval. The stack will let you speak
model (not database, REST, or other artificial construct) at all levels of your applications. You can see preview presentations on this effort at the
YouTube ORM solutions channel. The current NORMA Pro extensions are an integral part of this development process and will continue to be enhanced as these technologies become publicly available.