In any type of ASP.NET Core projects we can find the Program.cs file, which defines the Program class of the same name and which essentially starts the application execution.

Dependency management

Due to the modularity of the framework, all the necessary components of a web application can be loaded as separate modules via the Nuget package manager. In addition, unlike in previous versions of the platform, there is no need to use the System.Web.dll library.

ASP.NET Core includes an MVC framework that integrates MVC functionality, Web API, and Web Pages. In previous versions of the platform, these technologies were implemented separately and therefore contained a lot of duplicate functionality. Now they are combined into one ASP.NET Core MVC programming model. And Web Forms are completely a thing of the past.

Dependency management

In addition to combining the aforementioned technologies into one model, a number of additional functions have been added to MVC.

One such feature is the tag helper, which allows you to more seamlessly combine html syntax with C # code.

ASP.NET Core is extensible. The framework is built from a set of relatively independent components. And we can either use the built-in implementation of these components, or extend them using the inheritance mechanism, or even create and use our own components with their own functionality.

Dependency management and project configuration has also been simplified. The framework now has its own lightweight container for dependency injection, and there is no longer a need to use third-party containers such as Autofac, Ninject. Although you can continue to use them if you wish.

As a development toolkit, we can use the latest releases of Visual Studio, starting with the version of Visual Studio 2015. In addition, we can create applications in the Visual Studio Code environment, which is cross-platform and can run on both Windows and Mac OS X and Linux.

A new HTTP pipeline is now used to process requests, which is based on Katana components and the OWIN specification. And its modularity makes it easy to add your own components.

To summarize, the following key differences between ASP.NET Core and previous versions of ASP.NET can be highlighted:

New lightweight and modular HTTP request pipeline

Ability to deploy the application both to IIS and within your own process

Using the .NET Core framework and its functionality

Distributing platform packages via NuGet

Integrated support for creating and consuming NuGet packages

One web development stack combining Web UI and Web API

Configuration for simplified use in the cloud

Built-in support for dependency injection

Extensibility

Cross-platform: the ability to develop and deploy ASP.NET applications on Windows, Mac and Linux

Development as open source, openness to change

These and other features and capabilities became the basis for a new programming model.