我们可以在Mac OS X上运行C#/ WPF应用程序吗?

时间:2009-02-24 08:47:55

标签: c# wpf macos porting

我出售了一个C#/ WPF应用程序(目前针对的是.net 3.0),人们一直在问我Mac版本。

应用程序是一个具有良好GUI的时间跟踪应用程序,时间跟踪应用程序中没有那么多业务逻辑,因此大部分应用程序都是GUI - 重写GUI只相当于重写整个应用程序

我没有资源重写应用程序或维护两个不同的代码库,所以我需要一种在Mac上运行相同代码的方法(我知道我必须调试和修改代码,我是什么意思是我只能支持一个代码库,我不能将项目分成不同的Mac和Windows项目 - 我只是没有时间处理两个项目)。

将应用程序移植到跨平台的UI库,使用不同的编程语言或Silverlight都无关紧要 - 这需要花费太多时间,我想通过这次投入新功能我将获得更多销售。

有没有人知道可以运行C#/ WPF到Mac的工具?

9 个答案:

答案 0 :(得分:12)

绝对没有办法在Mac上运行功能齐全的WPF应用程序。我甚至不确定Parallels是否可行。你可以做的最好的事情是使用Silverlight,它之前被命名为“WPF / E”,并且可以在Macintosh上运行。

答案 1 :(得分:7)

我们处于类似情况。我们有一个有效的Windows项目,想要一个Mac版本。

我们的产品分为两个部分,一个是.Net应用程序,另一个是Director投影机应用程序。

Director应用程序应该是简单的,跨平台的还是所有的?好吧,很少这么简单,我们最终得到了两个版本的Director源文件。

使用Mono作为底层引擎需要运行.Net应用程序,这对我们来说非常有效,因为我们只是真正编号字节数组。另一方面我们不得不在Cocoa中重写UI。它的成本几乎与制作Windows版本一样多,因为我们还必须学习所有的Mac内容。

从那时起,我们只更新了Windows版本。

答案 2 :(得分:6)

我们遇到了类似的问题。我们在Silverlight 3中编写了一个Mac版本(它支持很多WPF .NET的东西)。它是沙箱,但如果这不是问题,你可以做一些好东西。我们的代码库现在在WPF和Silverlight 3上,并且是相同的,当我们编译它时会生成SL3和桌面应用程序。

答案 3 :(得分:3)

您需要一个新功能(支持整个不同的平台),并且您希望不遗余力。对不起,大部分时间不起作用。

除了使用mono的最基本(原生).NET内容之外,我认为你不能在MacOSX上本地运行WPF应用程序。

如果您认为通过获得Mac用户可以赚更多钱。您可以考虑使用其他表示方法。由于你目前的“投资”,我会说尝试Silverlight(是的,我读到你的咆哮,没有这样做)。另一种选择可能是Adobe AIR / Flex。

如果您以这种方式移植应用程序。您可以维护一个代码库..一个在两个平台上运行的代码库。

如果您希望将更多时间花在当前代码库中的新功能上,请执行以下操作:忽略Mac用户。

答案 4 :(得分:3)

您可以使用Parallels。我的办公软件是用C#和WPF编写的,人们一直在Parallels的Mac下使用它。

进一步说明,Parallels允许您与Mac OSX应用程序并排运行Windows应用程序,可在Mac桌面上的自己的窗口中看到。它还允许在Mac和Windows应用程序之间进行复制和粘贴以及拖放。

答案 5 :(得分:2)

您可以尝试Nevron Open Vision。它集成在WPF,WinForms,Silverlight和MonoMac,Xamarin.Mac项目中。这与在Mac上运行WPF应用程序不同,而是要求您在NOV平台上重新编写应用程序。但是,一旦这样做,您的应用程序(或模块)将从单个代码库在所有这些平台上运行。这种方法的一个很好的例子是Nevron Writer(Nevron Office的一部分)。它可以在100%单一代码库的基础上在Windows,Silverlight和Mac上运行。

[披露:我为Nevron工作]

答案 6 :(得分:1)

无法做到。但是,由于您的UI位于WPF中,您可以做的是将XAML转换为其他内容 - 例如GTK#。当然,如果你像我一样使用大量的.NET 3.5功能,那对你没那么大的帮助。

将UI保持在简单易用的XML中的另一个原因。

答案 7 :(得分:0)

另一种商业解决方案是NoesisGUI(年收入少于10万免费)。它是基于WPF / XAML的跨平台UI框架。有一个guide for migration from WPF

答案 8 :(得分:-1)

实际上,有一个CrossOver适合你。从程序员的角度回答视图的其他人。如果我是你,我将安装CrossOver然后在CrossOver中安装.NET 3.5并愉快地运行WPF软件。

http://www.codeweavers.com/products/cxmac/

或者如果您更喜欢免费(但更难)的解决方案,请尝试葡萄酒。

http://davidbaumgold.com/tutorials/wine-mac/