Blazor——Asp.net core的新前端框架
阿新 • • 發佈:2019-05-04
基本功 ava cor 模板 vue linu img tco 對象
Blazor是微軟在Asp.net core 3.0中推出的一個前端MVVM模型,它可以利用Razor頁面引擎和C#作為腳本語言來構建WEB頁面,如下代碼簡單演示了它的基本功能:
和Angular JS和VUE的模型非常類似,Blazor 支持大多數應用所需的核心方案:
- 參數
- 事件處理
- 數據綁定
- 路由
- 依賴關系註入
- 布局
- 模板
- 級聯值
使用Blazor主要有如下好處:
- C# 語言:使用 C# 代替 JavaScript 來編寫代碼。
- .NET 生態系統:利用現有的 .NET 庫生態系統。
- 完整堆棧開發:共享服務器和客戶端邏輯。
- 快速且具有可伸縮性:.NET 旨在實現出色的性能、可靠性和安全性。
- 行業領先工具:始終高效支持 Windows、Linux 和 macOS 上的 Visual Studio。
- 穩定性和一致性:以一組穩定、功能豐富且易用的通用語言、框架和工具為基礎來進行生成。
?
客戶端模式:
運行Blazor需要C#支持,在客戶端模式下,通過WebAssembly的方式實現的:
- C# 代碼文件和 Razor 文件將被編譯為 .NET 程序集。
- 該程序集和 .NET 運行時將被下載到瀏覽器。
- Blazor 客戶端啟動 .NET 運行時並配置運行時,為應用加載程序集。?文檔對象模型 (DOM) 操作和瀏覽器 API 調用將由 Blazor 客戶端運行時通過 JavaScript 互操作處理。
?
服務端模式:
Blazor組件呈現邏輯也可以在服務端實現,通過SingalR連接傳遞UI更新:
- 處理從瀏覽器到服務器的發送 UI 事件。
- 運行組件後,將服務器發送的 UI 更新重新應用到瀏覽器。
?
兩種模式的比較:
和客戶端模式相比,服務端模式有如下有點:
- 客戶端不需要WebAssembly支持,具有更好的客戶端兼容性
- 不需要下載.net webassembly程序集,具有更小的頁面加載時間
- 可以運行完整的.net runmtime,可以實現更加強大的功能
但同時也有如下缺點:
- 所有操作都需要發往服務器,網絡不好的時候有延時
- 所有運算都在服務端進行,服務器端具有更大的處理壓力
綜上所述,客戶端具有更好的效率,服務端具有更少的約束和更強大的功能,對於一些對性能要求不高和網絡不差的場景,服務端模式無疑是非常合適的選擇。
?
參考文章:
- Blazor 簡介
- https://dotnet.microsoft.com/apps/aspnet/web-apps/client
- https://blazor-tutorial.net/
Blazor——Asp.net core的新前端框架