Blaozr 是由微軟2019推出得一種使用.NET 生成交互式客戶端得Web UI框架。
點擊觀看視頻教程
該框架利用C#代替JavaScript進行創建UI , 並且可以共享.NET編寫的服務端和客戶端業務代碼。
優勢:
1 使用C#代替JavaScript編寫代碼, 意味着, 如果你使用的是.Net進行編寫服務端(例:ASP.NET Core WebApi) 或者是 客戶端(WPF/Winform),
那么可以共享應用之前的邏輯, 無需針對Web再編寫其他的業務代碼。
2 始終高效支持 Windows、Linux 和 macOS 上的 Visual Studio。
3 利用現有的 .NET 庫生態系統。
瀏覽器要求:
Blazor WebAssembly
Microsoft Edge
Mozilla Firefox
Google Chrome,包括 Android
Safari,包括 iOS 當前
Microsoft Internet Explorer 不支持 WebAssembly。
Blazor 服務器
Microsoft Edge
Mozilla Firefox
Google Chrome,包括 Android 當
Safari,包括 iOS
托管模型
Blazor WebAssembly
Blazor 的主要托管模型在 WebAssembly 上的瀏覽器中運行客戶端。 將 Blazor 應用、其依賴項以及 .NET 運行時下載到瀏覽器。 應用將在瀏覽器線程中直接執行。
UI 更新和事件處理在同一進程中進行。 應用資產作為靜態文件部署到可為客戶端提供靜態內容的 Web 服務器或服務中。
1.模板包括 blazor.webassembly.js 腳本,可處理以下任務:
- 下載 .NET 運行時、應用和應用依賴項。
- 初始化運行應用的運行時。
2.Blazor WebAssembly 托管模型具有以下優點:
- 沒有 .NET 服務器端依賴項。 應用下載到客戶端后即可正常運行。
- 可充分利用客戶端資源和功能。
- 工作可從服務器轉移到客戶端。
- 無需 ASP.NET Core Web 服務器即可托管應用。 無服務器部署方案可行(例如通過 CDN 為應用提供服務的方案)。
3.Blazor WebAssembly 托管具有以下缺點:
- 應用僅可使用瀏覽器功能。
- 需要可用的客戶端硬件和軟件(例如 WebAssembly 支持)。
- 下載項大小較大,應用加載耗時較長。
- .NET 運行時和工具支持不夠完善。 例如,.NET Standard 支持和調試方面存在限制。
Blazor 托管應用模型支持 Docker 容器。 在 Visual Studio 中右鍵單擊 Server 項目,然后選擇“添加” > “Docker 支持” 。
Blazor Server
使用 Blazor 服務器托管模型可從 ASP.NET Core 應用中在服務器上執行應用。 UI 更新、事件處理和 JavaScript 調用是通過 SignalR 連接進行處理。
1.Blazor 服務器托管模型具有以下優點:
- 下載項大小明顯小於 Blazor WebAssembly 應用,且應用加載速度快得多。
- 應用可充分利用服務器功能,包括使用任何與 .NET Core 兼容的 API。
- 服務器上的 .NET Core 用於運行應用,因此調試等現有 .NET 工具可按預期正常工作。
- 支持瘦客戶端。 例如,Blazor 服務器應用適用於不支持 WebAssembly 的瀏覽器以及資源受限的設備。
- 應用的 .NET/C# 代碼庫(其中包括應用的組件代碼)不適用於客戶端。
2.Blazor 服務器托管具有以下缺點:
- 通常延遲較高。 每次用戶交互都涉及到網絡躍點。
- 不支持脫機工作。 如果客戶端連接失敗,應用會停止工作。
- 如果具有多名用戶,則應用擴縮性存在挑戰。 服務器必須管理多個客戶端連接並處理客戶端狀態。
- 需要 ASP.NET Core 服務器為應用提供服務。 無服務器部署方案不可行(例如通過 CDN 為應用提供服務的方案)。
Blazor Server 應用模型支持 Docker 容器。 在 Visual Studio 中右鍵單擊該項目並選擇“添加” > “Docker 支持” 。