web-dev-qa-db-ja.com

Mac OS XでC#/ WPFアプリケーションを実行できますか?

私はC#/ WPFアプリケーション(現時点では.net 3.0を対象としています)を販売しており、人々はMacバージョンを求め続けています。

アプリケーションは優れたGUIを備えたタイムトラッキングアプリケーションです。タイムトラッキングアプリケーションにはそれほど多くのビジネスロジックがないため、ほとんどのアプリケーションはGUIです。GUIのみを書き換えることは、アプリケーション全体を書き換えることと同等です。

アプリケーションを書き換えたり、2つの異なるコードベースを維持したりするリソースがないため、Macで同じコードを実行する方法が必要です(コードをデバッグおよび変更する必要があることはわかっていますが、 1つのコードベースしかサポートできないため、プロジェクトを異なるMacプロジェクトとWindowsプロジェクトに分割することはできません。2つのプロジェクトに取り組む時間がないだけです。

アプリケーションをクロスプラットフォームUIライブラリ、別のプログラミング言語、またはSilverlightに移植することはすべて関係ありません。時間がかかりすぎるため、今回は新しい機能に投資することで売り上げが増えると思います。

C#/ WPFをMacに実行または移植できるツールを知っている人はいますか?

36
Nir

Macで本格的なWPFアプリを実行する方法はまったくありません。 Parallelsでこれが可能かどうかさえわかりません。できる最善のことは、以前は「WPF/E」と名付けられ、Macintosh上で実行されるSilverlightを使用することです。

12
Anton Gogolev

私たちも同様の状況にありました。作業中のWindowsプロジェクトがあり、Macバージョンが必要でした。

当社の製品は2つの部分に分かれていました。1つは.Netアプリケーションで、もう1つはDirectorプロジェクターアプリです。

ディレクターアプリは、クロスプラットフォームなど、簡単に使えるはずです。いいえ、そう簡単ではありません。Directorソースファイルの2つのバージョンになりました。

.Netアプリを実行するには、基盤となるエンジンにMonoを使用する必要がありました。これは、実際に数を計算するバイト配列のみであったため、うまく機能しました。一方、UIはCocoaで書き直す必要がありました。私たちが行ったようにすべてのMacのことを学ぶ必要もあったので、Windowsバージョンを作るのと同じくらいの費用がかかりました。

それ以来、Windowsバージョンのみを更新しました。

7
Iain M Norman

同様の問題がありました。 Silverlight 3でMacバージョンを作成しました(WPF .NETをかなりサポートしています)。サンドボックス化されましたが、これが問題にならない場合は、いくつかの素敵なことができます。コードベースは現在WPFとSilverlight 3上にあり、コンパイルするとSL3とデスクトップアプリが生成されます。

6
madhatter

Parallelsを使用できます。私はC#とWPFで書かれたオフィスソフトウェアを所有しており、人々は常にParallelsの下でMacでそれを使用しています。

さらに、Parallelsでは、WindowsアプリケーションをMac OSXアプリケーションと並行して実行でき、Macデスクトップの独自のウィンドウに表示されます。また、MacアプリとWindowsアプリ間でコピーアンドペーストおよびドラッグアンドドロップが可能です。

3
Kelly

新しい機能(異なるプラットフォーム全体をサポート)が必要であり、その機能に労力をかけたくない場合。申し訳ありませんが、ほとんどの場合は機能しません。

最も基本的な(ネイティブ)モノラルの.NETのものに加えて、MacOSXでネイティブにWPFアプリケーションを実行できるとは思いません。

Macユーザーを獲得することでより多くのお金を稼ぐことができると思うなら。他の表示方法の使用を検討することもできます。現在の「投資」のために、Silverlightを試してみてください(はい、そうしないことについての怒りを読みました)。別のオプションは、Adobe AIR/Flexです。

この方法でアプリケーションを移植する場合。単一のコードベースを維持できます。両方のプラットフォームで実行されるコードベース。

現在のコードベースの新機能にもっと時間をかけたい場合:Macユーザーを無視します。

3
Rick

Nevron Open Visionを試すことができます。 WPF、WinForms、Silverlight、MonoMac、Xamarin.Macプロジェクトに統合されています。これはMacでWPFアプリケーションを実行するようなものではなく、NOVプラットフォームでアプリケーションを再コーディングする必要があります。ただし、一度実行すると、アプリケーション(またはモジュール)はこれらすべてのプラットフォームで単一のコードベースから実行されます。このアプローチが機能する良い例は、Nevron Writer(Nevron Officeの一部)です。 Windows、Silverlight、およびMacで、100%シングルコードベースで実行されます。

[開示:ネブロンで働いています]

2
Ivaylo Milanov

できません。しかし、UIはWPFにあるため、XAMLを GTK# などの別のものに変換できます。もちろん、あなたが私のようで、多くの.NET 3.5機能を使用している場合、それはあまり役に立ちません。

UIを最初から単純で単純なXMLに保つもう1つの理由。

1
Dmitri Nesteruk

もう1つの商用ソリューションはNoesisGUI(年間総収益が10万未満の場合は無料)です。 WPF/XAMLに基づくクロスプラットフォームUIフレームワークです。 WPFからの移行ガイド があります。

0
adabru