ECoreNetto.Extensions
9.0.0
dotnet add package ECoreNetto.Extensions --version 9.0.0
NuGet\Install-Package ECoreNetto.Extensions -Version 9.0.0
<PackageReference Include="ECoreNetto.Extensions" Version="9.0.0" />
<PackageVersion Include="ECoreNetto.Extensions" Version="9.0.0" />
<PackageReference Include="ECoreNetto.Extensions" />
paket add ECoreNetto.Extensions --version 9.0.0
#r "nuget: ECoreNetto.Extensions, 9.0.0"
#:package ECoreNetto.Extensions@9.0.0
#addin nuget:?package=ECoreNetto.Extensions&version=9.0.0
#tool nuget:?package=ECoreNetto.Extensions&version=9.0.0

Introduction
ECoreNetto is a suite of dotnet core libraries and tools that are used to deserialize an Ecore meta-model for the purpose of code generation. Ecore is a meta-model used to represent models in the Eclipse Modelling Framework. EMF is a powerful framework and code generation facility for building Java applications based on simple model definitions. The intention of ECoreNetto is not to be a port of EMF, it aims at bridging the gap to the .NET world to facilitate code generation of C# class libraries based on an Ecore model using the .NET code available tooling and libraries.
ECoreNetto
The core library used to deserialize an ecore file and create an in memory ECore model object graph.
Getting Started
The following snippet shows how to load an .ecore file with the core ECoreNetto library, obtain the root EPackage and walk the model. A ResourceSet demand-loads the .ecore file (and any cross-referenced models) and Resource.Load(...) returns the root EPackage.
using System;
using ECoreNetto;
using ECoreNetto.Resource;
// point the ResourceSet at the .ecore file to deserialize
var uri = new Uri(@"C:\path\to\model.ecore");
var resourceSet = new ResourceSet();
var resource = resourceSet.CreateResource(uri);
// Resource.Load returns the root EPackage of the model
EPackage rootPackage = resource.Load(null);
Console.WriteLine($"package: {rootPackage.Name}");
// iterate over the classifiers (EClass, EDataType, EEnum, ...) in the package
foreach (var classifier in rootPackage.EClassifiers)
{
Console.WriteLine($" {classifier.GetType().Name}: {classifier.Name}");
// for classes, inspect their structural features (attributes and references)
if (classifier is EClass eClass)
{
foreach (var structuralFeature in eClass.EStructuralFeatures)
{
Console.WriteLine($" - {structuralFeature.Name} : {structuralFeature.EType?.Name}");
}
}
}
ECoreNetto.Extensions
The ECoreNetto.Extensions library provides extensions methods to the EcoreNetto library to support code generation. This library is part of the EcoreNetto ecosystem.
ECoreNetto.HandleBars
The ECoreNetto.HandleBars library provides HandleBars helpers to support code generation. This library is part of the EcoreNetto ecosystem.
ECoreNetto.Reporting
The ECoreNetto.Reporting library contains reporting generators. This library is part of the EcoreNetto ecosystem.
ECoreNetto.Tools
The ECoreNetto.Tools commandline application is used to generate reports on the content of the Ecore model. Find the documentation here.
Code Quality
Installation
The package are available on Nuget at:
- ECoreNetto:
- ECoreNetto.Extensions:
- ECoreNetto.HandleBars:
- ECoreNetto.Tools:
Build Status
GitHub actions are used to build and test the EcoreNetto libraries
| Branch | Build Status |
|---|---|
| Master | |
| Development |
Ecore Documentation
ECoreNetto targets the Ecore 2.0 metamodel (namespace http://www.eclipse.org/emf/2002/Ecore), the core metamodel of the Eclipse Modeling Framework (EMF). This metamodel has been stable since EMF 2.0 and is the same one used by current EMF releases. The Java reference implementation is the org.eclipse.emf.ecore bundle maintained by the Eclipse Foundation; as of the EMF 2.46.0 distribution (December 2025) the org.eclipse.emf.ecore runtime is at version 2.42.0 and org.eclipse.emf.ecore.xmi at 2.40.0.
- EMF project & current documentation: https://eclipse.dev/emf/
- Java reference implementation (Ecore source,
org.eclipse.emf.ecore): https://github.com/eclipse-emf/org.eclipse.emf - Ecore API reference (EMF Javadoc, v2.10.0): https://download.eclipse.org/modeling/emf/emf/javadoc/2.10.0/index.html?org/eclipse/emf/ecore/EObject.html
Software Bill of Materials (SBOM)
As part of our commitment to security and transparency, this project includes a Software Bill of Materials (SBOM) in the associated NuGet packages. The SBOM provides a detailed inventory of the components and dependencies included in the package, allowing you to track and verify the software components, their licenses, and versions.
Why SBOM?
- Improved Transparency: Gain insight into the open-source and third-party components included in this package.
- Security Assurance: By providing an SBOM, we enable users to more easily track vulnerabilities associated with the included components.
- Compliance: SBOMs help ensure compliance with licensing requirements and make it easier to audit the project's dependencies.
You can find the SBOM in the NuGet package itself, which is automatically generated and embedded during the build process.
License
The EcoreNetto libraries are provided to the community under the Apache License 2.0.
Contributions
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 s.gerene@stariongroup.eu. You can find the CLA's in the CLA folder.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- ECoreNetto (>= 9.0.0)
- HtmlAgilityPack (>= 1.12.4)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ECoreNetto.Extensions:
| Package | Downloads |
|---|---|
|
ECoreNetto.HandleBars
HandleBarHelpers for use in combination with the ECoreNetto library to support HandleBarHelpers based code generation |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 9.0.0 | 25 | 7/6/2026 |
| 7.0.9 | 216 | 4/24/2026 |
| 7.0.8 | 305 | 2/22/2026 |
| 7.0.7 | 309 | 12/21/2025 |
| 7.0.6 | 326 | 11/24/2025 |
| 7.0.5 | 278 | 10/18/2025 |
| 7.0.4 | 272 | 10/18/2025 |
| 7.0.3 | 263 | 10/4/2025 |
| 7.0.2 | 1,039 | 8/11/2025 |
| 7.0.0 | 522 | 3/1/2025 |
| 6.0.3 | 381 | 2/23/2025 |
| 6.0.2 | 703 | 10/28/2024 |
| 6.0.1 | 354 | 10/24/2024 |
| 6.0.0 | 505 | 10/20/2024 |
| 5.2.1 | 395 | 10/19/2024 |
| 5.2.0 | 476 | 10/3/2024 |
| 5.0.0 | 400 | 9/25/2024 |
| 4.0.1 | 320 | 9/12/2024 |
| 4.0.0 | 336 | 9/8/2024 |
| 3.1.0 | 348 | 9/6/2024 |
[Fix] add guard/null checks in HandleBars helpers and extensions; correct NameEqualsEnclosingType arity; fxies #45
[Update] enable nullable reference types solution-wide; resolve all nullable warnings; fixes #49
[Feature] Bring the HTML report generator to parity with uml4net; fixes #112