跨平台客户端Blazor方案尝试
一、方案选择
Electron/MAUI + Blazor(AntDesgin blazor)
BlazorApp:Blazor Razor页面层,抽象独立层,被BlazorAppElectron/BlazorAppMAUI项目引用
BlazorAppElectron:Electron跨平台客户端层
BlazorAppMAUI:MAUI跨平台客户端层
二、BlazorApp创建
首页欢迎页面组件
三、BlazorAppElectron创建
Electron.NET文档:https://github.com/ElectronNET/Electron.NET
AntDesgin文档:https://github.com/ant-design-blazor/ant-design-blazor
3.1、使用Blazor Server模板,创建项目
3.2、Electron配置
3.2.1、初始化项目
命令行工具安装
dotnet tool install --global ElectronNET.CLI
项目目录下,执行下面命令
electronize init
launchSettings.json生成启动项、electron.manifest.json
启动参数配置,禁用单文件,有些组件Nuget有问题,如:MySql.Data,具体参考:https://www.cnblogs.com/WNpursue/p/14717646.html
3.2.2、代码配置
引用包
Install-Package ElectronNET.API
program.cs配置,配置AntDesign、Electron
_Layout.cshtml配置,AntDesgin的js、css引用
App.razor,路由配置,引用BlazorApp的Razor组件路由。
MainLayout.razor,AntDesign布局菜单设置,默认根路径"/",与BlazorApp中Welcome.razor 中的@page 对应
_Imports.razor,添加命名空间
3.2.3、运行效果
Electron.NET App启动配置,有客户端界面
BlazorAppElectron启动配置,浏览器UI
3.2.4、打包安装包
electronize build /PublishSingleFile false /target win
3.2.5、安装后调试工具Debugtron
四、BlazorAppMAUI创建
4.1、Visual Studio 2022 Preview 使用MAUI模板,创建项目
4.2、MAUI配置
4.2.1、代码配置
MauiProgram.cs配置,配置AntDesign
index.html配置,AntDesgin的js、css引用
Main.razor,路由配置,引用BlazorApp的Razor组件路由。
MainLayout.razor,AntDesign布局菜单设置,默认根路径"/",与BlazorApp中Welcome.razor 中的@page 对应
_Imports.razor,添加命名空间
4.2.2、运行效果
五、案例源码
https://github.com/yinyunpan/blazorapp
最新文章
- 动态生成linearLayout
- delphi 事件和属性的绑定
- jquery简单插件到复杂插件(3)--顶部导航固定
- 每天一个小算法(Heapsort)
- iOS 字体滚动效果 ScrollLabel
- 网络编程Socket之UDP
- 解决ActiveX Control异常:";没有注册类(异常来自 HRESULT:0x80040154(REGDB_E_CLASSNOTREG))";
- 自定义dialog自动弹出软键盘
- 自定义Git之忽略特殊文件
- 简单http文件服务器
- Sublime Text编辑远程Linux服务器上的文件
- 芝麻HTTP:在无GUI的CentOS上使用Selenium+Chrome
- vue_简介_渐进式 js 框架_内置指令_自定义指令_自定义插件
- java中产生HttpServletRequest等作用域
- 用IntelliJ IDEA搭建第一个SpringBoot例子
- JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法
- opencv播放视屏并控制位置
- CentOS6.2下安装Qt5.1.0
- web自动化流程总结
- SqlServer——临时表
热门文章
- Vue 模板语法 &;&; 数据绑定
- Vue脚手架(CLI)第一天
- 使用.NET简单实现一个Redis的高性能克隆版(七-完结)
- CF360E Levko and Game(贪心)
- BZOJ1305/Luogu3153 [CQOI2009]dance跳舞 (network flow)
- day21--Java集合04
- 除了Synchronized关键字还有什么可以保证线程安全?
- Java SE 13 新增特性
- Java SE 10 Application Class-Data Sharing 示例
- JavaScript基础回顾知识点记录4-正则表达式篇(介绍基本使用)