跨平台客户端Blazor方案尝试

一、方案选择Electron/MAUI + Blazor(AntDesgin blazor)

跨平台客户端Blazor方案尝试

文章插图
BlazorApp:Blazor Razor页面层,抽象独立层,被BlazorAppElectron/BlazorAppMAUI项目引用
【跨平台客户端Blazor方案尝试】BlazorAppElectron:Electron跨平台客户端层
BlazorAppMAUI:MAUI跨平台客户端层
二、BlazorApp创建首页欢迎页面组件
跨平台客户端Blazor方案尝试

文章插图
三、BlazorAppElectron创建Electron.NET文档:https://github.com/ElectronNET/Electron.NET
AntDesgin文档:https://github.com/ant-design-blazor/ant-design-blazor
3.1、使用Blazor Server模板,创建项目
跨平台客户端Blazor方案尝试

文章插图
3.2、Electron配置3.2.1、初始化项目命令行工具安装
dotnet tool install --global ElectronNET.CLI项目目录下,执行下面命令
electronize initlaunchSettings.json生成启动项、electron.manifest.json
跨平台客户端Blazor方案尝试

文章插图

跨平台客户端Blazor方案尝试

文章插图

跨平台客户端Blazor方案尝试

文章插图
启动参数配置,禁用单文件,有些组件Nuget有问题,如:MySql.Data,具体参考:https://www.cnblogs.com/WNpursue/p/14717646.html
3.2.2、代码配置引用包
Install-Package ElectronNET.APIprogram.cs配置,配置AntDesign、Electron
跨平台客户端Blazor方案尝试

文章插图
_Layout.cshtml配置,AntDesgin的js、css引用
跨平台客户端Blazor方案尝试

文章插图
App.razor,路由配置,引用BlazorApp的Razor组件路由 。
跨平台客户端Blazor方案尝试

文章插图
MainLayout.razor,AntDesign布局菜单设置,默认根路径"/",与BlazorApp中Welcome.razor 中的@page 对应
跨平台客户端Blazor方案尝试

文章插图
_Imports.razor,添加命名空间
跨平台客户端Blazor方案尝试

文章插图
3.2.3、运行效果Electron.NET App启动配置,有客户端界面
跨平台客户端Blazor方案尝试

文章插图
BlazorAppElectron启动配置,浏览器UI
跨平台客户端Blazor方案尝试

文章插图
3.2.4、打包安装包electronize build/PublishSingleFile false /target win
跨平台客户端Blazor方案尝试

文章插图
3.2.5、安装后调试工具Debugtron
跨平台客户端Blazor方案尝试

文章插图
四、BlazorAppMAUI创建4.1、Visual Studio 2022 Preview 使用MAUI模板,创建项目
跨平台客户端Blazor方案尝试

文章插图
4.2、MAUI配置4.2.1、代码配置MauiProgram.cs配置,配置AntDesign
跨平台客户端Blazor方案尝试

文章插图
index.html配置,AntDesgin的js、css引用
跨平台客户端Blazor方案尝试

经验总结扩展阅读