AvaloniaUI已经预览了对MAUI(多平台应用程序UI)的支持,为Linux和WebAssembly浏览器应用程序提供支持,这两个平台是微软自己的跨平台.NET框架所缺乏的。不过,采用率低和持续存在的bug可能会限制其使用。
Avalonia团队使用.NET 11(目前也在预览中)预览了MAUI的后端,使开发人员能够为其使用该框架的跨平台图形用户界面应用程序添加Linux和WebAssembly目标。
对MAUI的潜在影响比表面上看起来更大。跨平台框架在如何渲染按钮和开关等控件方面采用两种方法之一:要么调用本机平台API来显示操作系统内置的控件,要么使用自定义绘制来提供这些控件的自己版本。
本机方法确保每个平台的正确外观和感觉,而自定义绘制方法提供更多的跨平台一致性。MAUI使用本机API,而Avalonia进行自定义绘制,但Avalonia团队所做的是使Avalonia控件能够与MAUI控件一起使用或替代MAUI控件。
通过Avalonia和WebAssembly在浏览器中渲染的MAUI控件
Avalonia是一个受WPF(Windows Presentation Foundation)启发的.NET开源GUI框架。开发者Steven Kirk在2013年创建了它,当时WPF似乎被遗弃了。Avalonia为具有WPF技能和应用程序的开发人员提供了一个积极开发的框架,以及将这些应用程序移植到macOS和Linux的方法。
社区对Avalonia的兴趣使其成为最活跃的.NET开源项目之一,现在它支持iOS、Android和WebAssembly,以及macOS和Windows。
新的预览版基于.NET 11,预计将在11月正式发布,这意味着Avalonia MAUI将保持预览状态直到那时。据软件工程师Tim Miller表示,"仍有许多领域需要解决",包括用于存储和媒体访问等基本平台功能的Microsoft MAUI API版本。
另一个问题是Avalonia尚不支持Wayland(Linux的现代显示系统),依赖于X11或XWayland兼容层。
在Windows上运行时,也还不能在WinUI(MAUI针对的GUI API)内托管Avalonia控件。
据Miller表示,Avalonia MAUI项目为Avalonia本身带来了直接的好处,为即将推出的Avalonia 12创建了新的控件和API,"缩小了.NET MAUI和Avalonia中可用控件集之间的差距"。
这个项目的更大问题是MAUI的采用有限,开发人员在处理bug和缓慢的更新时遇到困难,而微软自己似乎也很少使用它。像Microsoft Teams这样的跨平台应用程序使用Type和Electron框架,而不是MAUI。React Native在微软内部也很受欢迎,在Microsoft Office和其他地方使用。
上个月一位开发者问"MAUI在2026年的表现如何?"一个回复说,从去年11月发布的.NET 9过渡到.NET 10是有问题的,一些Android和iOS功能没有按预期工作。"尝试了许多修复和尝试都没有成功,所以又回到了.NET 9。"
另一个说"与2025年相比情况变得更糟,2026年第一季度是持续回归和其他bug的时期,这使得在生产中使用变得困难。"
Android和iOS经常更新,这意味着像MAUI这样的跨平台框架面临移动目标的挑战。
微软的C#和.NET在Web应用程序中很受欢迎,但对于跨平台GUI应用程序,MAUI似乎在采用方面遇到困难。
Q&A
Q1:AvaloniaUI为MAUI增加了哪些新的平台支持?
A:AvaloniaUI为MAUI增加了Linux和WebAssembly浏览器应用程序的支持,这两个平台是微软自己的跨平台.NET框架原本缺乏的。
Q2:Avalonia和MAUI在控件渲染方面有什么区别?
A:MAUI使用本机平台API来渲染控件,确保每个平台的正确外观和感觉;而Avalonia使用自定义绘制方法,提供更多的跨平台一致性。
Q3:为什么MAUI的采用率比较低?
A:MAUI采用率低主要是因为开发人员在处理bug和缓慢更新时遇到困难,而且微软自己似乎也很少使用它,像Microsoft Teams这样的跨平台应用程序更多使用Type和Electron框架。