Aspnetcore: ⏱️ Call to action: Help shape the future for ASP.NET Core

Created on 6 Oct 2020  ·  89Comments  ·  Source: dotnet/aspnetcore

Hi. Thanks for stopping by.

We're actively working on .NET 6 planning and we would like your help with this.
In the next few weeks we are going to scan through all the issues in our backlog and identify candidates for .NET 6. To make a decision whether an issue is a good candidate or not for the upcoming release, we also look into the number of upvotes 👍 (and other reactions). To help us prioritize the issues the community feels are most important, please find the issues you want to see resolved and upvote 👍 them.

⚠️ Please don't add descriptions of what you want to see as comments in this issue. Simply find an existing of file a new issue and upvote it

call to action

Most helpful comment

Editor & debugger improvements and Hot Reload (Edit & Continue) : https://github.com/dotnet/aspnetcore/issues/5456

All 89 comments

HTML Autofocus supprt in Blazor WASM

Projet Reload on save with Kestrel like IIS Express does.

26091 Download compressed resources by default

MobileBlazorbindings in the experiment has got a good response. We hope that it can become a formal project of Microsoft as soon as possible, and can provide complete functions, so that users can focus on their own business logic, especially the hybrid applications. It seems to have a chance to surpass electron, more streamlined but more powerful.

Editor & debugger improvements and Hot Reload (Edit & Continue) : https://github.com/dotnet/aspnetcore/issues/5456

11558

Streaming API support to MVC
Example: https://github.com/dotnet/aspnetcore/issues/4833#issuecomment-298857229

public class MyStreamingApi : Controller
{
     [HttpGet("/tweets")]
     [Streaming]
     public async IAsyncEnumerable<Tweet> Get()
     {
         while (var tweet = await GetOneTweet())
         { 
             yield return tweet;
         }
     }
}

All this is great, folks. Please make sure to upvote on the related issues, rather than linking issues here. That's what we're going to look at after all.

@mkArtakMSFT #11558 is locked, we can't to upvote.

Feature Request: Drop-in component for ASP Identity Administration, Portals, UI, SSO, Claims, AD-Sync, Token, Multi.Tenant Management so that the Visual Studio templates don't require commercial licensed 3rd party components.

I have been watching/waiting few yrs. patiently, however some recent changes have forced me to request -- Microsoft revisit this for their developer community, keeping in mind some of the pricing out there compares to the salaries of 10 to 15 developers in Bangladesh, Vietnam, India, Philippines etc.

Core & Basic need, yet very complex and critical.

There's a void in .NET native drop-in solution, unlike the Java, PHP Stacks etc, where there are many native drop in Identity Administration & Management Frameworks options that are leveraged across all their platforms seamlessly by developers, for e.g. the J2EE Pluggable Identity Management Framework or JSR 168 or JSR 286 or JSR-351 or JSR-375.

Why is this important? because using Java or PHP, it has allowed easy, clear, core and basic functionalities in those native stacks. As a result if you look JSR 168 or JSR 286 or JSR-351 or JSR-375 Multi-tenants, Group to roles, or to claims vice versa is so easy vs. NET , mobile devices, portals, they all work seamlessly and cohesively with security fixes managed by either IBM or SalesForce or Oracle or Red Hat etc. This is enables developer to be productive right out of the gate.

In .Net there is void/very limited support, always requiring a combination of 3rd parties as a barrier to entry & adoption of ASP app. This is non-trivial for developers and security vulnerability that requires the attention of Microsoft Experts.

Example: We have private information sharing site non OSS for the community almost free (pay if you want), and when we started with web forms, then Simple Membership, the Identity, Identity 2 ASP MVC we had implement much of it on top of these from scratch, when we moved to .NET Core it was another effort. Besides the development there was a lot of confusion on the internal concepts and how they now meant new things. Roles, Claims, Federation, SAML then SAML 2.0 and then Open ID 2.

