ASP.NET Core is the latest Web application development framework from Microsoft. It is a significant redesign of the legacy ASP.NET framework and has already become widely popular. ASP.NET Core is a lean, composable, Open Source framework that you can use to build Web and Cloud applications. Most importantly, ASP.NET Core is available on Windows, Linux and Mac platforms.
This article presents an overview of the new features in ASP.NET Core. It also explains the new features in the ASP.NET Core runtime with a brief explanation on the benefits of each of those features.
How do ASP.NET Core applications work?
Note that ASP.NET Core applications run outside of the IIS Worker process. A native IIS module named ANCM (an acronym for ASP.NET Core Module) enables you to execute ASP.NET Core applications using Kestrel. Notably, ANCM is responsible for starting the process when the first request arrives and does all the necessary process management. When a new request arrives, it comes to the kernel mode Http.Sys driver. The latter then routes this request to IIS at the appropriate port. Next, this request is in turn routed to the respective ASP.NET application on the Http port that has been configured for the application. The Kestrel sever then intercepts the request and routes this request to the ASP.NET Core middleware pipeline. Let's take a quick tour of what is new in ASP.NET Core framework.
At a quick glance, the new features in ASP.NET Core include the following:
Open Source — ASP.NET Core is an open source Web application development framework. You can get the source code and the documentation from GitHub.
Modularity — ASP.NET Core is a modular framework. ASP.NET Core (formerly known as ASP.NET 5) is composed of modular components and it is optimized with minimal overhead. In essence, ASP.NET Core provides you a much leaner framework and you can take advantage of this modularity by installing just those packages that you need via NuGet.
Unified framework — ASP.NET Core is now no longer based on System.Web.dll assembly. Rather, it is now based on a collection of granular, modular packages that can be installed via NuGet. It should also be noted that ASP.NET Core provides a unified programming model. Hence, you now have a single base class named Microsoft.AspNet.Mvc.Controller from which your MVC controller and Web API controller should derive.
Dependency Injection and Middleware — Dependency injection is a technique that enables you to replace dependencies in your application with loosely-coupled pluggable components to make your application easier to test and maintain. ASP.NET Core provides support for dependency injection. Actually this support is built into ASP.NET Core. You can now take advantage of the ConfigureServices method in the Startup class to define the services the application will use. Note that this method is called by the Asp.NET Core runtime automatically when the application is started. Such services include: Entity Framework Core and ASP.NET Core MVC.
Cross-platform capability — ASP.NET Core is a cross - platform framework for building modern Cloud-based and Internet-based applications. The earlier version of ASP.NET was targeted towards Windows operating system or, the Windows family of operating systems. On the contrary, ASP.NET Core supports multiple platforms, including Windows, Mac and Linux. So, you can now build and deploy your applications on any of these platforms.
Cross-platform support, unified programming model and in-built support for dependency injection are some of the striking new features introduced as part of ASP.NET Core framework. This article presented an overview of the new features that have been included as part of Microsoft's ASP.NET Core framework and why they are useful.