C#上位机跨平台解决方案

内容分享3天前发布
0 2 0

随着国产化要求越来越高,部分行业和系统也开始要求上位机能够运行在国产操作系统上。目前的国产操作系统基本都是基于Linux开发,而C#自.NET Core开始便已支持跨平台,支持运行在Linux和macOS的系统上。但是微软传统的WinForm和WPF两大桌面UI框架都不支持跨平台。所以我们还需要找到一款支持.NET Core后来版本的UI跨平台库才行。

目前.NET平台上的跨平台UI框架主要有MAUI、Avalonia、Uno、Eto.Forms等,这几种框架各有各的特点,下表进行了汇总对比。

C#上位机跨平台解决方案

从上表可以看出,每种框架都有各种的优点和缺点。列如MAUI虽然是微软出品,但是官方却不支持Linux平台。由于上位机的应用开发除了常规的UI控件外还会涉及到曲线和报表等,所以我们还得思考相关生态。经过各方面综合比较下来,我们推荐使用Avalonia来开发跨平台上位机。

Avalonia

Avalonia 是一个开源的、跨平台的.NET UI 框架,旨在为开发者提供统一的代码库来构建可在 Windows、macOS、Linux、Android、iOS 和WebAssembly(实验性支持)上运行的桌面和移动应用程序。它的设计理念和 API 风格与 Windows Presentation Foundation (WPF) 高度类似,同样也支持数据绑定和MVVM开发。但更现代化且支持多平台,尤其适合需要跨平台兼容性和灵活 UI 定制的场景。

C#上位机跨平台解决方案

1.跨平台支持

桌面:Windows、macOS、Linux(包括 ARM 架构的树莓派)。

移动端:Android、iOS(需结合 Xamarin/NET MAUI 或社区扩展)。

浏览器:通过WebAssembly(WASM)在浏览器中运行(目前为实验性支持)。

嵌入式系统:支持部分嵌入式Linux 设备。

2.类 WPF 的开发体验

XAML 语法:使用与 WPF 类似的 XAML语言定义界面,支持数据绑定、样式、模板和资源管理。

MVVM 模式:天然支持 Model-View-ViewModel 架构,便于代码解耦和测试。

丰富的控件库:提供按钮、列表、表格、图表等基础控件,支持自定义控件和第三方扩展。

3.高性能渲染

Skia 图形引擎:底层使用 Skia 实现跨平台渲染,确保一致的视觉体验和高性能。

GPU 加速:支持硬件加速,适用于复杂动画和大规模数据可视化。

平台原生集成:可调用操作系统API 实现平台特定功能(如文件访问、通知等)。

4.灵活的样式系统

样式继承与覆盖:类似 CSS的样式机制,支持全局样式和局部样式。

主题支持:内置浅色/深色主题,可自定义主题适配不同平台风格。

矢量图形:支持 SVG 和 Path 绘制,实现高分辨率适配。

5.开放生态与工具链

NuGet 包管理:通过 NuGet 快速集成第三方库(如 ReactiveUI、Prism 等)。

IDE 支持:Visual Studio 和 JetBrains Rider 提供插件支持,支持 XAML 热重载。

社区活跃:开源社区贡献了大量示例、控件库(如 Material.Avalonia)和工具。

第三方库

支持Avalonia的三方库也有许多,下面贴出了一些比较常用的第三方组件库。

1,Semi.Avalonia

C#上位机跨平台解决方案

2,SukiUI

C#上位机跨平台解决方案

3.Material.Avalonia

C#上位机跨平台解决方案

C#上位机跨平台解决方案

© 版权声明

相关文章

2 条评论

  • 头像
    一夜芬芳 读者

    Avalonia适配性咋样?

    无记录
    回复
  • 头像
    小璇子的诗和远方 读者

    收藏了,感谢分享

    无记录
    回复