dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.45k stars 10.03k forks source link

Blazor WASM - Built-in State Management for Blazor #31948

Open BenHayat opened 3 years ago

BenHayat commented 3 years ago

Is your feature request related to a problem? Please describe.

With any large app, it comes the responsibility to manage the state of Data where the entire app can work in the most seamless way. In many cases we have "Shareable" data that can be updated at different parts of the app, and once the data is changed, certain events could get triggered and UI must be updated automatically.

Describe the solution you'd like

We could roll our own, but this is not a trivial task and requires proper engineering. Next option is to use third party, but firstly there is no guarantee development is continued, as some of them have been dropped or secondly it could belong to a different JS framework that does not fit Blazor directly.

My suggestion/request/question is, is there any plan to have a built-in Data State Management within Blazor WASM where we can count on being engineered and maintained by Blazor team?

Thanks!

Additional context

Add any other context or screenshots about the feature request here.

javiercn commented 3 years ago

@BenHayat thanks for contacting us.

There are already several libraries in the Blazor ecosystem that tackle this problem, is there any reason why those don't work for you?

javiercn commented 3 years ago

Here are some popular options: https://github.com/torhovland/blazor-redux https://github.com/mrpmorris/fluxor https://github.com/TimeWarpEngineering/blazor-state https://dworthen.github.io/BlazorRealm/docs/quickstart.html https://github.com/jspuij/Cortex.Net

I would suggest you check https://github.com/AdrienTorris/awesome-blazor for more options and details on some of them.

BenHayat commented 3 years ago

@BenHayat thanks for contacting us.

There are already several libraries in the Blazor ecosystem that tackle this problem, is there any reason why those don't work for you?

We need to build an enterprise grade app for our client that require all parts of app to be supported by reputable companies. For example we have chosen Telerik as our UI components with paid license. The client won't accept an important library that was just done by a single person where we can not rely on the ongoing support and development. As mentioned, if you look at JS frameworks, these libraries are generally done by reputable companies. Blazor-Redux hasn't even been updated for over 2 years. and the rest are more like "Experimental".

State management for Blazor should be done according to Blazor framework and by Blazor team, IMHO.

ghost commented 3 years ago

We've moved this issue to the Backlog milestone. This means that it is not going to be worked on for the coming release. We will reassess the backlog following the current release and consider this item at that time. To learn more about our issue management process and to have better expectation regarding different types of issues you can read our Triage Process.

BenHayat commented 3 years ago

This means that it is not going to be worked on for the coming release.

Thanks; Quick question. When you say "Coming release", do you mean .Net 6 or Preview 4? Or do you mean .Net 7?

zc0rp10 commented 1 year ago

Been two years since last update on this issue. What are the internal thoughts by the Blazor-team on this issue now and going forward? Is the StateContainer service mentioned in the documentation to be considered "the blazor way" of handling state in our applications, as far as what will be provided by the framework at least - with people of course being free to go in another direction if they so see fit.

Out of the popular options mentioned above only Fluxor and Blazor-State is still receiving any new commit, and those are only really coming from the respective repo owners. Neither one, at least as far as you can tell, seem to have been sponsored or used by any larger reputable companies that would go along way to reassure other users about the longevity of the projects beyond their main contributor.