Describe the solution you'd like

  • A drop-in is extensible solution that supports ASP Identity eco-system, Administration, UI, SSO, Token, Multi-tenant Management
  • A configuration section to turn on-off the various features.
  • Embedded into VS Templates (remove Identity Server, use native MS option etc.)
  • Allow-Easy AD Active Directory Integration
  • User Defined/Created Fields UDF from the Admin level Support.
  • The current options and the pricing eliminate many of the existing applications from continuing usage on the .NET stack without extensive retooling or completely abandoning the MS framework.
  • SAML2/CAS per @tbonham
  • Allow template option Configuration.MultiTenancy.IsEnabled = true; Global DataFilter for Tenant entities

Its high time MS address this core gate-keeping feature!!

  • [ ] Controller/API DDOS throttling support
  • [ ] Login Controller/API Captcha Anti Spambot support
  • [ ] Timeouts are easily by passed using Singal-R and there's no way to force anonymous connections to disconnect
  • [ ] No way to handle anonymous chats on public website. For e.g. if _Web User is Surfing/browsing for help or FAQ on product/chat_ on ASP website with SignalR, we have to create a duct-taped solution for this, there is no way to identify them uniquely to create a chat stream/session unless they login.

@mkArtakMSFT #11558 is locked, we can't to upvote.

@expcat I've reopened it!

@papyr please upvote to the related issues and if you can't find such, create new issues for each one separately. That way we can actually track these requests. Otherwise many asks will be lost / forgotten.

Built-in admin panel template and Vue integration.

@mrkarMSFT thanks for the idea 👍 but they keep closing my feature requests and locking them, so its not able to upvote!

Can you please unlock 26594 to allow voting on the feature please!

Built-in admin panel template and Vue integration.

Do you mean Like Skoruba.Admin then upvote https://github.com/dotnet/aspnetcore/issues/26594

RFC 7692 (WebSocket per-message compression) for SignalR. It seems this depends on runtime#20004 but it seems relevant in this context. There was an old issue referencing this, but it is now closed and I could find no equivalent open issue here, so I am recommending that people upvote on the runtime issue.

