一分钟理解:Blazor WebAssembly 和 Blazor Server 差异性

发布于:2022-12-12 ⋅ 阅读:(515) ⋅ 点赞:(0)

什么是Blazor?

Blazor是一个使用.NET生成交互式客户端Web UI的框架。Blazor使用Razor语法,用于将HTML标记与C#代码结合在一起,最后将C#代码文件和Razor文件统一编译为.NET程序集。

Blazor两种托管方式

在Visual Studio开发环境中, 创建Blazor应用有两种托管方式:

1、Blazor WebAssembly ---- 创建Blazor应用的项目模板,在WebAssembly上运行并且可选择是 否应用ASP.NET CORE托管。此模板应用于“ 需要丰富动态用户界面的WEB应用 ”场景。

2、Blazor Server -----创建Blazor Server应用的项目模板,该应用在ASP.NET CORE内运行服务器端并通过SignalR链接进行用户交互处理。此模板亦应用于“ 需要丰富动态用户界面的WEB应用 ”场景。

Blazor WebAssembly

Blazor WebAssembly依赖于WASM标准,WebAssembly是一种可移植的二进制代码语言,现代浏览器都支持WASM。

Blazor  WebAssembly传输的数据比较大,运行Blazor WebAssembly项目时,所有dll都必须传输到客户端。故程序直接在浏览器中执行,即使断网也不受影响。WebAssembly不依赖.NET运行时,从而可部署在静态文件服务器上。

注:由于.NET的IL格式和WebAssembly是2种不同的二进制文件格式。因此,Microsoft实现了包含.NET运行时的WebAssembly文件:dotnet.wasm。它的职责之一就是,编译IL代码以在WebAssembly边界内执行。

 

Blzaor Server 

Blzaor Server传输的数据比较小,仅需要传输160KB左右的数据,页面几乎瞬时加载完成。因为Blazor Server项目不涉及WebAssembly,所有组件呈现逻辑都是在服务端实现的,只是将需要处理的UI更新通过SignalR发送给浏览器。 

 

浏览器仅需处理javascript、CSS和HTML代码。但这样导致Blazor Server项目必须实时和服务端交互,使用类似_blazor?id=xxx这样的URL路径连接并传递数据:

服务端必须依赖.NET运行时,因此只能部署在ASP.NET Core应用服务器上。所以,项目停止运行时,Server项目的页面需要重新连接服务器。

两种不同托管方式的优缺点分析: ​​​​​​​​​​​​​​

 

  【完结】

 


网站公告

今日签到

点亮在社区的每一天
去签到