14

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?

0

3 Answers 3

4

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.

1
  • Good explanation. It might be more precise to say that an app model represents the API of that collection of components. So the components (implementations) themselves can be upgraded, as long as the API is unchanged. Nov 13, 2021 at 20:09
3

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:

https://blogs.msdn.microsoft.com/dotnet/2014/12/04/introducing-net-core/

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:

0
0

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.

2
  • That is the usual meaning of the term "application model" in software development. However, Microsoft seems to use the term "application model" slightly differently: they use it to describe a pattern of components needed by a particular type of application. Hence they refer to "ASP.NET Core MVC" as "an application model representing the components of an MVC app". Elsewhere, they'll say "Windows Store application model", "Visual Basic application model. Nov 13, 2021 at 20:04
  • ... "The application model defines convention abstractions that provide a simpler way to customize the behavior of the models than overriding the entire model or provider. These abstractions are the recommended way to modify an app's behavior." My take is this is a pattern representing a category of applications - NOT the model of a specific ("your") application. Nov 13, 2021 at 20:05

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.