一.桌面端跨平台的问题
其实,说真的,虽然本文的标题是要讨论“跨平台UI框架”的选型。但我个人认为就“桌面UI”而言,UI跨平台本身是个伪需求。呵呵。
下面说说原因:
一般来讲,如果是用于工作,绝大多数情况下做桌面UI都是为了驱动工业设备。
市面上纯软件方向的桌面程序开发工作,除了金蝶、用友、泛微、天正、超图等少数特定行业的“小巨人”之外,就只剩杀毒软件、电脑管家、QQ微信、字典词霸了。
况且无论那些“行业小巨人”,还是杀毒软件、电脑管家啥的,目前的情况下,都根本不可能换UI框架。
所以如果不是为了驱动工业设备,那不如直接做WEB,好歹不至于喝西北风,同时所谓的跨平台问题也就不存在了!?
二.MAUI、Avalonia、Flutter知识扫盲
MAUI (Multi-platform App UI): MAUI 是微软为 C# 开发者提供的一种跨平台应用开发框架。通过 MAUI,开发者可以使用 C# 和 .NET 来开发适用于 iOS、Android 和 macOS 等平台的应用程序。
Avalonia UI: Avalonia 是一个开源的、跨平台的、使用 C# 编写的 UI 工具包。它可以运行在 Windows、macOS、Linux、iOS 和 Android 等平台上。Avalonia 的目标是提供一个类似于 WinForms 的开发体验,同时支持现代的 UI 特性。
Flutter:它是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。
三.移动端跨平台问题
1.MAUI(推荐指数:3颗星)
MAUI优点:
(1)使用 MAUI,开发者可以快速构建高质量的移动和桌面应用程序。由于 MAUI 是基于 .NET 的,因此可以利用现有的 .NET 生态系统中的大量库和工具。
(2)MAUI 不是一个人在战斗,MAUI + blazor hybrid 这个可能会是 MAUI的跨平台主流使用方式。
MAUI缺点:
(1)微软没有长期大量开发iOS和Android应用的经验,MAUI技术的出现又优点脱离传统Windows开发群体,感觉几边都不搭。它会活的久么?
(2)它不同平台的差异太大了。曾经做了一个app在windows下和安卓下处理过后正常运行 到mac/ipad下直接嗝屁。
总结:跨多平台上问题还很多,目前只比较适合作IOS与Android的UI,只推荐MAUI + blazor hybrid的开发模式。
2.Avalonia(推荐指数:5颗星)
Avalonia优点:
(1)Avalonia 使用自己的渲染引擎绘制UI控件,确保在Windows、macOS、Linux、Android、iOS和WebAssembly等不同平台上具有一致的外观和行为。这意味着开发人员可以共享他们的UI代码,并在不同的目标平台上保持统一的外观和感觉。
(2)Avalonia不依赖于本地UI控件,而是类似于Flutter,绘制整个UI。这不仅确保了在所有平台上的一致外观和体验,还提供了无与伦比的自定义水平,使您能够根据实际需求定制UI。
(3)我们已经用Avalonia做过几个成熟项目了,最新的11版本已经很稳定了,同时支持跨平台到Windows 、Linux 、Android 、iOS 、Mac、Wasm、Tizen…
Avalonia缺点:
(1)在中文支持和某些特定环境如龙芯+银河麒麟上可能遇到问题,而且资源占用相对较大。
(2)在异步编程、多线程上,还存在一些问题。
(3)由于该技术较新,现阶段社区、生态支持还很小。
总结:由于技术较新,还存在一些成熟度的问题。但总体跨平台表现不错,不仅能用于移动端,在桌面端也有潜力用来替代WinForm/WPF。是C#程序员可以发展的方向。
3.Flutter(推荐指数:5颗星)
Flutter优点:
(1)性能卓越:Flutter使用Dart语言编写,其编译成本低,运行速度快,可提供流畅的用户体验。可以嵌入到别的开发中,非常适合互联网类开发。
(2)Java go开发者不会选用MAUI的,但WPF程序员选择Flutter却没什么阻碍。上述MAUI、Avalonia微软技术在生态上比不上Flutter。Flutter作为Google推崇的跨平台开发框架,拥有庞大的社区和丰富的资源,使得开发者在遇到问题时能够获得大量的帮助和指导。
下面是我用FLutter做的,看多美?
Flutter缺点:
(1)没有特别好的商业ui库,不适合管理类软件开发
(2)它不是某个流行平台的原生ui,dart语言又太小众并且也不是那么优秀,对用户的吸引力有限,所以这么多年来一直不温不火,在可以认知到的一段时间内,也看不到有什么大流行的可能。
总结:技术生态较成熟。Java、Go等非微软程序员可以选择它。
-End-
关心.NET社区大事?学习C#顶阶技术?请加入下述技术讨论群。向大佬学习、探行业内幕、享时代机遇。进名企+拿高新!