我们可以在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工具?
不能这样做。但是,由于您的用户界面是在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版本。
在我看来,这对于新开发者来说是一个不错的例子。选择可以在多个平台上使用的工具。否则,只有在需求发生变化时,您才会发现自己陷入困境,并且执行人员也希望在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/
,或者如果你喜欢免费的(但更困难)的解决方案,试酒。
您可以使用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工作]
这是一个很棒的*警告*“问题”。 – 2015-07-20 11:12:13