MAUI和Uno平台有什么区别?

我有点困惑。任何人都可以确切地解释两者之间的区别是什么?我们什么时候应该使用 MAUI,什么时候使用 UNO?正如我意识到的,两者都可以运行在不同的平台上,那么同时引入两种不同的技术的原因是什么?它们可以在 Windows 7 上运行吗?或者它们仅限于 Windows 10?我的 WPF 程序可以使用这两种技术在 Linux 上运行吗?

回答

我已经使用 Xamarin.Forms(将更名为 MAUI)开发了 5 年以上,并且使用 Uno 平台进行了将近四个月的开发。对我来说,有许多差异使我值得花时间从 Xamarin.Forms 迁移到 Uno。首先,相似之处:

  • 两者都是 C# 跨平台框架
  • 两者都有 XAML 支持
  • 两者都通过非 .Forms Xamarin 平台框架支持 iOS、Android、通用 Windows 平台和(在较小程度上)Mac OS。
  • Xamarin.Essentials 适用于上述平台上的 Xamarin 和 Uno
  • 两者都没有对打印、PDF 生成或 PNG 生成的内置支持。

现在的区别:

  • 在体系结构上,Xamarin.Forms 是本机 API 之上的自己的抽象层,而 Uno 在本机 API 上构建 UWP 接口。在我看来,这是最重要的区别,原因有以下三个:
    • 在 Android 中,Xamarin.Forms 抽象包括测量和布局管理。这是非常昂贵的,对于除了最简单的列表视图之外的所有视图,都会导致非常差的性能。相比之下,Uno 在本机层执行此操作 - 从而避免在 Java 和 C# 之间来回传递的幅度。
    • 在 WASM 中,Xamarin 通过 Blazor 呈现——它支持混合服务器/客户端应用程序。不幸的是,与 Uno 采取的方法相比,这增加了复杂性。Xamarin 方法是否有性能损失还有待观察。
    • 由于 Uno 在本机 UI 框架上构建 UWP,因此打开封面并在功能上进行深入更改非常简单。在 Xamarin.Forms 中执行此操作要困难得多(如果在某些情况下并非不可能)。
  • Uno 强烈支持 WPF(所以是的,它可以在 Windows 7 中运行)、Tizen 和 Linux (GTK)。
  • Uno 支持 UWP XAML 的复杂性 - 如果您对 WPF 或 UWP 有经验,它具有一些主要优势。否则,它会丢失在你身上,就像它一直在我身上一样。我希望能改变这一点。
  • Uno 支持 WinUI 和 Windows Community Toolkit 库。
  • 虽然我不能确定这一点,但我相信 Xamarin.Forms 已经比 Uno Platform 早了大约 2-3 年。话虽如此,Uno 已经在功能和代码质量方面迅速赶上了 Xamarin。我相信这部分是因为 UWP 是非常成熟的操作规范。
  • 根据我将约 132k 行 Xamarin.Forms 代码项目迁移到 Uno 的经验,Uno 明显不那么冗长,约 65k 行。几乎所有的减少都在 UI 代码行中(模型、视图模型和业务逻辑几乎没有受到影响)。这主要是由于 UWP (Uno) 控件具有更多功能。

最后,您询问您的 WPF 程序是否可以使用这两种技术在 Linux 上运行。答案是

  • Xamarin.Forms:不支持。不支持 Linux;
  • Uno 平台:否,但可以迁移您的代码。工作量与将程序从 WPF 移植到 UWP 大致相同。

你的旅费可能会改变。但是,如果您有 WPF 或 UWP 的经验,我强烈推荐 Uno。如果您对这两者都没有经验,那么我会推荐 Uno,因为 Android 具有卓越的性能。

  • This was supposed to be MAUI vs Uno, not Xamarin.Forms vs Uno.

以上是MAUI和Uno平台有什么区别?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>