Re:.NET MAUI: .NET Multi-Platform App UI
by manigandham on Wednesday April 21, 2021 @04:11AM
(#26886700)
Pages can be server-side rendered and then hydrated after load, in either mode. This makes a dramatic difference in usable latency.
Sure. But it still takes some time until the interactive part works. And it doesn't solve connectivity issues a SPA can easily handle.
Re:.NET MAUI: .NET Multi-Platform App UI
by manigandham on Wednesday April 21, 2021 @06:06AM
(#26887488)
SPA = single page application. You can make one entirely in Blazor and can host it on any static file host. Are you talking about Javascript specifically?
The difference of Blazor compared to a "classic" SPA (for example React + JSON API) is:
Blazor Server: On a broken/poor connection there is no interactivity anymore
Blazor WASM (=SPA): Keeps working when connection is lost, but everything is sooo slow
classic SPA: Keeps working with lost connection and is fast.
Last year I created a Blazor WASM app[1] to get familiar with the tech. It was a game based on the board-game from the 60's called "Acquire". Although it's using the WASM hosting model, I did use SignalR to facilitate the real-time game play between players. The "practice" mode against the crude AI is entirely WASM and can be "played" as a PWA completely offline.
I had intentions of finishing this out, but I got far enough that I learned what I needed to for now. I felt like it was pretty good considering it's probably less than 40 hours of work and I'm a mobile/desktop dev not a Web dev.
> Blazor WASM (=SPA): Keeps working when connection is lost, but everything is sooo slow
Why should it be slow? Once Blazor WASM is loaded, it doesn't need a connection to the server anymore.
But for now it doesn't work as well as a classic SPA architecture. The server-side mode works not very well on poor connections (mobile), and the client-side WASM builds are extremely slow. Especially on first load, this takes seconds.
Blazor may be well suited for Intranet apps already, where quick&cheap development is very important, and connections are fast and stable. Blazor Desktop is an example for that use case (no latency between frontend and backend).
For internet apps, something like Gmail or Instagram, it seems to be not very well suited. Especially not for websites with interactive content, for example a comment-box inside a blog. Nobody wants to wait multiple seconds until the content is responsive, or the "reconnecting to server" overlay disappears