8

跨平台客户端Blazor方案尝试 - 攀攀

 2 years ago
source link: https://www.cnblogs.com/yinyunpan/p/16796132.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

一、方案选择

Electron/MAUI + Blazor(AntDesgin blazor)

147352-20221016124304771-305066644.png

BlazorApp:Blazor Razor页面层,抽象独立层,被BlazorAppElectron/BlazorAppMAUI项目引用

BlazorAppElectron:Electron跨平台客户端层

BlazorAppMAUI:MAUI跨平台客户端层

二、BlazorApp创建

首页欢迎页面组件

147352-20221016144045878-1597296727.png

三、BlazorAppElectron创建

Electron.NET文档:https://github.com/ElectronNET/Electron.NET

AntDesgin文档:https://github.com/ant-design-blazor/ant-design-blazor

3.1、使用Blazor Server模板,创建项目

147352-20221016131727997-928478165.png

3.2、Electron配置

3.2.1、初始化项目

命令行工具安装

dotnet tool install --global ElectronNET.CLI

项目目录下,执行下面命令

electronize init

launchSettings.json生成启动项、electron.manifest.json

147352-20221016132212552-1725740004.png

147352-20221016133517258-1051380834.png

147352-20221016145133812-909659703.png

启动参数配置,禁用单文件,有些组件Nuget有问题,如:MySql.Data,具体参考:https://www.cnblogs.com/WNpursue/p/14717646.html

3.2.2、代码配置

Install-Package ElectronNET.API

program.cs配置,配置AntDesign、Electron

147352-20221016135308238-1218647260.png

_Layout.cshtml配置,AntDesgin的js、css引用

147352-20221016134235735-1296033026.png

App.razor,路由配置,引用BlazorApp的Razor组件路由。

147352-20221016135009747-2030464383.png

MainLayout.razor,AntDesign布局菜单设置,默认根路径"/",与BlazorApp中Welcome.razor 中的@page 对应

147352-20221016135504617-1608875219.png

_Imports.razor,添加命名空间

147352-20221016135817202-244634629.png

3.2.3、运行效果

Electron.NET App启动配置,有客户端界面

147352-20221016141137440-1279544586.png

BlazorAppElectron启动配置,浏览器UI

147352-20221016141425528-96960136.png

3.2.4、打包安装包

electronize build  /PublishSingleFile false /target win

147352-20221016140902791-1448131177.png

3.2.5、安装后调试工具Debugtron

147352-20221016142140556-1215702478.png

四、BlazorAppMAUI创建

4.1、Visual Studio 2022 Preview 使用MAUI模板,创建项目

147352-20221016142620515-1336281780.png

4.2、MAUI配置

4.2.1、代码配置

MauiProgram.cs配置,配置AntDesign

147352-20221016143010391-1371584592.png

index.html配置,AntDesgin的js、css引用

147352-20221016143145034-1259829484.png

Main.razor,路由配置,引用BlazorApp的Razor组件路由。

147352-20221016143300904-1757993146.png

MainLayout.razor,AntDesign布局菜单设置,默认根路径"/",与BlazorApp中Welcome.razor 中的@page 对应

147352-20221016143357845-709529035.png

_Imports.razor,添加命名空间

147352-20221016143425565-1542145089.png

4.2.2、运行效果

147352-20221016143607270-1901594925.png

五、案例源码

https://github.com/yinyunpan/blazorapp


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK