
微软
还是来写个回答吧。我一直都在关注跨平台的UI框架。从.net core出现起,就有消息称
微软会在下个版本里支持WPF跨平台,当时一想到这个就特别激动,可直到现在,这已经是不可能的事情了。从Xamarin发展到Maui,它的生态并不是很好。我很喜欢C,就想着要是能用C无缝地编写能在各个平台运行的APP,那该有多惬意啊。然而,Maui不支持
linux,虽然对大多数用户来说
linux可能用不到,对我而言也没什么影响,但它连Win7都不支持,要知道现在还有不少人在使用Win7,就这一点就把我给劝退了。再说说Avalonia吧。刚开始的时候,它直接就把我给劝退了,因为它的生态不行,相关的文档也不多。不过Avalonia 11问世了,它能用XAML编写跨平台的UI,对于像我这样编写过WPF和Winform的人来说,简直就是无缝衔接,效率特别高,而且它还支持Win7。但是,Avalonia只是一个UI库,对于本机的API,它只有存储和文件对话框之类的,像调用摄像头拍照这种最基本的需求,我看官方基本上是不可能支持的(目前确实没有)。我在Github上看到有人回应说可以尝试
https://github.com/AvaloniaUI/AvaloniaMauiHybrid,也就是让Avalonia和Maui混合起来,但这实在是费力不讨好的事情,难怪后面有人回复说:我都用Avalonia了,干嘛还要混合Maui?WinUi和UWP有相机/媒体API,WPF有,Maui有,
Android(
Java)有,
IOS也有,为什么Avalonia就没有?难道Avalonia会成为唯一一个不能很好处理多媒体的框架吗?话说回来,Avalonia虽然不支持本机API,但是Maui的文档却很全面。很多本机的API,像相机、陀螺仪、通讯录之类的都有,那些简单易懂的示例也写得非常全面了,这和Avalonia的特点刚好相反。Avalonia在短期内,甚至在未来很长一段时间内,对于
移动端本机功能的支持都不会很高,毕竟它的
移动端正式支持才刚刚发布。不过单纯从编写UI控件的角度来看,我觉得Avalonia是非常不错的。.Net开发人员如果项目一定要用到本机接口的话,那么建议可以使用Maui Blazor Hybrid,Maui对于
移动端的支持要比Avalonia好一些。不管是Maui、Avalonia还是Blazor,它们的学习曲线都是差不多的,.Net开发人员都可以比较顺利地过渡学习。在跨平台UI框架的选择上,确实是需要综合多方面因素来考虑的。对于开发人员来说,框架的功能完整性、对不同平台的支持情况、文档的完善程度以及学习的难易程度等,都是非常重要的考量点。就拿Avalonia来说,它在UI控件编写方面的高效性对于有WPF和Winform编写经验的开发人员是很有吸引力的,可它在本机API支持方面的欠缺又限制了它的应用场景。而Maui,虽然文档全,本机API支持得比较好,但是生态方面存在不足,这也会影响开发人员的选择。再从平台支持的角度看,Win7的用户群体虽然在逐渐缩小,但仍然不可忽视。Maui不支持Win7这一点,可能会让很多还在使用Win7的企业或者个人用户望而却步。Avalonia支持Win7在这方面就有一定的优势。然而,在
移动端方面,Maui又比Avalonia更具优势,它对
移动端的支持更好,这对于想要开发跨平台
移动应用的开发者来说是很关键的因素。另外,从框架的发展前景来看,Avalonia虽然目前在多媒体等本机API支持上比较薄弱,但它也在不断发展。随着版本的更新,未来也许会逐步改善这种情况。Maui同样也面临着提升自身生态的任务,只有不断完善生态,才能吸引更多的开发者使用。对于开发人员来说,在选择跨平台UI框架的时候,不能只看当下的情况,还需要对框架的发展潜力有一定的预估。在实际的项目开发中,如果项目主要侧重于UI界面的构建,对本机API的依赖较少,那么Avalonia可能是一个不错的选择。但如果项目需要大量使用本机API,尤其是在
移动端,那么Maui可能会更合适。而Blazor虽然和它们有所不同,但在学习曲线方面具有相似性,也可以作为一种选择。开发人员需要根据项目的具体需求,权衡各个框架的利弊,从而做出最合适的选择。