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

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

问题描述:

我出售C#/ WPF应用程序(目前针对.net 3.0),人们不断询问我是否有Mac版本。我们可以在Mac OS X上运行C#/ WPF应用程序吗?

的应用是一个很好的GUI时间跟踪应用程序,也没有跟踪应用程序所以大部分应用程序的GUI是在时间的业务逻辑 - 重写只是GUI相当于重写整个应用

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

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

有谁知道可以运行或移植到Mac的C#/ WPF工具?

+0

这是一个很棒的*警告*“问题”。 – 2015-07-20 11:12:13

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

+25

呃Parallels是一个虚拟机...任何运行在窗口上的东西都会在它运行时运行... windows。 – 2014-11-13 01:00:14

+0

我有一个简单的Parallels上运行 – Kalecser 2015-08-12 18:15:50

+0

我有一个大型企业应用程序是WPF,并在平行工作。 – Kelly 2016-03-09 17:40:58

不能这样做。但是,由于您的用户界面是在WPF中,所以您可以将XAML转换为其他内容 - 例如GTK#。当然,如果你像我一样使用.NET 3.5的许多功能,那对你来说无能为力。

还有一个原因让你的用户界面保持简单而简单的XML。

你想要一个新的功能(支持一个完全不同的平台),你希望不费吹灰之力。对不起,大多数时候这是行不通的。

除了最基本的(本机)与单声道的.NET的东西,我不认为你可以在MacOSX上本地运行一个WPF应用程序。

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

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

如果您希望将更多时间用在当前代码库中的新功能上,请忽略Mac用户。

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

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

导演应用程序应该很容易,跨平台和所有?不好的是,它很少那么容易,我们结束了两个版本的Director源文件。

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

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

+0

在我看来,这对于新开发者来说是一个不错的例子。选择可以在多个平台上使用的工具。否则,只有在需求发生变化时,您才会发现自己陷入困境,并且执行人员也希望在Mac或Linux上使用该产品。 – Kaspar 2017-10-09 11:27:26

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

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

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

,或者如果你喜欢免费的(但更困难)的解决方案,试酒。

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

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

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

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

[披露:我为Nevron工作]