.NET 8 allows for a faster way to validate the option values in appsettings.json in an ASP.NET Core Web API using data annotations.
The worker service project sees a major update in .NET 8 with the new IHostedLifecycle interface hooking into new background hosted service lifecycles.
Model validation for ASP.NET Core Web API now includes data annotations such as allowed and denied values as well as Base64 string validation.
The TimeProvider abstract class can be used in xUnit unit tests to mock the time and a timer using the FakeTimeProvider in .NET 8.
Learn how collection expressions and the spread operator work in C#, with examples of how to use them to simplify lists and arrays in .NET.
Learn the difference between Server and WebAssembly render modes in Blazor, how to set them globally or per component, and when to use each one in .NET.
Server-side rendering (SSR) is a render mode which has become a new Blazor feature for .NET 8, working in a similar way to ASP.NET Core MVC.
Primary constructors is a C# 12 feature that allows to add parameters to a class and includes dependency injection support.
.NET 8 brings keyed services, a dependency injection update for creating the same service with a different implementation in the IoC container.
How the FromQuery, FromBody, FromForm, FromHeader and FromServices attributes work in an ASP.NET Core Web API and MVC app with C# code.