前言
喜大普奔, Blazor 0.5.0 在我刷了好幾遍 Github (表示功不可沒)以后,終于在 2018年7月25日發(fā)布了!
[Blazor 0.5.0 Announce] (https://blogs.msdn.microsoft.com/webdev/2018/07/25/blazor-0-5-0-experimental-release-now-available/
)
此版本提供的新特性:
- 服務(wù)端 Blazor
- 啟動模式修改為 ASP.NET Core 方式
- Javascript 互操作提升
- 免除 Javascript 方法預(yù)注冊需求
- Javascript 中調(diào)用 .NET 方法
- 通過引用方式傳遞 .NET 對象到 Javascript
- 提供在任何 HTML 文件中使用 Blazor 的標(biāo)簽方法。
- 渲染原始 HTML
- 新的組件參數(shù)代碼段
- 支持瀏覽器調(diào)試
Visual Studio 模板更新
要為 Visual Studio 安裝 Blazor Language Service extension 的開發(fā)人員 CI 版本,請點擊菜單 工具 - >選項 - >環(huán)境,將https://dotnet.myget.org/F/blazor-dev/vsix/ 添加為附加擴(kuò)展庫 - >擴(kuò)展和更新。如下圖所示:
再點擊 工具 -> 擴(kuò)展和更新,在左側(cè) 更新 里面可以看到有更新的模板。點擊對應(yīng)的模板更新即可。
以上說明用于你的VS已經(jīng)安裝有舊版本模板的更新。如果你是第一次安裝,請參考 Blazor 簡單介紹 - C# 全棧工程師的福音 說明操作即可。
VS Code CLI 更新
CLI 的更新就比較容易了,一個命令行的事。
dotnet new -i Microsoft.AspNetCore.Blazor.Templates
新版本體驗
在6月12日 ASP.NET Community Standup - Meet the Blazor team! (油管視頻,不能科學(xué)上網(wǎng)我也幫不了你),我就對 Server-side Blazor 很感興趣,這次出來新版本,上手第一件事就是試驗這個特性。
模板新建的項目,Chrome Network 對比結(jié)果如下:
Client side Blazor:
19 Request | 3.1 MB transferred | Finish: 4.26 s | DOMContentLoaded:479ms | Load: 720 ms
訪問我放在Github 的 Blazor SPA 網(wǎng)站
也歡迎你告訴我你的測試結(jié)果。
Server side Blazor:
10 Request | 97.5 KB transferred | Finish: 506 ms | DOMContenLoaded:384 ms | Load: 589 ms
本機(jī)測試結(jié)果。
在實際開發(fā)過程中,Client side Blazor 有時候加載時間達(dá)到 8-15 秒或更多, Loading 的過程是非常明顯的。這個加載慢是目前大部分 SPA 框架的普遍問題。 有人說,只要不關(guān)閉瀏覽器,加載畢竟只有開始的那一次痛,忍一忍也就過去了。
除了加載速度外,Server side blazor 的另外一個優(yōu)點是不需要通過 AJAX 訪問API數(shù)據(jù),由于所有過程都是在服務(wù)端進(jìn)行的,可以通過 ADO.NET 或 Entity Framework 等ORM直接進(jìn)行數(shù)據(jù)訪問。
選擇客戶端Blazor 或者是服務(wù)端 Blazor,需要根據(jù)不同項目需求具體分析。