将C#WPF.NET 4.0应用程序移植到Mac OS X(Mono?)的建议

本文关键字:Mono OS Mac NET C#WPF 应用程序 | 更新日期: 2023-09-27 18:27:57

我目前有一个使用WPF和LINQ在MS Visual C#4.5中创建的(非商业)应用程序。

为了将来能够移植到MacOSX,我使用了MVVM设计模式来拆分逻辑和用户界面。

我想知道:1) 我知道Mono不支持WPF。我用了很多绑定。有可能以一种相当简单的方式将其移植到WinForms(或Mono支持的另一种方式)中吗?

2) 我想所有的LINQ功能都必须改为for/foreach循环?

3) 在移植时,我是否可以考虑或警告其他注意事项或建议?

提前谢谢。

将C#WPF.NET 4.0应用程序移植到Mac OS X(Mono?)的建议

Silverligt在Mac上运行。如果你的应用程序可以限制在Silverlight中,那么移植将非常容易,因为Silverlight基本上是浏览器中的WPF。在最近发布的Silverlight 5中,当浏览器用完时,您可以访问整个本地文件系统,还可以创建多个窗口。

正如评论中所提到的,如果(截至2012年4月)您愿意使用非常新鲜的代码,Mono-XWT跨平台Widget工具包应该可以做到这一点。

XWT类似于Eclipse/Java的SWT小部件套件,因为它直接映射到Mac OSX、Linux和Windows WPF的本机操作系统的小部件。它的不同之处在于,它基于大部分Mono工具堆栈(即MonoDevelop、MonoDoc、Banshee等)使用的GTK-Sharp库的布局系统和通用API。我的猜测是,他们希望MonoDevelop看起来比GTK小部件套件目前允许的操作系统更原生和/或更漂亮,这可能会使他们的工具链与Eclipse产品更接近。

在编写这个答案时,XWT工具包仍在进行大量开发(尤其是Windows WPF版本),但在所有三个平台上都可以正常工作。