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

Nir*_*Nir 36 c# macos wpf porting

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

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

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

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

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

Ant*_*lev 12

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

  • Uh Parallels是一个虚拟机......在Windows上运行的任何东西都在它上面运行... windows. (36认同)

Iai*_*man 7

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

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

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

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

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

  • 在我看来,对于新开发者来说,这是一个很好的例子.选择可在多个平台上使用的工具.否则,只要需求发生变化,高级管理人员想要在Mac或Linux上使用该产品,您就会发现自己处于泡菜状态. (4认同)

小智 6

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

  • 谢谢,这听起来很可能(当我问这个问题时,Silverlight 3不存在),你在两个平台上使用相同的xaml和cs文件吗? (2认同)

Kel*_*lly 5

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

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