Skip to content

ASP.NET Core Roadmap for .NET 9 #51834

Closed
Closed
@mkArtakMSFT

Description

@mkArtakMSFT

This issue represents the list of major investments our team will focus on during the .NET 9 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 9 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/Scalability

Minimal APIs

Blazor

Static Web Assets improvements

Blazor Web improvements

Blazor Server improvements

Blazor WebAssembly improvements

General Blazor dev experience improvements

Activity

ghost added
needs-area-labelUsed by the dotnet-issue-labeler to label those issues which couldn't be triaged automatically
on Nov 2, 2023
removed
needs-area-labelUsed by the dotnet-issue-labeler to label those issues which couldn't be triaged automatically
on Nov 2, 2023
ghd258

ghd258 commented on Nov 17, 2023

@ghd258

Ability to run multiple Blazor server / Web assembly apps in the same document (micro-frontends)
#38128

thisisnabi

thisisnabi commented on Nov 20, 2023

@thisisnabi

Add validator for Minimal APIs can be great!

Something like this:
https://github.com/thisisnabi/Endpoints.FluentValidation

gabephudson

gabephudson commented on Dec 2, 2023

@gabephudson

I would love to see the ASP.NET session state provider work with InteractiveServer components in Blazor Web so we can share session state across RenderMode boundaries.

gabephudson

gabephudson commented on Dec 2, 2023

@gabephudson

I would like to be able to specify a "Static" RenderMode for a Blazor component/page. This is usefull when a global (higher level) RenderMode has been set to InteractiveServer.

marinasundstrom

marinasundstrom commented on Dec 2, 2023

@marinasundstrom

@gabephudson

I would like to be able to specify a "Static" RenderMode for a Blazor component/page. This is usefull when a global (higher level) RenderMode has been set to InteractiveServer.

Do you mean that you don't want any interactivity for that specific component in an otherwise interactive component tree?

What benefits or value would that bring to you?

marinasundstrom

marinasundstrom commented on Dec 2, 2023

@marinasundstrom

@ghd258

Ability to run multiple Blazor server / Web assembly apps in the same document (micro-frontends)

That would require to load multiple .NET runtimes within the browser or on the server. The server scenario seems more realistic.

I just can't see how you could even make this a great developer experience.

You are already able to host multiple components on a page, provided that they are in the same app.

davidfowl

davidfowl commented on Dec 2, 2023

@davidfowl
Member

@thisisnabi We're discussing adding data annotations validation support to minimal APIs (via filters): #46349.

For fluent validation, there are much better implementations (e.g.):

  1. https://github.com/Carl-Hugo/FluentValidation.AspNetCore.Http
  2. https://github.com/lucasteles/ValidatedModel.FluentValidation
gabephudson

gabephudson commented on Dec 2, 2023

@gabephudson

@gabephudson

I would like to be able to specify a "Static" RenderMode for a Blazor component/page. This is usefull when a global (higher level) RenderMode has been set to InteractiveServer.

Do you mean that you don't want any interactivity for that specific component in an otherwise interactive component tree?

What benefits or value would that bring to you?

Fair question; let me elaborate. This need has been requested frequently in the community as we are upgrading "classic" Blazor apps to the dotnet 8 "Blazor Web" model.

There are several reasons one would want to do this, but the most pervasive today is when one has a Blazor Web application that is primarily an SPA, so one sets "global" interactivity (typically on the Routes component, as in the MS templates), but needs certain pages to render statically.

A good example of this would be the authentication pages, which require access to the HttpContext, need to be static. This cannot currently be achieved (in a "global" interactive app) without having to intercept a path from the HttpContext in app.razor and setting the RenderMode based on the path. In fact, this "hack" is what is being used to force the authentication pages to render statically in the MS Blazor Web Global Interactive Sever template. There are many other scenarios where one would need to "overwrite" a "global RenderMode" to static.

This is important now, because most UI libraries are currently incompatible with the SSR Blazor modes, and porting applications to the Blazor Web model typically requires one to set a global interactive RenderMode for them to continue to function. We would, however, like an easier way to set pages to uses the static mode in these scenarios.

To your point, I think this is much more useful on a per page level component.

Please see this GitHub issue from Daniel Roth...
#51046

Hopefully this makes it into 9 (or sooner). I think it will really help porting applications and was surprised to find it wasn't included currently. :)

marinasundstrom

marinasundstrom commented on Dec 2, 2023

@marinasundstrom

@gabephudson Thanks for clarifying. I agree with you on the problems expressed.

Static rendering did break a lot for me. I have been using MudBlazor, and this library is relying on interactivity, and doesn't work well with SSR. It is OK when you understand the problem and how to solve it. But I think that devs who are not into the mechanics of Blazor would get frustrated.

The SSR story needs to be finished. And it in involves giving guidance to component library authors.

andrew-vdb

andrew-vdb commented on Dec 3, 2023

@andrew-vdb

Give us crystal clear answer if mvc will support aot or not

sanamhub

sanamhub commented on Dec 4, 2023

@sanamhub

Removal of jQuery (maybe bootstrap as well) and revamp of default templates for ASP.NET Core MVC

sajjadarashhh

sajjadarashhh commented on Dec 5, 2023

@sajjadarashhh

Make full support for native aot would be nice

34 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @davidfowl@marinasundstrom@captainsafia@danroth27@thisisnabi

        Issue actions

          ASP.NET Core Roadmap for .NET 9 · Issue #51834 · dotnet/aspnetcore