天行健君子以自强

天行健君子以自强

前言

笔者之前在公司搭建过一套生产管理系统,该系统要求能和硬件进行串口通信,同时又要方便后台进行信息查询。笔者给出的解决方案就是:MAUI + Blazor,这样只需要提供一套UI,就能满足桌面端、移动端和Web端三种不同应用场景。今天要介绍的是基于桌面端的开发实现(实际上WPF和Winform皆可行)。

开发技术

.NET 6 + MAUI  + Blazor WebAssembly + Ant Desgin of Blazor(v3.4.0)

知识预览

什么是MAUI

什么是WebAssembly

什么是Blazor

MAUI+Blazor混合应用开发示例-LMLPHP

开发详细

一、创建项目

首先,通过VS创建一个 .NET MAUI Blazor 应用,取名 “MauiBlazorDemo”。如果未找到此模板,则需要先安装工作负载 “ .NET Multi-platform App UI 开发 ”。

MAUI+Blazor混合应用开发示例-LMLPHP

在Windows机器上启动调试,界面运行如下:

MAUI+Blazor混合应用开发示例-LMLPHP

因为在项目中要使用 Ant Design of Blazor 框架,所以等把模板自带的一些文件删除。做法如下:

MAUI+Blazor混合应用开发示例-LMLPHP

接着,我们再创建一个 Ant Design Pro Blazor 模板应用,叫 “MyAntDesignApp” (名字任意) ,所有选项默认即可。如果你未找到此模板,可通过命令 dotnet new install AntDesign.Templates 来安装。

MAUI+Blazor混合应用开发示例-LMLPHP

创建之后,将 MyAntDesignApp 项目的以下文件拷贝到 MauiBlazorDemo 项目中。

MAUI+Blazor混合应用开发示例-LMLPHP

为了能够读取 appsetings.json 的配置信息,我们将它从 wwwroot 目录移至根目录,并将文件属性的 “生成操作” 改为 MauiAsset。最终 MauiBlazorDemo 项目的文件结构如下:

MAUI+Blazor混合应用开发示例-LMLPHP

程序启动执行顺序:

MAUI+Blazor混合应用开发示例-LMLPHP

接下来,我们需要对 MauiBlazorDemo 项目的文件内容进行修改,确保功能可以正常运行。

二、修改项目

1. 为 MauiBlazorDemo 项目添加第三方Nuget包:

  <ItemGroup>
    <PackageReference Include="AntDesign.Charts" Version="0.3.1" />
    <PackageReference Include="AntDesign.ProLayout" Version="0.14.4" />
    <PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="6.0.0" />
  </ItemGroup>
08-25 04:35