blazor wasm-to-wasm interop without javascript (WASI) [https://github.com/WebAssembly/interface-types/blob/master/proposals/interface-types/Explainer.md]

please provide a way to improve the user experience for blazor wasm load progress, progress bar and/or filename currently downloading.

project template blazor server/wasm using fast (components) as a user interface as quick start/example

please add support for sftp

"Proposal: View Component Slots" is locked

Provide a built-in or otherwise framework supplied mechanism for View Components, when rendered via a tag helper, to render user-supplied child content that can be injected into the View Component's view template in pre-defined locations

https://github.com/dotnet/aspnetcore/issues/4901

In-house (Microsoft made) identity server and other security modules

I can't find an issue regarding fast dev loop in general that is not mentioning blazor, I would like the whole dev experience would be much faster

Might it be a good idea to create a new call to action with comments disabled?
@mkArtakMSFT

@mrpmorris @mkArtakMSFT You should seriously consider abandoning the whole call-to-action thing. Choosing what issues need solving based on community votes is why I never leave MS product feedback/bug reports anymore - if you don't have a social following or plenty of co-workers to upvote your issues they just languish and eventually get closed.

My suggestion would be to select topics / general directions that the project can move in, let people pick from those, and let that guide part of the overall effort, without making specific commitments to specific issues.

It's a non-binding advisory vote :)

@mrkarMSFT thanks for the idea 👍 but they keep closing my feature requests and locking them, so its not able to upvote!

Can you please unlock 26594 to allow voting on the feature please!

@papyr looking into the issue I believe it's not something aligned with our long-term vision. And that's the reason why @blowdart has closed that issue. Given that, it seems we won't be able to prioritize that one for .NET 6 for sure.

@3GDXC you've listed multiple feature requests above. Please make sure you file separate issues for each one so we can track these better.

Might it be a good idea to create a new call to action with comments disabled?
@mkArtakMSFT

I was considering that originally, but didn't want to mute people. If this continues, I will probably lock this conversation.

@mrpmorris @mkArtakMSFT You should seriously consider abandoning the whole call-to-action thing. Choosing what issues need solving based on community votes is why I never leave MS product feedback/bug reports anymore - if you don't have a social following or plenty of co-workers to upvote your issues they just languish and eventually get closed.

My suggestion would be to select topics / general directions that the project can move in, let people pick from those, and let that guide part of the overall effort, without making specific commitments to specific issues.

@mnmr We're trying to get the community be vocal about what they want. This and what you suggest are not conflicting efforts, rather extending each other. Eventually, after we are done with the first phase of our planning, we will put together a high-level list of things we will consider for .NET 6. This is what we've done for Blazor during last few major releases (including the 5.0 which is finalizing now).

AoT compilation #5466

AOT combined with browser task based parallelism would destroy JS.

.NET WebAssembly support of task based parallelism. #40619
https://github.com/dotnet/runtime/issues/40619

Make it stupid simple to debug Blazor Server apps that throw circuit errors stating only to turn on detailed exceptions, but when done, don't give any better information after the fact. #26705

Make it stupid simple to debug Blazor Server apps that throw circuit errors stating only to turn on detailed exceptions, but when done, don't give any better information after the fact.

@anthcool please file an issue for this. We will triage it and include in our planning.

Make it stupid simple to debug Blazor Server apps that throw circuit errors stating only to turn on detailed exceptions, but when done, don't give any better information after the fact.

@anthcool please file an issue for this. We will triage it and include in our planning.

Just added one. Thanks!

I think it'd be really useful to have built-in support for Pub/Sub, or at least something close to .NET events. Today scenarios like, having component B (child) and component A (parent), notify components C...N (not child of A), are not that easy to do. Technically, you need to come up with a hack.

This issue was closed and still there is no solution #26450. It has been also mentioned in here and here. Since .NET 5 RC1 was released, Blazor WASM stopped working with Azure.

I think it'd be really useful to have built-in support for Pub/Sub, or at least something close to .NET events. Today scenarios like, having component B (child) and component A (parent), notify components C...N (not child of A), are not that easy to do. Technically, you need to come up with a hack.

@ylr-research please file a separate issue to continue the conversation there.

Automatic module separation and lazy loading.

Render conditional closing and opening tag https://github.com/dotnet/aspnetcore/issues/26368. With out most of the excellent layouts are not possible to be rendered in Blazor

Add all the properties of HttpMessageHandler on the client side. At present, it has lots of missing code and we are unable to use many of them

26487: New WebHostFactory option to directly call a specific testing startup class when working with integration tests

Use of InMemoryCache in Blazor wasm

Support for feature folders either out of the box or in a nuget. Instead of the typical messy:

Arranging by types:

Controllers
    CustomerController
    InvoiceController
    SmsController
    ...hundreds of files
Views
    CustomerUpdate.cshtml
    CustomerDelete.cshtml
    InvoiceView.cshtml
    SmsSend.cshtml
    ...hundreds of files

Arranging by features instead:

Features
    Sms
        ...relevant files here
    Customers
        ...relevant files here
    Invoice
        ...relevant files here

This is a more logical approach to structuring any kind of application whether using ASP.NET Core, .NET Core, something totally different, anyway. Read more about it here: https://dev.to/jamesmh/the-life-changing-and-time-saving-magic-of-feature-focused-code-organization-1708

This would work for MVC, Razor Pages, Rest APIs.

ASP.NET Core MVC - Razor - Nested Partial and Simple Partial Child Content

https://github.com/dotnet/aspnetcore/issues/24470

Support older Edge (with polyfills?)
https://github.com/dotnet/aspnetcore/issues/26475

Hi. Cascade state for parent child components.

SASS as first-class citizen in the toolchain (recognition of variables, intellisense across all imports, and compilation)

Direct support for hosting a Blazor app on a desktop, with access to local peripherals and .NET Core on the client. WASM is great but if we have the full desktop available it makes things like point-of-sale functionality to local devices that much easier

not sure when you will fix this for .Net core
https://github.com/dotnet/runtime/issues/29935

Drag & drop. Would be nice to finish McKinnon's work: https://github.com/dotnet/aspnetcore/issues/18754

Bedrock Futures: #15005

Cascade Components - Detect parent component automatically

Official support for HTTP/3 (QUIC) with support on Azure services ideally ;)

