ASP.NET Core in .NET 6 - Overview
Jürgen Gutsch - 22 February, 2021
.NET 5 was released just about 3 months age and Microsoft announced the first preview of .NET 6 last week. This is really fast. Actually, they already started working on .NET 6 before version 5 was released. But it is anyway cool to have a preview available to start playing around. Also, the ASP.NET team wrote a new blog post. It is about ASP.NET Core updates on .NET 6.
I will take the chance to have a more detailed look into the updates and the new feature. I'm going to start a series about those updates and features. This is also a chance to learn what I need to rewrite, If I need to update my book that recently got published by Packt.
Install .NET 6 preview
At first I'm going to download ..NET 6 preview from https://dotnet.microsoft.com/download/dotnet/6.0 and install it on my machine.
I chose the x64 Installer for Windows and started the installation
After the installation is done the new SDK is available. Type dotnet --info in a terminal:
Be careful
Since I didn't add a global.json
yet, the .NET 6 preview is the default SDK. This means I need to be careful if I want to create a .NET 5 project. I need to add a global.json
every time I want to create a .NET 5 project:
dotnet new globaljson --sdk-version 5.0.103
This creates a small JSON file that contains the SDK version number in the current folder.
{
"sdk": {
"version": "5.0.103"
}
}
Now all folder and subfolder will use this SDK version.
Series posts
This series will start with the following topics:
Preview 1
ASP.NET Core Updates in .NET 6 preview 1
- Update on dotnet watch
- Support for IAsyncDisposable in MVC
- DynamicComponent
- ElementReference
- Nullable Reference Type Annotations
Preview 2
ASP.NET Core Updates In .NET 6 preview 2
- Support for custom event arguments in Blazor
- CSS isolation for MVC Views and Razor Pages
- Infer component generic types from ancestor components
- Preserve prerendered state in Blazor apps
Preview 3
ASP.NET Core updates in .NET 6 Preview 3
Preview 4
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-4/
- Introducing minimal APIs
- Async streaming
- HTTP logging middleware
- Use Kestrel for the default launch profile in new projects
IConnectionSocketFeature
- Improved single-page app (SPA) templates
- .NET Hot Reload updates
- Generic type constraints in Razor components
- Blazor error boundaries
- Blazor WebAssembly ahead-of-time (AOT) compilation
Preview 5
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-5/
- NET Hot Reload updates for
dotnet watch
- ASP.NET Core SPA templates updated to Angular 11 and React 17
- Use Razor syntax in SVG
foreignObject
elements - Specify null for
Action
andRenderFragment
component parameters - Reduced Blazor WebAssembly download size with runtime relinking
- Configurable buffer threshold before writing to disk in Json.NET output formatter
- Subcategories for better filtering of Kestrel logs
- Faster get and set for HTTP headers
- Configurable unconsumed incoming buffer size for IIS
Preview 6
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-6/
- Improved Blazor accessibility
- Required Blazor component parameters
- Efficient byte array transfers for JavaScript interop
- Optional parameters for view component tag helpers
- Angular template updated to Angular 12
- OpenAPI support for minimal APIs
- Inject services into minimal APIs without
[FromServices]
attribute - Configure the accept socket for Kestrel
IHttpActivityFeature
- Long running activity tag for SignalR connections
- WebSocket compression
- SignalR WebSockets TestServer support
- New
OnCheckSlidingExpiration
event for controlling cookie renewal - ClientCertificateMode.DelayCertificate
Preview 7
https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-6-preview-7/
- Parity with existing experiences for minimal APIs
- Added
IResult
implementations for producing common HTTP responses - Support Request, Response and User for minimal actions
- Minimal host and template improvements
- Supply Blazor component parameters from the query string
- Replace the current URI in the browser history from Blazor
- New
DynamicComponent.Instance
property - Blazor streaming interop from JavaScript to .NET
- Large file upload & faster file uploads with Blazor
- Modify HTML
<head>
content from Blazor components - Support for the
multiple
attribute on<select>
elements in Blazor - Support for HTTP/3 in Kestrel
- QUIC support moved to the shared framework
- Allow control over
Activity
creation - Support for non-ASCII characters in Kestrel response headers
- Add W3CLogger
- Add authentication expiration option to SignalR
(I will update this list as soon I add a new post or as soon Microsoft adds a new release).2