2009-02-24 136 views
31

我出售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

回答

11

絕對沒有辦法在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

0

不能這樣做。但是,由於您的用戶界面是在WPF中,所以您可以將XAML轉換爲其他內容 - 例如GTK#。當然,如果你像我一樣使用.NET 3.5的許多功能,那對你來說無能爲力。

還有一個原因讓你的用戶界面保持簡單而簡單的XML。

2

你想要一個新的功能(支持一個完全不同的平臺),你希望不費吹灰之力。對不起,大多數時候這是行不通的。

除了最基本的(本機)與單聲道的.NET的東西,我不認爲你可以在MacOSX上本地運行一個WPF應用程序。

如果您認爲通過獲得Mac用戶可以賺更多錢。您可以考慮使用其他呈現方法。由於你目前的'投資',我會說嘗試Silverlight(是的,我讀你的咆哮關於不這樣做)。另一種選擇可能是Adobe AIR/Flex。

如果以這種方式移植你的應用程序。你可以維護一個代碼庫,一個在兩個平臺上運行。

如果您希望將更多時間用在當前代碼庫中的新功能上,請忽略Mac用戶。

5

我們處於類似的情況。我們有一個正在運行的Windows項目,想要一個Mac版本。

我們的產品分爲兩部分,一個是.Net應用程序,另一個是導演投影機應用程序。

導演應用程序應該很容易,跨平臺和所有?不好的是,它很少那麼容易,我們結束了兩個版本的Director源文件。

讓底層引擎使用Mono來運行.Net應用程序,這對我們來說非常合適,因爲我們只是真正的數字運算字節數組。另一方面,我們必須在Cocoa中重寫UI。它使我們花費的成本幾乎與製作Windows版本一樣多,因爲我們還必須在我們去的時候學習所有的Mac內容。

從那時起我們只更新了Windows版本。

+0

在我看來,這對於新開發者來說是一個不錯的例子。選擇可以在多個平臺上使用的工具。否則,只有在需求發生變化時,您纔會發現自己陷入困境,並且執行人員也希望在Mac或Linux上使用該產品。 – Kaspar 2017-10-09 11:27:26

5

我們有類似的問題。我們在Silverlight 3中編寫了一個Mac版本(它支持很多WPF .NET的東西)。這是沙盒,但如果這不是問題,你可以做一些好東西。我們的代碼庫現在在WPF和Silverlight 3上,並且是相同的,當我們編譯它時會生成SL3和桌面應用程序。

4

您可以使用Parallels。我有用C#和WPF編寫的辦公軟件,人們一直在Parallels下使用它。

作爲進一步說明,Parallels允許您在Mac OSX應用程序中並排運行Windows應用程序,可以在Mac桌面上的各自窗口中看到它們。它還允許複製和粘貼並在Mac和Windows應用程序之間拖放。

1

您可以試試Nevron Open Vision。它集成了WPF,WinForms,Silverlight和MonoMac,Xamarin.Mac項目。這不像在Mac上運行WPF應用程序,而是要求您在NOV平臺上重新編寫應用程序。但是,一旦你這樣做了,你的應用程序(或模塊)將從一個單一的代碼庫運行在所有這些平臺上。這種方法的一個很好的例子是Nevron Writer(Nevron Office的一部分)。它可以在100%單一代碼庫的Windows,Silverlight和Mac上運行。

[披露:我爲Nevron工作]

相關問題