-
Notifications
You must be signed in to change notification settings - Fork 10.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
APIs for components to persist state across circuits manually #30344
Comments
Thanks for contacting us. |
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. |
@javiercn should this be closed in favor of the linked issue ? We now have both on the .NET 7 milestone |
@mkArtakMSFT this ticket is different in that it includes scope explicitly excluded from the other ticket. This ticket will enable both seamless scale out and transparent user-friendly failovers on application update deployments. These are 2 huge features that will finally enable Blazor Server to be used for mid and high-traffic consumer-facing applications. Thank to this ticket, many people will use Azure for their consumer applications considering the built-in SignalR service and the auto-scaling capabilities. Considering the huge productivity boost provided by Blazor Server I believe this ticket will position Blazor Server and Azure as the leading Web Development stack. With this regard, shipping this in .NET 7 would make the timing perfect. Generally speaking, this ticket will essentially allow users to treat the servers hosting Blazor Server Apps like stateless servers even though Blazor Server itself would remain stateful. This enables the two aforementioned use cases (which are major ones) and will also simplify a lot of other essential things from an infrastructure management / devops perspective. This ticket is awaited by a lot of people as can be seen in the popularity of this reddit thread. |
I, too, was wondering what the status of this issue is now that .NET8 has been released. I see that it's part of the Complete Blazor Web pillar but it's unclear what that means. It would be ideal to get this formalized and part of the next major release. 👍🙏 |
Thanks for contacting us. We're moving this issue to the |
Thank you @mkArtakMSFT, @SteveSandersonMS, @danroth27, and team for all your efforts out there! 🙏 Happy Holidays 🎅⛄❄ |
No. Just popped in here to see if there was any development before giving it another shot. At the moment, I don't need to preserve forms, I'm just looking to reload the page after a redeploy rather than getting stuck on the "reload" overlay. |
I think Blazor Server is currently unusable because of this. Very much regret building much of our internal application with it; especially with the insane length of time this has taken to resolve, over 3 years with no traction or progress whatsoever. |
Why are we moving this to .net 10? |
Hi @KonnectSalon. Unfortunately, we no longer believe we have the time and resources available to deliver this feature for .NET 9. You can see the full roadmap of what we do plan to deliver for .NET 9 here: https://aka.ms/aspnet/roadmap. |
this is also our biggest complaints that our customers have, the reloads/disconnects of blazor server. |
Now I think it is more of a problem with HTML-over-the-wire and web sockets in general; I think Blazor Server sounded like a good idea but ultimately should not be used in production. |
The reload/disconnect situations could be managed via javascript. |
What is great about traditional MVC applications is that you don't have to worry at all about only using AJAX or whatever only on certain low-traffic pages because the majority of the computation for rendering and animations is always done on the client. I think web sockets basically cap the usage of your application at about ~100 users, which is fine for some small internal applications but is a severe limitation that I think people should be warned about. Even at low usage, I think the cost and user experience will be worse than if the app was developed using more traditional front-end JS; maybe only viable for MVPs or enterprise system where usability is not of high-importance. |
In the case of my Blazor application deployed to Azure, I have processed closing in on $15K of volume via Stripe, PayPal, and Coinbase Commerce. This seems pretty production-ready to me. I use Azure SignalR to remove the WebSocket connection challenges. Everything has always been lightning fast and the bottleneck for me is SQL which has been a huge learning lesson for me during this time. From my experience of actually deploying a Blazor application, everything is pretty awesome and the runtime works incredibly well. It's the socket state/management that has been the sore spot, particularly with iOS devices which disconnect when you simply alt-tab away. 💥😢 |
care to share your interception logic? |
Hi, real word scenario(even worse) with IOS 17.6: <InputFile accept="image/*" capture="camera" OnChange.... />
If this is new behavior with ios, so capturing images are broken.
|
@yablos That does sound like a problem but is not exactly the same as this issue. Would you mind filing it as a new issue? I can't guarantee this is something Blazor can control but either way having an issue makes it possible to track. |
This is tracking the next piece of #27576. (Pointing out that this issue has additional 20 reactions)
We want to provide the ability for circuits to be paused and stored in "permanent" storage to make possible certain scenarios:
Our goal is that circuits stored this way can be restored in a similar fashion as when they are restored after prerendering.
Important note
This is not a suggestion that circuits could automatically be persisted in their entirety. In general that's not possible as much of the system state is not even serializable, and we don't require developers only to work with serializable data. Rather, what we may be able to do here is provide some APIs by which you can load and save state in your components, so that if a user loses their circuit, we can reload that manually-saved state in the new circuit. It could not be a global or automatic thing.
The text was updated successfully, but these errors were encountered: