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.
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.