深入浅出Blazor webassembly之理解 Blazor WASM

参考:  https://executecommands.com/difference-in-blazor-server-and-webassembly/

 

Blazor WASM 整体运行架构如下:

1. 图中 WebAssembly 引擎., 现代浏览器都依照 WebAssembly 标准实现了 WebAssembly 引擎, WebAssembly是基于堆栈的VM

2. 图中的 .NET部分, 更准确地说, 应该是 Mono IL, 它是一个WebAssembly应用, 可以被WebAssembly 引擎执行, 功能是解释执行.Net 程序.   我们开发的Blazor WebAssembly应用, 有两种执行模式:

  (1) JIT 模式(Just In Time, 默认模式), 我们的应用会被编译成 dll 文件, 这个文件会被Mono IL解释器加载执行.

  (2) AOT模式( Ahead Of Time), 我们的应用会和Mono IL 一起编译成 WebAssembly 应用, 它可以被浏览器的 Web Assembly引擎直接执行, 优点是执行效率高, 适合于CPU密集型计算, 缺点是文件大小比JIT模式要大一倍.

   开启 AOT 模式, 需要在 Project 文件中, 增加 RunAOTCompiliation指令.

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <RunAOTCompiliation>true</RunAOTCompiliation>
  </PropertyGroup>

 

认识 blazor wasm 项目的一些文件:

1.   app.css 文件, 等价于 blazor server项目的 site.css 文件, 可以存放项目自身定义的样式.

2. _framework/blazor.webassembly.js, 该文件在 index.html 中被用到, 负责下载所有的 .NET dll文件和静态资源文件.

 

posted @ 2021-09-14 19:58  harrychinese  阅读(888)  评论(0编辑  收藏  举报