在工业自动化领域,上位机软件通常需要运行在Windows和Linux等不同操作系统上。传统开发方式往往针对每个平台单独编写代码,维护成本高。而.NET MAUI跨平台开发框架的出现,让C#开发者能够使用一套代码同时构建Windows和Linux上的工控上位机应用,实现真正的C#统一开发。本文将手把手教你如何使用.NET MAUI开发一个简单的串口通讯上位机,并部署到Windows和Linux工控应用环境中。
.NET MAUI(.NET Multi-platform App UI)是微软推出的跨平台UI框架,基于Xamarin.Forms演进而来。它允许开发者使用C#和XAML创建运行在Android、iOS、Windows、macOS上的原生应用,并通过社区支持扩展到Linux。对于工控上位机开发,.NET MAUI提供了丰富的控件、绘图能力和硬件访问接口,非常适合构建监控、数据采集等应用。
在Windows上开发,需要安装Visual Studio 2022(17.3以上),并选择“.NET Multi-platform App UI开发”工作负载。Linux端(以Ubuntu 22.04为例)需要安装.NET SDK 8.0,并添加MAUI workload:dotnet workload install maui-linux(需使用社区Linux构建版本)。确保两台机器在同一网络,便于测试。
打开VS2022,新建“.NET MAUI应用”项目,命名为“MauiHmiDemo”。在MainPage.xaml中添加一个按钮用于打开串口,一个文本框显示接收数据。后端代码使用System.IO.Ports命名空间操作串口(需安装NuGet包)。以下是简化代码:
using System.IO.Ports;SerialPort _serialPort = new SerialPort("COM1", 9600);_serialPort.DataReceived += (s, e) => { string data = _serialPort.ReadExisting(); Dispatcher.Dispatch(() => ReceiveText.Text += data);};private void ConnectButton_Clicked(object sender, EventArgs e) { try { _serialPort.Open(); } catch (Exception ex) { DisplayAlert("错误", ex.Message, "确定"); }} 在Windows上运行,串口名称为“COM1”;在Linux上需修改为类似“/dev/ttyS0”或“/dev/ttyUSB0”。这就是工控上位机开发中常见的跨平台差异,可通过条件编译或配置文件解决。
在VS中右键项目选择“发布”,针对Windows选择目标运行时“win-x64”,生成exe文件。对于Linux,需要先安装Linux构建工具,然后使用命令行:dotnet publish -f net8.0 -c Release -r linux-x64 --self-contained。将生成的可执行文件及其依赖复制到Linux工控机,赋予执行权限即可运行。注意Linux下可能需要安装libicu等依赖库,并确保当前用户有串口访问权限(加入dialout组)。
通过.NET MAUI,我们可以用C#高效开发跨平台的工控上位机软件。本文的简单示例展示了串口通讯的基本实现,实际项目中还可结合MVVM模式、绘图控件、OPC UA等,打造功能强大的工控上位机系统。掌握.NET MAUI跨平台开发,将助力你在工业4.0时代实现C#统一开发,轻松应对Windows和Linux工控应用的双重需求。
本文由主机测评网于2026-02-24发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260226909.html