Last week, Microsoft announced the release of .NET 10 Release Candidate 1, the first of two release candidates ahead of the final version. As stated by the .NET team, this build comes with a go-live license, allowing developers to use it in production environments with official support. It is available alongside Visual Studio 2026 Insiders and is supported in Visual Studio Code through the C# Dev Kit.
Regarding the features, ASP.NET Core introduces support for persistent component state in Blazor during enhanced navigation. Components can now retain and retrieve previously stored state, improving application performance and maintaining user progress. Developers can configure the [PersistentState] attribute to control when and how state is restored, including options to skip restoration during prerendering or reconnection.
Furthermore, ASP.NET Core Identity now emits a set of built-in metrics under the Microsoft.AspNetCore.Identity meter. These include duration tracking for user creation and login operations, as well as counters for token generation and two-factor authentication events. As reported, the new telemetry aims to enhance observability and troubleshooting in production environments.
Validation improvements span both Minimal APIs and Blazor. Type-level validation is now supported, allowing attributes to be applied to classes and records. The new [SkipValidation] attribute enables developers to opt out of validation for specific properties or entire types. Additionally, properties marked with [JsonIgnore] are excluded from validation, aligning behavior between model serialization and validation.
OpenAPI schema generation has been refined in several areas. Nullable complex types are now modeled using the oneOf construct, improving compatibility with OpenAPI 3.1 specifications. According to the ASP.NET Core team, schema reference handling and inclusion of property descriptions alongside $ref have also been improved. Community contributions have extended support for XML comment metadata in [AsParameters] types and added accurate media types for JSON Patch operations. Unknown HTTP methods are now excluded from schema generation.
In .NET MAUI, the team has added diagnostics instrumentation under the Microsoft.Maui source. As reported in the release notes, layout methods such as Measure() and Arrange() now generate metrics and activity traces, enabling better performance profiling. New events in HybridWebView allow developers to hook into the lifecycle of the embedded browser view. The RefreshView control also gains an IsRefreshEnabled property for consistent behavior across platforms.
(.NET Aspire, comprehensive diagnostics and metrics tracking for .NET MAUI applications, Source: Microsoft GitHub Repo)
For Android development, experimental support for running applications on the CoreCLR runtime (instead of Mono) is now available. Developers can enable this by setting UseMonoRuntime to false in their project configuration. Microsoft warns that this feature is not yet intended for production use and may result in larger binaries or limited diagnostics.
Windows Forms introduces full support for dark mode, now integrated without requiring experimental flags. The ApplyThemingImplicitly flag in ControlStyles now plays a key role in opting into theming behavior. Async methods such as ShowAsync and ShowDialogAsync have exited experimental status, with improved allocation performance and state management for multiple windows.
Entity Framework Core 10 also brings notable advancements. As confirmed by Microsoft, SQL Server now supports the new vector data type and the VECTOR_DISTANCE() function for vector-based similarity searches. JSON column support is fully integrated, allowing developers to map arrays and nested objects directly into the database. Cosmos DB features have been expanded to include full-text and hybrid search capabilities, combining keyword and vector similarity for more flexible querying.
Also, support for complex types has been improved, allowing developers to map nested objects either as JSON or as individual columns. Parameterized collection padding has also been introduced to optimize generated SQL for large input collections.
For interested readers, full technical documentation, samples, and changelogs are available in the official .NET 10 RC1 release notes.