WASM
Blazor
Blazor 是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 。也就说,你可以用C# 写前端。可以理解为,这是一个C#语言的Vue, Angular, React。
Blazor 拥有现代 Web 框架具备的所有功能,包括:
- 用于构建 composable UI 的组件模型
- 路由
- 布局
- 表格和验证
- 依赖注入
- JavaScript 互操作
- 开发期间在浏览器中实时重新加载
- 服务器端渲染
- 在浏览器和 IDE 中全面调试
- 能够通过 asm.js 在较早版本的(非 WebAssembly )浏览器上运行
开发环境
- 安装 或更高版本
- 安装 Visual Studio 2017 15.7 或更高版本
- 安装最新的
创建项目
使用 Visual Studio,新建 Core Web Application 项目,
image.png
如果你不喜欢 Visual Studio ,也可以用命令行创建项目
dotnet new -i Microsoft.AspNetCore.Blazor.Templates
dotnet new blazor -o BlazorApp1
cd BlazorApp1
dotnet run
界面及代码简单解析
image.png@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 表示本页面(组件)在路由中,如果没有这一行代码,那么可以作为独立组件使用,只是不能使用 这个url 访问。
- @functions 可以理解为一个 Controller 类(C# MVC)
- currentCount 是一个 int 类型的成员变量
- @currentCount 在HTML代码中渲染 currentCount值
- IncrementCount() 是一个 C# 函数,每次调用, currentCount 增加1
- onclick="@IncrementCount()" 类似于javascript中的 onClick。
用过 Vue, Angular, React 或者WPF 的对于这种代码应该一眼就能看出来,MVVM模式。
Blazor 的现状
目前Blazor 处于Alpha阶段,最新版本号0.4.0(2018年6月11日)。
我的感觉是,目前来说,效果已经很惊艳,用来做后台管理界面问题不大。