The Accord Project community is delighted to announce version 3.0 of the Concerto schema language and runtime engine.
Concerto is a general purpose language for describing the structure of data in business terms. Learn more …
This new major version allows Concerto models to define an explicit version in a model file, (according to the Semantic Versioning convention). Concerto models can also declare a dependency on an explicit version of another model. This makes it easier to govern changes to model definitions in large-scale deployments.
Version 3 also includes several new features:
- Compatibility Detection. Protect your users when your model changes by ensuring backwards compatibility
- Command Line Tool Enhancements. New
concerto generate
,concerto version
,concerto compare
commands. - .NET Enhancements. Improved code generation for C#. .NET serialization and deserialization tools.
Concerto 3.0
delivers fundamental improvements over previous releases, whilst maintaining a high-degree (though not total!) of backwards compatibility with 2.x
. In particular all of the 2.x
Concerto syntax remains valid in 3.0
. A migration guide is available in the Concerto Documentation.
A full list of changes is available in the release notes.
2. Compatibility Detection. The new concerto-analysis
package provides tools for comparing two versions of a model file. This helps you to protect your users when your model changes by ensuring backwards compatibility. This is exposed in the new concerto compare
command.
3. Command Line Tool Enhancements. The Concerto command line tool has been extended to expose more of the Concerto API. This makes it more useful for offline, batch, and CI/CD processes.
3. .NET Enhancements. The csharp
target for the concerto-tools
package has been greatly enhanced to allow for reliable code-generation of C# from Concerto models. There is also a prototype concerto-dotnet
project which provides native Concerto language support for the .NET platform. Today this includes the Concerto metamodel as C# classes, and conversion tools between JSON and .NET objects.