.NET 5 Preview 6 is now available and is ready for evaluation. Here’s what’s new in this release:
- Blazor WebAssembly template now included
- JSON extension methods for
HttpRequest
andHttpResponse
- Extension method to allow anonymous access to an endpoint
- Custom handling of authorization failures
- SignalR Hub filters
Get started
To get started with ASP.NET Core in .NET 5.0 Preview 6 install the .NET 5.0 SDK.
You need to use Visual Studio 2019 16.7 or Visual Studio 2019 for Mac 8.6 to use .NET 5.0. Install the latest version of the C# extension, to use .NET 5.0 with Visual Studio Code.
Upgrade an existing project
To upgrade an existing ASP.NET Core 5.0 Preview 5 app to ASP.NET Core 5.0 Preview 6:
- Update all Microsoft.AspNetCore.* package references to
5.0.0-preview.6.*
. - Update all Microsoft.Extensions.* package references to
5.0.0-preview.6.*
.
See the full list of breaking changes in ASP.NET Core 5.0.
That’s it! You should now be all set to use .NET 5 Preview 6.
What’s new?
Blazor WebAssembly template now included
The Blazor WebAssembly template is now included in the .NET 5 SDK along with the Blazor Server template. To create a Blazor WebAssembly project, simply run dotnet new blazorwasm
.
JSON extension methods for HttpRequest
and HttpResponse
You can now easily read and write JSON data from an HttpRequest
and HttpResponse
using the new ReadFromJsonAsync
and WriteAsJsonAsync
extension methods. These extension methods use the System.Text.Json
serializer to handle the JSON data. You can also check if a request has a JSON content type using the new HasJsonContentType
extension method.
The JSON extension methods can be combined with endpoint routing to create JSON APIs in a style of programming we call “route to code”. It is a new option for developers who want to create basic JSON APIs in a lightweight way. For example, a web app that has only a handful of endpoints might choose to use route to code rather than the full functionality of ASP.NET Core MVC.
endpoints.MapGet("/weather/{city:alpha}", async context =>
{
var city = (string)context.Request.RouteValues["city"];
var weather = GetFromDatabase(city);
await context.Response.WriteAsJsonAsync(weather);
});
Find out more about the JSON extension methods in a recent On .NET interview about route to code.
Extension method to allow anonymous access to an endpoint
You can now allow anonymous access to an endpoint using the simpler AllowAnonymous
extension method when using endpoint routing.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/", async context =>
{
await context.Response.WriteAsync("Hello World!");
})
.AllowAnonymous();
});
}
Custom handling of authorization failures
Custom handling of authorization failures is now easier with the new IAuthorizationMiddlewareResultHandler
interface that is invoked by the AuthorizationMiddleware. The default implementation remains the same, but a custom handler can be be registered in DI which allows things like custom HTTP responses based on why authorization failed. A sample that demonstrates usage of the IAuthorizationMiddlewareResultHandler
can be found here.
SignalR Hub filters
Hub filters, called Hub pipelines in ASP.NET SignalR, is a feature that allows you to run code before and after Hub methods are called, similar to how middleware lets you run code before and after an HTTP request. Common uses include logging, error handling, and argument validation.
You can read more about this Hub filters on the docs page.
Give feedback
We hope you enjoy this release of ASP.NET Core in .NET 5! We are eager to hear about your experiences with this latest .NET 5 release. Let us know what you think by filing issues on GitHub.
Thanks for trying out ASP.NET Core!
Great article, thanks for sharing.
Building Houses