Reduce DLL size/Remove dependencies.

One thing that's been bugging me lately is reducing download size see #26780
It's just a little thing, but removing dependencies makes all the difference 😉

In the future perhaps you could AOT compile DLL files into WASM files?

Improve prerendering #26794 _(Avoid absolute classic FOOC effect)_

The concept needed here is called SSR client side hydradation. Examples in js SSR land explained in the first paragraph of the links below:

Issue #26802 should probably be merged into the one mentioned above.

Official Microsoft Design components for Blazor: #11229
It is already the most voted Feature in the Backlog with 122 👍 upvotes

Built-in way to get a child or parent component reference in Blazor: https://github.com/dotnet/aspnetcore/issues/26826

SSRS support: #362, #1528, #1764, #12666, #22304

All issues have been closed and locked, so cannot be upvoted.

Currently 1005 votes on the feedback site, with no update since 2018:
develop a SSRS ReportViewer for ASP.NET Core – Customer Feedback for ACE Community Tooling

Responsive Menu Control for Blazor in .NET 6 #26917

MAUI (UI design) Studio for .NET 6 #26918

I'd like more app-level control over rendering https://github.com/dotnet/aspnetcore/issues/26016

@danroth27 what happened with the issue of Blazor being blocked by some types of router? Other than providing a manual workaround is anything being done to work around this? The tickets won't allow new comments.

https://github.com/dotnet/aspnetcore/issues/19511

https://github.com/dotnet/aspnetcore/issues/19552

Static site generator #26929

@mrpmorris If you're in an environment where files with "dll" extensions are simply blocked, then we've provided manual steps for changing the extension. We haven't identified any additional work in this area currently. If you think we need to do more, please file an issue with your suggestion and we'll take a look.

