Description
This issue represents the list of major investments our team will focus on during the .NET 10 timeframe. It doesn't include all the features and bug fixes we'll be tackling during this time.
Note that this is an aspirational list of what we hope to get to. Many of these items will require thorough investigation and design, which can result in changes to our plans. We'll end up cutting some things and making changes as we go, but we'll try to keep this issue up to date to reflect on our progress and learnings.
There's a lot to discuss in the ASP.NET Core roadmap, and GitHub issue comments aren't great for multi-topic conversations, so we've set up the ASP.NET Core Roadmap for .NET 10 discussion to better handle these threaded conversations.
You can best express your support for specific GitHub issues by giving a 👍 reaction on the original post in the issue and by commenting with details about your scenarios and requirements. We try our best to prioritize work based on broad community support and feedback.
Servers and APIs
Kestrel
APIs
- JsonPatchDocument should use System.Text.Json #24333
- Provide an option on FromRouteAttribute that allows decoding the value being bound #11544
- Support unified model for DataAnnotations-based validation via source generator #46349
- Add support for emitting ServerSentEvents from minimal APIs #56172
- Leverage System.Text.Json PipeReader feature in model binding and request parsing #60657
OpenAPI
- Support XML-based OpenAPI docs for minimal and controller-based APIs with
Microsoft.AspNetCore.OpenApi
#39927 - Upgrade Microsoft.AspNetCore.OpenAPI and add support for OpenAPI v3.1 #58619
- Improve build-time OpenAPI document generation #58353
- Support emitting OpenAPI documents in YAML format #58516
- Automatically infer
OpenApiSecuritySchemes
from authentication configuration #39761
SignalR
- SignalR Swift client
Telemetry
- Native Trace Instrumentation Support for ASP.NET Core as per OTel specification #52439
- Metrics for improved memory pool diagnosability #59442
Integration Testing
- Minimal API test config overrides only apply after app has been built #37680
- Improve automated browser testing with real server #4892
Authentication and Identity
- ASP.NET Core Identity and Auth documentation improvements #59290
- Passkeys Authentication support in ASP.NET Core #53467
- Support for Demonstrating Proof of Possession (DPoP) authorization tokens #58016
- ApiController redirects to login page #9039
- OAuth 2 refresh token support #8175
- Refreshing auth tokens for SignalR #5297
- Blazor Server auth improvements #38111
- Investigate AuthN/AuthZ metrics in ASP.NET Core #47603
- Improve performance of ClaimsIdentity #58793
- Improve observability of Microsoft.IdentityModel logs #54424
- Add Microsoft Identity Platform auth option to the Blazor Web App template #51202
- Add ability to scaffold identity endpoints in project and override these #53343
Web UI
Blazor Server state persistence
- [Blazor] Persisting circuit state for Blazor applications #60494
- Declarative model to serialize state on prerendering with Blazor and restore it on the client #26794
- APIs for components to persist state across circuits manually #30344
- Blazor Server: Provide APIs/extensibility for circuit eviction #17866
- Support persistent component state across enhanced page navigations #51584
Startup performance
- Stop embedding JS files in Endpoints and Server assemblies #58783
- Preload Blazor WebAssembly resources to improve startup time #58875
- [Blazor] Get rid of Blazor.boot.json and use a different strategy to flow the environment. #59456
Telemetry & diagnostics
- Add activities to Blazor Server for distributed tracing #29846
- Add Metrics for Blazor #53613
- Performance profiling for WebAssembly runtime#76316
Misc
- [Blazor] Improve the experience with QuickGrid and EF Core #58716
- Improve interaction between enhanced nav and scroll position #51646
- Reconcile NavigationManager behavior to no longer use NavigationException #59451
- Create simpler way to show Not Found 404 UI with Blazor #45654
- [Blazor] Add a way to specify a page as the Notfound fragment #58815
- [Blazor] Enable custom text in the new (.Net 9.0) reconnect dialog #57453
- Make blazor.server.js compatible with strict CSS CSP #58629
- JSInterop support for invoking constructors, properties, and supplying callbacks #31151
- Smooth out support for running .NET from JS via WebAssembly runtime#77191