45

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

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

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

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

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

4

9 回答 9

12

您绝对无法在 Mac 上运行成熟的 WPF 应用程序。我什至不确定这在 Parallels 中是否可行。您可以做的最好的事情是使用 Silverlight,它以前被命名为“WPF/E”并且可以在 Macintosh 上运行。

于 2009-02-24T08:54:09.413 回答
8

我们也有类似的情况。我们有一个工作的 Windows 项目,想要一个 Mac 版本。

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

Director 应用程序应该很简单吧,跨平台等等?好吧,不,它很少那么容易,我们最终得到了两个版本的 Director 源文件。

运行 .Net 应用程序需要使用 Mono 作为底层引擎,这对我们来说效果很好,因为我们实际上只是在处理数字字节数组。另一方面,我们不得不用 Cocoa 重写 UI。它的成本几乎与制作 Windows 版本的成本一样高,因为我们还必须在学习过程中学习所有 Mac 的东西。

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

于 2009-02-24T09:45:20.117 回答
8

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

于 2009-08-12T22:04:42.607 回答
4

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

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

于 2014-06-29T17:30:28.877 回答
3

你想要一个新功能(支持一个完全不同的平台)并且你不希望在它上面付出任何努力。对不起,大多数时候这行不通。

除了最基本的(本机).NET 单声道外,我认为您不能在 MacOSX 上本机运行 WPF 应用程序。

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

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

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

于 2009-02-24T09:05:24.800 回答
2

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

[披露:我为 Nevron 工作]

于 2015-06-02T12:31:01.260 回答
1

这是不可能的。但是由于您的 UI 在 WPF 中,您可以做的是将 XAML 转换为其他东西 - 例如GTK#。当然,如果您像我一样使用大量 .NET 3.5 功能,那对您帮助不大。

让您的 UI 一开始就使用简单、简单的 XML 的另一个理由。

于 2009-02-24T09:04:02.120 回答
1

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

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

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

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

于 2010-07-02T16:31:40.290 回答
1

另一个商业解决方案是 NoesisGUI(年总收入低于 10 万的免费)。它是一个基于 WPF/XAML 的跨平台 UI 框架。有一个从 WPF 迁移的指南

于 2019-07-20T07:06:13.550 回答