1. 首先,创建一个空白文件夹子,名字就叫BlazorWasmFromscript吧。
2. 决定用vscode来撸代码。用vscode打开新创建的文件夹子。
3. 为了让空白文件夹子变成真正的C#项目,需要创建一个.csproj文件。
添加了两包依赖。第一个包Microsoft.AspNetCore.Components.WebAssembly是开发WebAssembly必备的,而第二个包是一个前端开发服务器,可以方便代码调试。
写好这些,关闭文件夹子,再重新打开,vscode的C#插件语言服务会帮助我们restore所有需要的依赖,于是,文件夹成功变成C#项目。
4. 既然是前端,先创建一个wwwroot文件夹吧。然后创建一个index.html文件,作为前端项目的入口文件。
一切都很寻常,只有一点,src里引入了blazor.webassembly.js文件,这个是blazor的框架文件,不用担心这个从哪来的,最终编译时,微软dotnet脚手架工具会为我们解决。
5. 好啦,开始编写Blazor文件吧。
喜闻乐见,先来一个Counter.razor。默认都放在Pages文件夹子下吧。
注意上面有给using,这个包不能少了,不然编译不了.razor文件中的C#代码,最终编译出来的产品,看上去能打开,各种按钮啥的就都不管用的,因为没有逻辑。
6. 有了Counter.razor了,怎么调用这个呢。
和其他前端单页应用一样,需要挂载到index.html上。
回到index.html,添加一个div,id设为“counter”,准备直接把我们的Counter.razor挂载到这里。
中间可以写的Loading,这样,当挂载进行中时,就有个Loading,看上去不错。
7. 怎么把Counter.razor与这个id是counter的div标签挂接上呢。
挂接上面两者,与配置开发测试服务器,两个事情合二为一。
创建Program.cs文件。
这样,我们的Counter.razor就被挂载到了index.html的上面了,与此同时,我们有了一个测试服务器,进入命令行,dotnet run,检验一下。
一切正常!
8. 编译成可以独立部署的静态文件
现在都流行前后端分离,Blazor作为基于webassembly的前端开发框架,能否像其他js前端框架一样,编译成静态文件,部署到各种后端项目上去呢?当然可以的。
我们现在来编译一下,用dotnet命令行,键入一下命令。
dotnet publish是基础命令。
-c后面跟Release或者Debug。
-r后面跟browser-wasm,代表目标运行时,我们的目标,就是浏览器中的webassembly。
-f后面跟着.net框架版本,用最新的,别犹豫。
--self-contained代表自包含,也就是把需要的依赖都包进去。
-o后面是输出目录,自己找个合适的地方就行了。
编译结束,查看产出。一个wwwroot文件夹,一个web.config。web.config用不上,wwwroot里面就是我们需要的静态文件了。
9. 部署到springboot的后端项目上。
其实部署到什么上都行,最好还是部署到asp.net core后端项目上,但是为了表明我们的编译产品的独立性,来试试放到springboot里行不行。
简单搞一下,不需要什么配置,创建一个springboot项目,就加一个spring-boot-starter-web依赖就够了。
把wwwroot里面的东西,直接拷贝到springboot项目的resources/static文件夹子里,其他的什么都不用配置,直接启动springboot吧。



