Blazor 0.5.0 升级及新特性介绍
前言
喜大普奔, Blazor 0.5.0 在我刷了好几遍 Github (表示功不可没)以后,终于在 2018年7月25日发布了!
[Blazor 0.5.0 Announce] (https://blogs.msdn.microsoft.com/webdev/2018/07/25/blazor-0-5-0-experimental-release-now-available/
)
此版本提供的新特性:
- 服务端 Blazor
- 启动模式修改为 ASP.NET Core 方式
- Javascript 互操作提升
- 免除 Javascript 方法预注册需求
- Javascript 中调用 .NET 方法
- 通过引用方式传递 .NET 对象到 Javascript
- 提供在任何 HTML 文件中使用 Blazor 的标签方法。
- 渲染原始 HTML
- 新的组件参数代码段
- 支持浏览器调试
Visual Studio 模板更新
要为 Visual Studio 安装 Blazor Language Service extension 的开发人员 CI 版本,请点击菜单 工具 - >选项 - >环境,将https://dotnet.myget.org/F/blazor-dev/vsix/ 添加为附加扩展库 - >扩展和更新。如下图所示:
再点击 工具 -> 扩展和更新,在左侧 更新 里面可以看到有更新的模板。点击对应的模板更新即可。
以上说明用于你的VS已经安装有旧版本模板的更新。如果你是第一次安装,请参考 Blazor 简单介绍 - C# 全栈工程师的福音 说明操作即可。
VS Code CLI 更新
CLI 的更新就比较容易了,一个命令行的事。
dotnet new -i Microsoft.AspNetCore.Blazor.Templates
新版本体验
在6月12日 ASP.NET Community Standup - Meet the Blazor team! (油管视频,不能科学上网我也帮不了你),我就对 Server-side Blazor 很感兴趣,这次出来新版本,上手第一件事就是试验这个特性。
模板新建的项目,Chrome Network 对比结果如下:
Client side Blazor:
19 Request | 3.1 MB transferred | Finish: 4.26 s | DOMContentLoaded:479ms | Load: 720 ms
访问我放在Github 的 Blazor SPA 网站
也欢迎你告诉我你的测试结果。
Server side Blazor:
10 Request | 97.5 KB transferred | Finish: 506 ms | DOMContenLoaded:384 ms | Load: 589 ms
本机测试结果。
在实际开发过程中,Client side Blazor 有时候加载时间达到 8-15 秒或更多, Loading 的过程是非常明显的。这个加载慢是目前大部分 SPA 框架的普遍问题。 有人说,只要不关闭浏览器,加载毕竟只有开始的那一次痛,忍一忍也就过去了。
除了加载速度外,Server side blazor 的另外一个优点是不需要通过 AJAX 访问API数据,由于所有过程都是在服务端进行的,可以通过 ADO.NET 或 Entity Framework 等ORM直接进行数据访问。
选择客户端Blazor 或者是服务端 Blazor,需要根据不同项目需求具体分析。