WASM
想知道Blazor 的前世今生,需要先了解一下 WebAssembly逆皮。
WebAssembly 是由主流瀏覽器廠商組成的 W3C 社區(qū)團(tuán)體 制定的一個新的規(guī)范。
WebAssembly/wasm WebAssembly 或者 wasm 是一個可移植闽寡、體積小代兵、加載快并且兼容 Web 的全新格式。
谷歌爷狈、蘋果植影、微軟和Mozilla的工程師正合力創(chuàng)建WebAssembly(又名wasm),這是能夠運用在未來瀏覽器中承諾可帶來20倍更快性能的字節(jié)碼(bytecode)淆院。WebAssembly項目創(chuàng)造全新的字節(jié)碼(一種機(jī)器可讀的指令集何乎,能夠更快為瀏覽器加載高級語言),讓桌面和移動端瀏覽器相比較網(wǎng)頁或者應(yīng)用的整體源代碼變得更加高效土辩。
Blazor
Blazor 是一個 Web UI 框架支救,可通過 WebAssembly 在任意瀏覽器中運行 .Net 。也就說拷淘,你可以用C# 寫前端各墨。可以理解為启涯,這是一個C#語言的Vue, Angular, React贬堵。
Blazor 擁有現(xiàn)代 Web 框架具備的所有功能,包括:
- 用于構(gòu)建 composable UI 的組件模型
- 路由
- 布局
- 表格和驗證
- 依賴注入
- JavaScript 互操作
- 開發(fā)期間在瀏覽器中實時重新加載
- 服務(wù)器端渲染
- 在瀏覽器和 IDE 中全面調(diào)試 .NET
- 能夠通過 asm.js 在較早版本的(非 WebAssembly )瀏覽器上運行
Blazor GitHub 地址:https://github.com/aspnet/blazor
Blazor 文檔地址: https://blazor.net/
開發(fā)環(huán)境
- 安裝 .NET Core 2.1 SDK 或更高版本
- 安裝 Visual Studio 2017 15.7 或更高版本
- 安裝最新的 Blazor Language Services extension
創(chuàng)建項目
使用 Visual Studio结洼,新建 ASP.NET Core Web Application 項目,
如果你不喜歡 Visual Studio 黎做,也可以用命令行創(chuàng)建項目
dotnet new -i Microsoft.AspNetCore.Blazor.Templates
dotnet new blazor -o BlazorApp1
cd BlazorApp1
dotnet run
界面及代碼簡單解析
@page "/counter"
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button class="btn btn-primary" onclick="@IncrementCount">Click me</button>
@functions {
int currentCount = 0;
void IncrementCount()
{
currentCount++;
}
}
- @page 表示本頁面(組件)在路由中,如果沒有這一行代碼松忍,那么可以作為獨立組件使用蒸殿,只是不能使用 http://localhost:14747/counter 這個url 訪問。
- @functions 可以理解為一個 Controller 類(C# MVC)
- currentCount 是一個 int 類型的成員變量
- @currentCount 在HTML代碼中渲染 currentCount值
- IncrementCount() 是一個 C# 函數(shù)鸣峭,每次調(diào)用宏所, currentCount 增加1
- onclick="@IncrementCount()" 類似于javascript中的 onClick。
用過 Vue, Angular, React 或者WPF 的對于這種代碼應(yīng)該一眼就能看出來摊溶,MVVM模式爬骤。
Blazor 的現(xiàn)狀
目前Blazor 處于Alpha階段,最新版本號0.4.0(2018年6月11日)莫换。
我的感覺是霞玄,目前來說,效果已經(jīng)很驚艷拉岁,用來做后臺管理界面問題不大溃列。