歡迎光臨
每天分享高質量文章

Blazor——Asp.net core的新前端框架

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,可以實現更加強大的功能

但同時也有如下缺點:

  • 所有操作都需要發往伺服器,網路不好的時候有延時
  • 所有運算都在服務端進行,伺服器端具有更大的處理壓力

綜上所述,客戶端具有更好的效率,服務端具有更少的約束和更強大的功能,對於一些對效能要求不高和網路不差的場景,服務端樣式無疑是非常合適的選擇。

參考文章:

  1. Blazor 簡介
  2. https://dotnet.microsoft.com/apps/aspnet/web-apps/client
  3. https://blazor-tutorial.net/
已同步到看一看
贊(0)

分享創造快樂