Good morning, I hope I am not mistaken but I have noticed that the Timer () is
slows down when you switch tabs in the browser.
Make a basic example of the possible problems and this is my repository link (https://github.com/PercyLeon123/Cronometro).
To detail what happened, carry out some tests and record it.

Basic and simple example, slows down 10 minutes https://youtu.be/jHLVCSGXPMs
Example with more code, it slows down 1 minute and 50 seconds https://youtu.be/YhEVTVB2ai0
if you do not change the tab the timer does not slow down https://youtu.be/2NI0NhRLdFY

In the description I detail what happened. I'm Percy León from Lima-Peru
Contact me Linkedin
Greetings!

Thanks for reporting this, @PercyLeon123.
Can you please file a new issue to track this separately.

Most of the feature requests seem to be Blazor related. While this is understandable due to it being a new technology, with respect to my fellow Blazor devs there are still those of us who don't use Blazor for various reasons that are not important. I hope that development time is not biased too much in favour of that technology to the detriment of core ASP.NET features that would help everyone due to their being core features. Here are the top features according to upvotes:

  • Add support for LetsEncrypt (LettuceEncrypt still needs DNS renewal) #4712
  • Add HTTP/3 Support #15271
  • Add Streaming API Support to MVC #11558
  • Add HTTP/2: Server Push Support #4249
  • Define a JSON schema for appsettings.json #2867
  • Async suffix for controller action names will be trimmed by default #8998
  • ProblemDetails is not returned for 404 NotFound and 500 #4953
  • Update ASP.NET Core to use C# 8's nullable reference types #5680
  • Add IAsyncStartup and IAsyncStartupFilter to support async startup classes and filters #5897
  • ConfigureTestContainer not working with GenericHost #14907
  • Bedrock Endgame #15005
  • Add support for content security policy #6001
  • Support the new Forwarded header (RFC 7239) #5978
  • Make it easy to configure a host/scheme for absolute URLs with LinkGenerator #14192
  • New WebHostFactory option to directly call a specific testing startup class when working with integration tests #26487
  • JsonPatchDocument should use System.Text.Json in ASP.NET vNext #24333
  • Separate type/parsing validation error handling from business logic validation (400 vs 422) #25732

You can see a full list of non-Blazor issues here.

Feature Request: Drop-in component for ASP Identity Administration, Portals, UI, SSO, Claims, AD-Sync, Token, Multi.Tenant Management so that the Visual Studio templates don't require commercial licensed 3rd party components.

I have been watching/waiting few yrs. patiently, however some recent changes have forced me to request -- Microsoft revisit this for their developer community, keeping in mind some of the pricing out there compares to the salaries of 10 to 15 developers in Bangladesh, Vietnam, India, Philippines etc.

Core & Basic need, yet very complex and critical.

There's a void in .NET native drop-in solution, unlike the Java, PHP Stacks etc, where there are many native drop in Identity Administration & Management Frameworks options that are leveraged across all their platforms seamlessly by developers, for e.g. the J2EE Pluggable Identity Management Framework or JSR 168 or JSR 286 or JSR-351 or JSR-375.

Why is this important? because using Java or PHP, it has allowed easy, clear, core and basic functionalities in those native stacks. As a result if you look JSR 168 or JSR 286 or JSR-351 or JSR-375 Multi-tenants, Group to roles, or to claims vice versa is so easy vs. NET , mobile devices, portals, they all work seamlessly and cohesively with security fixes managed by either IBM or SalesForce or Oracle or Red Hat etc. This is enables developer to be productive right out of the gate.

In .Net there is void/very limited support, always requiring a combination of 3rd parties as a barrier to entry & adoption of ASP app. This is non-trivial for developers and security vulnerability that requires the attention of Microsoft Experts.

Example: We have private information sharing site non OSS for the community almost free (pay if you want), and when we started with web forms, then Simple Membership, the Identity, Identity 2 ASP MVC we had implement much of it on top of these from scratch, when we moved to .NET Core it was another effort. Besides the development there was a lot of confusion on the internal concepts and how they now meant new things. Roles, Claims, Federation, SAML then SAML 2.0 and then Open ID 2.

Describe the solution you'd like

  • A drop-in is extensible solution that supports ASP Identity eco-system, Administration, UI, SSO, Token, Multi-tenant Management
  • A configuration section to turn on-off the various features.
  • Embedded into VS Templates (remove Identity Server, use native MS option etc.)
  • Allow-Easy AD Active Directory Integration
  • User Defined/Created Fields UDF from the Admin level Support.
  • The current options and the pricing eliminate many of the existing applications from continuing usage on the .NET stack without extensive retooling or completely abandoning the MS framework.

Its high time MS address this core gate-keeping feature!!

We need SAML2 and CAS add to.

Auto Upgrade option PartialViews to ViewComponents Lots of legacy code is hung in the partials, we need to port that to the new ViewComponents or TagHelpersapps

Concurrent frameworks can support a wider range of architectures (this list might not be exhaustive):

  • NodeJs support : x86 / x64 / arm32 / arm64 / ppc64le / ppc64be / x390x
  • OpenJDK support : x86 / x64 / arm32 / arm64 / ppc32 / ppc64le / s390x / sparcv9
  • AspNet core support : x86 / x64 / arm32 / arm64

please add support to more architectures.

Thanks for the feedback @YohanSciubukgian. Our plan is to support most/all mainline OSes and chip combinations. We now have that. At present, the only one we're really missing is Linux x86 (32-bit). That comes up quite seldom. The additional ones that you've mentioned come up even less. The community is free to add the more niche configurations that you'd mention, but I'm doubtful that will happen. They don't, AFAICT, have any practical commercial value.

Personally, I'd much rather we added support for FreeBSD (on x64) than PPC. I suspect that would benefit an order of magnitude more users (if not much more).

Also note that we're currently putting a fair bit of effort into supporting Apple Silicon and Arm64 (generally). Just supporting new chips takes a lot of investment. Context: https://github.com/dotnet/runtime/issues/43313 and https://devblogs.microsoft.com/dotnet/arm64-performance-in-net-5/. It is much better to focus on doing a great job for mainline chips and leave the legacy/hobbyist chips for other platforms to support.

There is a company working on MIPS support for .NET Core currently: https://github.com/dotnet/runtime/issues/38069.

This HN post is super related: https://news.ycombinator.com/item?id=24640545.

Thanks for the feedback @YohanSciubukgian. Our plan is to support most/all mainline OSes and chip combinations. We now have that. At present, the only one we're really missing is Linux x86 (32-bit). That comes up quite seldom. The additional ones that you've mentioned come up even less. The community is free to add the more niche configurations that you'd mention, but I'm doubtful that will happen. They don't, AFAICT, have any practical commercial value.

Personally, I'd much rather we added support for FreeBSD (on x64) than PPC. I suspect that would benefit an order of magnitude more users (if not much more).

Also note that we're currently putting a fair bit of effort into supporting Apple Silicon and Arm64 (generally). Just supporting new chips takes a lot of investment. Context: dotnet/runtime#43313 and https://devblogs.microsoft.com/dotnet/arm64-performance-in-net-5/. It is much better to focus on doing a great job for mainline chips and leave the legacy/hobbyist chips for other platforms to support.

There is a company working on MIPS support for .NET Core currently: dotnet/runtime#38069.

This HN post is super related: https://news.ycombinator.com/item?id=24640545.

Thanks for your answer. I don't know if it's possible but as you had merged mono in dotnet/runtime repo for .net 5, I had in mind to expose existing architectures initially developped for mono but with official Microsoft support.

Great question. The Mono in dotnet/runtime is targeted at Android, iOS, and wasm.

Built in Identity Server #27053

IdentityServer Token Manager

WebSocket performance improvement

Multithreading in web assembly
https://github.com/dotnet/runtime/issues/40619

JS isolation improvement - Colocate CS, CSS and JS files

https://github.com/dotnet/aspnetcore/issues/26145

@mahdisml please file an issue with relevant details.

Enterprise UI Components for Blazor

Publish Blazor Server or WASM to iOS/Android #27252

I can't find an issue regarding fast dev loop in general that is not mentioning blazor, I would like the whole dev experience would be much faster

@valeriob, here you go: https://github.com/dotnet/aspnetcore/issues/18486

Compensating transactions are a very tricky part of micro services development. Can we come up with some sort of high level framework that will facilitate it. The lower level implementation say for example an implementation with redis or RabbitMQ can then be provided my community to augment it.

better startup structure. now "ConfigureServices" and "Configure" is complicate for new asp.net developer.

Blazor InputSelect support for multiple attribute. https://github.com/dotnet/aspnetcore/issues/5519

Decuple the SignInManagerand UserManager in Identity.
#22597

Dynamically creating and adding components.
Angular ComponentFactoryResolver alternative.

@Component({
 selector: 'app-root',
 template: `
 <template #parent></template>
 <button (click)="createChild()">Create Child</button> 
 `,
})
export class ParentComponent {
 @ViewChild('parent', { read: ViewContainerRef }) container;

 constructor(private resolver: ComponentFactoryResolver) {}

 createChild() {
 this.container.clear();
 const factory: ComponentFactory = this.resolver.resolveComponentFactory(ChildComponent);
 this.componentRef: ComponentRef = this.container.createComponent(factory);
 }
}
Was this page helpful?
0 / 5 - 0 ratings