Introduction
ASP.NET Core is a significant redesign of ASP.NET. It is an open source and cross-platform framework for developing cloud based applications like web applications, IoT applications, and the mobile back-end applications.
In this article, I will highlight the new features and the modified existing features of ASP.NET Core.
Razor Pages
It is a new feature of ASP.NET Core MVC, which makes coding page-focused scenarios easier and more productive. To work with Razor pages, we need to use .NET Core 2.0 or higher framework. This feature has introduced many more page directives, such as @function.
Meta Packages
The new framework introduced Meta package that includes all of the packages supported by ASP.NET Core and EF (Entity Framework) core with their internal and 3rd-party dependencies. Using these meta packages, we need not select individual ASP.NET Core features by the package but the assembly Microsoft.AspNetCore. All packages contain all the features.
.NET Standard 2.0
It also targets .NET Standard 2.0. It can be referenced by other .NET Standard 2.0 libraries and they can run on its compliant implementations of .NET that include .NET Core 2.0 and .NET Framework 4.6.1.
Kestrel Web Server improvements
It has new features that are suitable for an Internet-facing Server. In KestrelServerOptions class, we can add a number of server constraint configuration options. This class has new Limits property using which we can limit -
ASP.NET Core is a significant redesign of ASP.NET. It is an open source and cross-platform framework for developing cloud based applications like web applications, IoT applications, and the mobile back-end applications.
In this article, I will highlight the new features and the modified existing features of ASP.NET Core.
Razor Pages
It is a new feature of ASP.NET Core MVC, which makes coding page-focused scenarios easier and more productive. To work with Razor pages, we need to use .NET Core 2.0 or higher framework. This feature has introduced many more page directives, such as @function.
Meta Packages
The new framework introduced Meta package that includes all of the packages supported by ASP.NET Core and EF (Entity Framework) core with their internal and 3rd-party dependencies. Using these meta packages, we need not select individual ASP.NET Core features by the package but the assembly Microsoft.AspNetCore. All packages contain all the features.
.NET Standard 2.0
It also targets .NET Standard 2.0. It can be referenced by other .NET Standard 2.0 libraries and they can run on its compliant implementations of .NET that include .NET Core 2.0 and .NET Framework 4.6.1.
Kestrel Web Server improvements
It has new features that are suitable for an Internet-facing Server. In KestrelServerOptions class, we can add a number of server constraint configuration options. This class has new Limits property using which we can limit -
- Maximum request body size
- Maximum client connections
- Minimum request body data rate
HTTP.sys
It is a web server for ASP.NET Core, and very similar to Kestrel Web Server. It only runs on Windows. The .NET Core 1.x has packages Microsoft.AspNetCore.Server.WebListener and Microsoft.Net.Http.Server which are merged into a new package "Microsoft.AspNetCore.Server.HttpSys".
Update in Configuration
In ASP.NET Core 2.0, IConfiguration interface instance is added to the service container. This makes it easier for applications to retrieve the configuration values from the service container.
Update in Logging
In the new version of the framework, Logging is added into DI (dependency injection) system by default. We need to add providers and configure filtering in main function (program.cs file) instead of defining in the Startup class.
Update in Authentication Model
The new authentication model makes it easier to configure authentication for an application using dependency injection (DI).
Update in Identity
With ASP.NET Core 2.0, it is easy to build secure web APIs using Identity. MSAL (Microsoft Authentication Library) provides access token for accessing the Web API.
New SPA (Single Page Application) project Templates
SPA project templates for Knockout.js, React.js, React.js with Redux, Aurelia, and Angular are available. The Angular template has been updated with Angular version 4.0. The React and Angular templates are available by default.
Added support for C# 7.1 in Razor
The Razor View Engine is now compatible with new Roslyn compiler that adds support for a new feature of C# 7.1, such as Inferred Tuple Names, Default Expressions, and Pattern-Matching with Generics. To use C# 7.1 in our project, we need to specify "LangVersion" property to latest in our project file.
Runtime Store
The .NET Core 2.0 introduces meta package (Microsoft.AspNetCore.All). The application can take the advantage of new .NET Core Runtime store that is used in this meta-package. It contains all the assets required to run the application. We do not need to reference any other assets from NuGet packages when we use this meta-package. All the assets are precompiled so it helps us improve the startup performance of an application.
Automatic pre-compilation of Razor View
In .NET Core 2.0, the Razor View is automatically pre-compiled during the publishing by default. It helps us reduce the published output size and application startup time.
Automatic use of anti-forgery tokens
ASP.NET Core supports the HTML encoding of our page content but this new version of framework takes care of cross-site request forgery (XSRF) attacks. ASP.NET Core emits anti-forgery tokens and validates it on form POST without any extra configuration.
Application Insights diagnostics
Hosting environment is added in extra dependency packages and it executes code during the startup without taking any external dependency or calling to any methods. In the new framework, this feature is used to enable automatic application insights diagnostics when the application is running / debugging in Visual Studio and running in Azure App Services.
Summary
ASP.NET Core is released with many new features while several features are enhanced. Please see ASP.NET Core 2.0 Release Notes for a complete list of changes
It is a web server for ASP.NET Core, and very similar to Kestrel Web Server. It only runs on Windows. The .NET Core 1.x has packages Microsoft.AspNetCore.Server.WebListener and Microsoft.Net.Http.Server which are merged into a new package "Microsoft.AspNetCore.Server.HttpSys".
Update in Configuration
In ASP.NET Core 2.0, IConfiguration interface instance is added to the service container. This makes it easier for applications to retrieve the configuration values from the service container.
Update in Logging
In the new version of the framework, Logging is added into DI (dependency injection) system by default. We need to add providers and configure filtering in main function (program.cs file) instead of defining in the Startup class.
Update in Authentication Model
The new authentication model makes it easier to configure authentication for an application using dependency injection (DI).
Update in Identity
With ASP.NET Core 2.0, it is easy to build secure web APIs using Identity. MSAL (Microsoft Authentication Library) provides access token for accessing the Web API.
New SPA (Single Page Application) project Templates
SPA project templates for Knockout.js, React.js, React.js with Redux, Aurelia, and Angular are available. The Angular template has been updated with Angular version 4.0. The React and Angular templates are available by default.
Added support for C# 7.1 in Razor
The Razor View Engine is now compatible with new Roslyn compiler that adds support for a new feature of C# 7.1, such as Inferred Tuple Names, Default Expressions, and Pattern-Matching with Generics. To use C# 7.1 in our project, we need to specify "LangVersion" property to latest in our project file.
Runtime Store
The .NET Core 2.0 introduces meta package (Microsoft.AspNetCore.All). The application can take the advantage of new .NET Core Runtime store that is used in this meta-package. It contains all the assets required to run the application. We do not need to reference any other assets from NuGet packages when we use this meta-package. All the assets are precompiled so it helps us improve the startup performance of an application.
Automatic pre-compilation of Razor View
In .NET Core 2.0, the Razor View is automatically pre-compiled during the publishing by default. It helps us reduce the published output size and application startup time.
Automatic use of anti-forgery tokens
ASP.NET Core supports the HTML encoding of our page content but this new version of framework takes care of cross-site request forgery (XSRF) attacks. ASP.NET Core emits anti-forgery tokens and validates it on form POST without any extra configuration.
Application Insights diagnostics
Hosting environment is added in extra dependency packages and it executes code during the startup without taking any external dependency or calling to any methods. In the new framework, this feature is used to enable automatic application insights diagnostics when the application is running / debugging in Visual Studio and running in Azure App Services.
Summary
ASP.NET Core is released with many new features while several features are enhanced. Please see ASP.NET Core 2.0 Release Notes for a complete list of changes

Sajid HussainPosted Sep 11, 2017, 1:39 AM
Jignesh,You did well organized contribution.