Currently I'm studying .NET Core and in the early docs which first introduced .NET Core we see that talk about the many different verticals. This can be seem in this picture:

enter image description here

In all the verticals we see the runtime, the framework, but there's also this "App Model" thing.

Also, watching a video about .NET Core CLI it was said that "DNX had its own application model" and also that ".NET Core CLI creates a single .NET application model for cross-platform .NET library and console application development".

My question is: what is this "application model" thing? What application model really is and what it is made of concretely?


What is an "application model":

It seems like "app model", in the image from Microsoft, is the collection of all the source code that you incorporate for a single application.

Don't confuse Microsoft's term "app model" with some kind of universal term in Computer Science (eg. It doesn't map to the OSI model). It seems to be a concept from Microsoft to describe all of the artifacts before compilation.

Background on the source of the image you reference:

When I read the source article that your image appears to be from:


It seems to be their advertisement/announcement for a new way of interacting with .NET. They want you to see that you to see their vision, that they have created a new architecture where you can write one "app model" and leverage their unified BCLs to make it more streamlined to deploy it to the desktop, the store, the phones, and the web.

Here's their next picture of how they made .NET better with the new .NET 2015:

| improve this answer | |

An app model is all the framework components that are specific to a certain type of app. This is different from the Framework boxes in that those are general-purpose components (e.g. LINQ, ADO.NET, Serialization).

For example, the WinForms app model would include all the code you use to create a window (e.g. Form, Button, Label). Other app models include ASP.NET MVC, WPF, UWP, PowerShell (I suppose cmdlets could be considered "apps"), Console, Xamarin Forms, etc.

| improve this answer | |

The application model in the diagram is your code, that which makes up your application.

It consists of whatever you create to make your application work. This will typically include classes, interfaces, documentation, unit tests, supporting configuration files, installers (when appropriate), etc.

I left out databases because while you may create a database project as a part of the application, it can easily be considered a separate thing from the application model.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.