我想将现有的WPF应用程序移植到Linux操作系统的Uno平台。为此,我需要遵循哪些步骤?哪些API不兼容,如何解决这些问题?代码的哪些部分会不同,我如何解决它们?此外,我如何将其性能方面与Avalonia,MAUI和WinUI等其他产品进行比较?我将感激你的帮助。我试着浏览了一下UNO平台的资源。但实际上,我无法决定我应该从哪里开始.
7gs2gvoe1#
最重要的答案是,您应该尝试所有可能的解决方案,并进行概念验证,看看什么最适合您。将WPF应用程序转换为Web的步骤在这里概述https://platform.uno/docs/articles/wpf-migration.html。虽然这不是Linux,但该文档的一个很好的部分适用-您的WPF代码将需要首先转换为WinUI(或UWP)。之后,您的应用程序可以通过使用Uno Platform作为“桥梁”技术在所有平台上运行。您可以在https://platform.uno/docs/articles/implemented-views.html#implemented---android--ios-only查看已实现的视图列表。萨沙
0mkxixxg2#
乌诺是个陷阱它将需要同样多的努力转换为Avalonia,这是你应该做的,如果你想让它仍然是一个桌面应用程序。我们尝试了所有这些,Avalonia是一个真正感觉像WPF的精神继承者,加上维护者实际上是无毒的,并愿意帮助人们,这在这个自由和开源软件傲慢的时代是非常罕见的。随着v11的发布,产品真正变得成熟和稳定/快速。样式系统更像CSS,但是一旦你掌握了它(特别是如果你使用动画),它实际上比WPF更有意义。但最大的问题不是不同工具集的技术复杂性,而是缺乏第三方支持。如果您使用并严重依赖第三方控件,如Telerik/Devexpress/Infragistics/等用于WPF,那么无论您选择哪种路径,您都将处于困境。他们中的任何一个都没有兴趣将他们的WPF产品移植到其他类似的平台上(至少在写这篇文章的时候,如果他们决定将来醒来的话)。即使是Uno的支持也非常有限和稀缺。这是我们通过迁移接受的惩罚,对于最关键的组件有(相当好的)社区替代方案,但您将不得不根据应用程序的性质给予一些可视化。
2条答案
按热度按时间7gs2gvoe1#
最重要的答案是,您应该尝试所有可能的解决方案,并进行概念验证,看看什么最适合您。
将WPF应用程序转换为Web的步骤在这里概述https://platform.uno/docs/articles/wpf-migration.html。虽然这不是Linux,但该文档的一个很好的部分适用-您的WPF代码将需要首先转换为WinUI(或UWP)。之后,您的应用程序可以通过使用Uno Platform作为“桥梁”技术在所有平台上运行。
您可以在https://platform.uno/docs/articles/implemented-views.html#implemented---android--ios-only查看已实现的视图列表。
萨沙
0mkxixxg2#
乌诺是个陷阱它将需要同样多的努力转换为Avalonia,这是你应该做的,如果你想让它仍然是一个桌面应用程序。我们尝试了所有这些,Avalonia是一个真正感觉像WPF的精神继承者,加上维护者实际上是无毒的,并愿意帮助人们,这在这个自由和开源软件傲慢的时代是非常罕见的。随着v11的发布,产品真正变得成熟和稳定/快速。样式系统更像CSS,但是一旦你掌握了它(特别是如果你使用动画),它实际上比WPF更有意义。
但最大的问题不是不同工具集的技术复杂性,而是缺乏第三方支持。如果您使用并严重依赖第三方控件,如Telerik/Devexpress/Infragistics/等用于WPF,那么无论您选择哪种路径,您都将处于困境。他们中的任何一个都没有兴趣将他们的WPF产品移植到其他类似的平台上(至少在写这篇文章的时候,如果他们决定将来醒来的话)。即使是Uno的支持也非常有限和稀缺。这是我们通过迁移接受的惩罚,对于最关键的组件有(相当好的)社区替代方案,但您将不得不根据应用程序的性质给予一些可视化。