-
Notifications
You must be signed in to change notification settings - Fork 10.2k
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. |
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. |
Got my first OutOfMemoryException in development machine with 32 GB memory in blazor interactive server. While it's a joy to program in Blazor, the architecture is so wrong that its not scalable, how can this be recommended approach to build UI in aspnet core beyond my understanding User's rendered data in server's in memory is so wrong Normal Web Application Blazor Interactive Server Of course you have to google why blazor not releasing memory of page that already lose its connection What is the use case for blazor interactive server? to create fast toy level application? oh yea, just like aspnet webform, silverlight, i need to port this again to whats work |
I'd expect an average webserver to handle thousands to tens of thousands of concurrent users in a typical Blazor Server application. If you've been able to out-of-memory with a 100-row grid, something is spectacularly wrong, though unfortunately I can't guess what exactly the cause is. If you have a simple repro example we'd be happy to take a look and try to understand it. But for any follow-up please file a separate issue so we can keep this one on its original subject. |
With 2GB of RAM on an Azure Web App, I actually manage hundreds of thousands of records in many tables with many joins and many views for about 80 concurrent users through a Blazor Server app. I have been using Blazor daily in production for 5 years. |
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: