Implementation
Overview
We are including information about the implementation of the application for those who might be interested in contributing.
We implemented the eClinical MDR App as a Microsoft Blazor Server App that runs server-side inside Asp.Net.Core that handles user interactions over a Signal-R connection.
What is a Blazor Server App?
According to Microsoft:
The Blazor Server hosting model offers several benefits:
-
The download size is significantly smaller than a Blazor WebAssembly app, and the app loads much faster.
-
The app takes full advantage of server capabilities, including the use of .NET Core APIs.
-
.NET Core on the server is used to run the app, so existing .NET tooling, such as debugging, works as expected.
-
Thin clients are supported. For example, Blazor Server apps work with browsers that don't support WebAssembly and on resource-constrained devices.
-
.The app's .NET/C# code base, including the app's component code, isn't served to clients
The Blazor Server hosting model has the following limitations:
-
Higher latency usually exists. Every user interaction involves a network hop.
-
There's no offline support. If the client connection fails, the app stops working.
-
Scaling apps with many users requires server resources to handle multiple client connections and client state.
-
An ASP.NET Core server is required to serve the app. Serverless deployment scenarios aren't possible, such as serving the app from a Content Delivery Network (CDN).
Why We Choose The Blazor Server Hosting Model
We selected the Blazor Server App hosting model for the following reasons:
-
A fast app is vital to user satisfaction.
-
It takes full advantage of server capabilities
-
Tooling works as expected
-
Code is not served to clients
-
It's a more mature hosting model than Blazor WASM Apps