Model-based application development with the .NET

4 min read | By Admin | 22 December 2016 | Technology

  • share on:

In the .NET environment until today, there is no framework, the consistent model-based techniques. However, it is precisely this, especially in the case of operational applications, a high level of productivity and quality benefits in the development. The reason the author has significant experience from the java in the .NET world is transferred.

Under the model-based application development is a process that essential parts of the application in a model set. The model can have any representation (as text), in the rule, however, charts on the basis of the Unified Modeling Language (UML) or similar is used.

The objective is to derivation from models to reduce the coding effort and quality. As a pleasant side effect of the diagrams can be wonderful for the documentation and as an introduction for new developers, because the system from the perspective of a bird describe.

The greatest possible profit by a modeling is therefore if recurring aspects as simply as possible. Fatal is the attempt to every little detail to want to model because it is not an abstraction the model and is even more confusing than program code.

This is particularly true in the case of graphical models.On the question of the model-based development” gets you almost certainly a response to the word “Code Generation”. This is also a point of criticism often model-based development: Excessive use of code generation quickly leads to a “one-way”, because if the generated code to change but once manually, there is no way back. The model (chart) and the application run apart – the model is worthless.

Normally, the encountered by the code generation is configured in such a way that a manual adjustment of the generated code is not necessary. Apart from the enormous complexity in such a “Templates” can plug and only a few in the team dominate, can therefore never cover all cases. At the same time, the developers of the variety of modeling possibilities slain.

Also gladly used variant, “protected” areas in the generated code to introduce in a regeneration are maintained, has its pitfalls. It is a matter of special comments to use such areas to highlight. Deletes or changes the developer such comments from accidentally, the adjustments at the next fatally generator run away – without that he even noticed.

Only the “generation gap” design pattern seems to be a sensible alternative. This generates the developers typically abstract instead of specific classes. Adjustments can then be entered in subclasses. This is a plus point for the combination of model-based development and .NET, because with partial classes, how to C# in contrast to Java knows, one can find the specialization is much more elegant way.

You will be a concrete class in two parts (files):

One is exclusively generated, the other only manually edited. This corresponds to the operation of various editors in Visual Studio, for example, the forms for WPF (Windows Presentation Foundation). More than code generation a model-based development, however does not necessarily lead to ausufern dem

Generated code:

In the above definition is of “Generation” Nowhere the speech. On the contrary, the developer almost without generated code if it reverses the approach only.If you take the often over sensitive comparison with a blueprint for a house, but no one will get the idea that this for each individual construction workers a precise plan of action for each day and each work step to drain, print and distribute to the craftsmen. The individual trades and construction workers can instead the rules themselves and on the basis of the Plan most of the steps to be deduced. It is quite sufficient, the plan to distribute in one case or the other is still a supplement or implementation shall be attached.

This procedure corresponds to a “generic” approach in which you components such as an input field with an extension to teach, even in the model to look and to behave accordingly. The approach is for example the trend Framework. The Gebit Solutions for which the author works: instead of the models for the development of the time code to generate the model and then to “forgotten”, it represents the semantic information of the model to run time available. It rejects only the information, where on the screen which element is positioned graphically, and converts the rest in a compact and mechanically well processable representation.

The application is now on the basis of the generic model is configured by the framework as a menu bar in accordance with the model defined use cases is based.

Now was the question, what exactly you are useful in modeling business applications. The experience shows that modeling especially in three areas of key


  • With business objects and their persistence,
  • For application processes (screen flows, workflows), and
  • The application framework.

Comments are closed.

Join over 150,000+ subscribers who get our best digital insights, strategies and tips delivered straight to their inbox.