-
Notifications
You must be signed in to change notification settings - Fork 15
What is NMF?
For its promises in terms of increased productivity, Modeldriven engineering (MDE) is getting applied increasingly often in both industry and academia. However, most tools currently available are based on the Eclipse Modeling Framework (EMF) and hence based on the Java platform whereas tool support for other platforms is limited. This leads to a language and tool adoption problem for developers of other platforms such as .NET. As a result, few projects on the .NET platform adopt MDE. Furthermore, the limited tool availability introduces a technical barrier in the interoperability between EMF and .NET applications. To aid this problem, we introduce the .NET Modeling Framework (NMF), a tool set for model repositories, model-based incrementalization, model transformation, model synchronization and code generation. The framework makes intensive use of the C# language as host language for model transformation and synchronization languages, whereas the model repository serialization is compatible with EMF. This solves the language adoption problem for C# programmers and creates a bridge to the EMF platform.
Model-driven engineering (MDE) is getting applied increasingly often both in industry and academia. Dedicated support to use models for analysis or transformation purposes reduces manual development efforts as repetitive infrastructure code can be reused. Most of the existing tools that support MDE are currently based on the Java platform. As a consequence, legacy software built on other platforms can hardly be reused.
According to many indices on the popularity of programming languages such as the TIOBE index or the IEEE Spectrum, Java is the most popular programming language. Most students in technical majors learn programming through Java in their first term. Furthermore, it is platform independent. This makes Java a straight-forward implementation choice for Model-driven tools, which are still mostly developed within academia. However, Java is not used everywhere. In some domains, other languages are more popular. Furthermore, as Meyerovich suggests, most programmers do not easily change their primary programming languages. When the adoption of MDE implies the adoption of the Java framework, this can block the adoption of MDE in domains where Java is not the primary language to work with. In addition, although MDE has existed for more than a decade now, tool support is still one of the major factors that hampers a wide adoption of MDE in industry. The often home-brew tools with a lack of professional support can hardly keep up with industry standard integrated development environments such as IntelliJ or Visual Studio.
To aid this situation, the .NET Modeling Framework (NMF) is a framework of libraries, tools and languages to support model-driven engineering on the .NET platform. The framework is dedicated to process existing models through analysis, transformation and synchronization. NMF contains tools to generate model representations compliant with EMF, supports a model management repository system and allows developers to specify model analyses, model transformations and model synchronizations. To minimize both the language adoption problem and the tool support problem, NMF is entirely based on internal languages that use C# as a host language.
An introductory tutorial for NMF can be found on YouTube.