The Blazor Server Hosting Model
A web server capable of hosting an ASP.NET Core app is required. Visual Studio includes the Blazor Server App project template (blazorserverside template when using the dotnet new command).
What ended up coming out of the initial effort by Microsoft to run .Net code in the browser was some seriously good patterns utilising SignalR and Websockets.
As of ASP.Net core 3.0, Blazor Server is production ready
Blazor can run your client logic on the server. Client UI events are sent back to the server using SignalR - a real-time messaging framework. Once execution completes, the required UI changes are sent to the client and merged into the DOM
SHOW LINK - More on SignalR
Blazor server apps run your components on the server, on top of .Net core.
Blazor server then set up a real time connection with the browser, typically over a web socket using signal R
Events that then happen in the browser are sent to the server and handled by your components which then render
Blazor then keeps track of any changes that are made to the UI using a sophisticated diffing algorithm
Any changes are then sent back down to the browser and applied to the DOM
Blazor server apps use a very thin client that can run great on low bandwidth devices and in older browsers
.Net code runs on a full .Net core runtime
Normal .Net features like .Net debugging just work
Can simplify architecture by eliminating the need to stand up additional apis and endpoints
All code stays on the server so as the app grows, the application size doesn’t increase
Blazor Server has been supported since ASP.Net core 3.0 so ready for production
Blazor code executing on the server has the flexibility to do anything you would normally do on the server, such as connecting directly to a database.
For a reasonable UI experience, we recommend a sustained UI latency of 250ms or less.