在此最新的Blazor版本中,我们很高兴地宣布Blazor现已正式发布! Blazor不再处于试验阶段,我们致力于将其作为受支持的Web UI框架进行发布,包括支持在WebAssembly的浏览器中运行客户端。
一年多前,我们启动了Blazor实验项目,其目标是基于.NET和WebAssembly构建客户端Web UI框架。 当时Blazor仅仅是一个原型,关于在浏览器中运行.NET的可行性存在很多悬而未决的问题。 从那时起,我们已经发布了九个实验性Blazor版本,解决了各种问题,包括组件模型,数据绑定,事件处理,路由,布局,应用程序大小,托管模型,调试和工具。 现在,我们认为Blazor已准备好迈出下一步。
简化命名和版本控制
一段时间以来,我们在某些情况下使用术语“ 剃刀组件” ,而在其他情况下使用Blazor 。 事实证明,这令人困惑,因此,在获得社区的广泛反馈之后,我们决定删除名称ASP.NET Core Razor Components ,而改名为Server-side Blazor 。
这强调了Blazor是具有多个托管模型的单个客户端应用程序模型:
- 服务器端Blazor通过SignalR在服务器上运行
- 客户端Blazor在WebAssembly上运行客户端
...但是无论哪种方式,它都是相同的编程模型。 可以在两个环境中托管相同的Blazor组件。
另外,由于Blazor现在是.NET Core的一部分,因此客户端Blazor软件包版本现在与.NET Core 3.0版本保持一致。 例如,我们今天发货的所有预览软件包的版本号是3.0.0-preview4-19216-03
。 我们不再为客户端Blazor软件包使用单独的0.x
版本号。
什么时候发货
- 服务器端Blazor将作为.NET Core 3.0的一部分提供。 这已经在去年十月宣布。
- 客户端Blazor不会作为.NET Core 3.0初始发行版的一部分提供,但是我们现在宣布它将致力于作为将来的.NET Core版本的一部分提供(因此不再是“实验”)。
在.NET Core 3.0的每个预览版本中,我们将继续发布服务器和客户端Blazor的预览版本。
今天的预览版
此预览版本中的新功能:
- 模板已更新为使用.razor文件扩展名
- _Imports.razor
- 使用
@using
作用域组件 - 新组件项目模板
- 新的blazor图标
- Visual Studio Code中的Blazor支持
有关这些改进的详细信息,请查看ASP.NET Core 3.0 Preview 4公告 。 另请参阅Blazor 发行说明,以获取有关此预览版的其他详细信息。
获取Blazor预览
要开始使用Blazor预览版,请安装以下内容:
- .NET Core 3.0预览版4 SDK (3.0.100-preview4-011223)
命令行上的Blazor模板:
dotnet new -i Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview4-19216-03
已选择ASP.NET和Web开发工作负载的Visual Studio 2019 Preview ,以及来自Visual Studio Marketplace的最新Blazor扩展, 或者具有最新C#扩展的 Visual Studio Code (现已支持Blazor! )。
您可以在blazor.net的新 Blazor主页上找到Blazor的入门说明,文档和教程。

升级到Blazor预览:
要将现有的Blazor应用程序升级到新的Blazor预览,请首先确保已安装上面列出的先决条件,然后执行以下步骤:
- 更新所有Microsoft.AspNetCore.Blazor。*包引用到3.0.0-preview4-19216-03。
- 删除任何对Microsoft.AspNetCore.Components.Server的包引用。
- 删除任何对Microsoft.AspNetCore.Blazor.Cli的
DotNetCliToolReference
并替换为对Microsoft.AspNetCore.Blazor.DevServer的程序包引用。 - 在客户端Blazor项目中,删除
<RunCommand>dotnet</RunCommand>
和<RunArguments>blazor serve</RunArguments>
属性。 - 在客户端Blazor项目中,添加
<RazorLangVersion>3.0</RazorLangVersion>
属性。 - 将所有_ViewImports.cshtml文件重命名为_Imports.razor 。
- 将所有剩余的.cshtml文件重命名为.razor。
- 将components.webassembly.js重命名为blazor.webassembly.js
- 删除对
Microsoft.AspNetCore.Components.Services
命名空间的任何使用,并根据需要替换为Microsoft.AspNetCore.Components
。 - 更新服务器项目以使用端点路由:
- 在解决方案上运行
dotnet clean
清除旧的Razor声明。
Blazor社区页面现已更名为Blazor
作为更新Blazor网站的一部分,我们决定退出Blazor社区页面,而是将人们定向到社区驱动的Awesome Blazor网站。 感谢Adrien Torris维护了Blazor这份真正“很棒的”资源清单!
试用Telerik,DevExpress和Syncfusion的Blazor UI预览产品
Blazor受益于一个积极支持的社区,该社区为Blazor生态系统贡献了各种示例应用程序,组件和库。 最近流行的组件供应商(例如Telerik , DevExpress和Syncfusion)加入了Blazor UI组件的娱乐和预览。 我们鼓励您尝试这些Blazor UI产品,并让他们知道您的想法。
提供意见
我们希望您喜欢Blazor的最新预览版。 与以前的版本一样,您的反馈对我们很重要。 如果您在试用Blazor时遇到问题或有疑问,请在GitHub上提交问题 。 如果您遇到困难,也可以在Gitter上与我们和Blazor社区聊天,或分享Blazor为您工作的方式。 在试用Blazor一段时间后,请通过产品内调查让我们知道您的想法。 运行Blazor项目模板之一时,单击应用程序主页上显示的调查链接:

感谢您试用Blazor!

ASP.NET首席程序经理