【微软技术栈】基于.NET MAUI跨平台电子白板的设计与实现

1、摘 要

随着科技的发展,电子白板功能已经普及到视频会议、在线课堂、企业、学校乃至其他更多行业。在多种移动设备并存的大环境下,为每个平台(如:Android、IOS、Windows等)都编写一套代码,无论是前期开发还是后期维护,成本都会增加。另一方面,移动互联网经过十多年的发展,衍生出诸多问题,如:设备的系统版本分散(Windows、Mac、Android、IOS)、厂商定制泛滥(华为、小米、OPPO)、都在定制各自的UI系统,带来各种各样的兼容性问题和难以开发适配的痛点。

本系统选择跨平台开发框架.NET MAUI(微软公司2022年5月发布),使用最新的Visual Studio 2022 Preview开发工具,来实现一款跨平台的电子白板应用。从国内外现状、相关技术原理、系统分析、系统设计、系统实现、系统测试等方面,成功完成了跨平台电子白板应用的开发。该框架使用便捷、易用性好,开发效率大幅度提升,一套代码生成多个平台的应用,缩短了开发周期,在多设备上运行功能完整且一致,界面外观符合每个平台自身的规范。对于有跨平台开发诉求的个人、团队或者企业来说,有很好的实用价值,也起到一定的借鉴参考意义。

关键词:.NET MAUI;多平台;跨平台框架;软件开发效率;电子白板

论文类型:软件开发

2、跨平台框架比较

从国外技术网站统计结果来看,2019~2021年,排名前五的跨平台框架有:Flutter、React Native、Cordova、Ionic、Xamarin。如下图所示:

【微软技术栈】基于.NET MAUI跨平台电子白板的设计与实现_第1张图片

图 2‑1 框架排名统计图

从下表可以很直观的看出,像React Native、Gordova、Ionic等框架基本都是基于web前端技术,在性能方面会有一定劣势。Flutter支持的平台不够完备,而Xamarin是基于.NET C#技术,支持的平台范围最广泛,在性能方面也不亚于Dart,而且有Xamarin开源社区和微软公司的大力支持,在技术和框架的演进方面都有强大的技术团队保障。

表 2‑1 框架能力统计表

跨平台框架

主导者

开发语言

Android

IOS

Windows

Phone

Windows

MacOS

Flutter

Google

Dart

×

React Native

Facebook

JavaScript

×

×

×

Cordova

Apache

JavaScript

×

×

Ionic

Apache

HTML5

×

Xamarin

微软公司

C#

3、Xamarin的未来已来 —— .NET MAUI

2022年5月27日,微软宣布.NET多平台应用程序UI ——.NET Multi-platform App UI(MAUI)正式发布,而且是免费开源的。它是Xamarin.Forms的演变,从以前的移动方案扩展到桌面,UI控件重新生成,以便提升性能和扩展性。可开发适用于在 Android、iOS、macOS 和 Windows 上运行的应用。

【微软技术栈】基于.NET MAUI跨平台电子白板的设计与实现_第2张图片

图 3‑1 .NET MAUI架构图

3.1 提供的内容

.NET MAUI提供了丰富的基础控件,可用于数据显示、启动操作、指示活动、选取数据等。除此之外.NET MAUI还提供:

  1. 页面设计布局引擎。
  2. 导航类型的多种页类型,如抽屉。
  3. 支持单向和双向数据绑定,开发模式更优雅且易于维护。
  4. 支持自定义处理程序,以增强UI元素的呈现方式。
  5. 访问本机设备功能的跨平台API。例如GPS、加速计、电池和网络状态等。
  6. 提供跨平台的图形功能,支持绘制形状和图像,以及图形对象转换操作。
  7. 支持热重载,能够在应用运行时修改代码,实时观察修改的结果。

3.2 支持的平台

  1. Android 5.0及以上版本。
  2. iOS 10及以上版本。
  3. macOS 10.15及以上版本,使用Mac Catalyst。
  4. 使用Windows UI库3、Windows 11、Windows 10版本1809及以上版本。

4、多平台运行效果

【微软技术栈】基于.NET MAUI跨平台电子白板的设计与实现_第3张图片

5、开源项目地址

gitusme/Cross-platform-Whiteboard: 基于.NET MAUI的跨平台电子白板 (github.com)

gitusme/Cross-platform-Whiteboard - 码云 - 开源中国 (gitee.com)

你可能感兴趣的:(C#,.NET,专栏,c#,android,windows,ios)