2009-10-29 6 views
5

私はMac/Windows用のクロスプラットフォームデスクトップアプリケーションを作成することを検討していますが、最終的にはLinux用にも考えています。 GTKの# を使用して、将来的にはLinuxのUIをWPF 目的C <->モノブリッジ

  • を使用して
  • WindowsのUIをココア/ Objective Cの/ Interface Builderの
  • を使用して

    • MacのUI:

      現在、私はそうのようにそれを構築することを計画します

    • C#のビジネス/データアクセスレイヤー - Windows上の.NET、Mac/Linux上のモノラル

    これは明らかにWindows上では問題ありません。私が見たGTK#アプリに基づいてLinux/Gnome上でうまくいくことを確かめてください。 (これはC#でMacのUIを書くことを意味します

    • ObjC#
    • Dumbarton(ちょっと死んで見えます)
    • Monobjc:Mac上でモノに呼び出し、しかし...私は、これらのオプションを持って把握しますObjective Cの代わりに - これに熱心ではありません)

    私の質問:誰もが同様の方法でアプリを構築していますか?どんな勧告?私は気違いですか? FYI

    - 私は、デスクトップのUIは、そのホストオペレーティングシステムと「1時」であることについてかなりうるさいので、私は不格好なのWinForms/Javaの/ QTソリューションに興味がないんだけど...それは何のために

    +0

    多少似たような質問--dstartoverflow.com/questions/719895/building-cocoa-uis-for-os-x-with-c-and-mono –

    +0

    ダンバートンとは? –

    +0

    Dumbartonのリンクが死んでいるように見えます。私はそれを更新しました。 –

    答えて

    2

    誰もがこの上でつまずく場合、それは前方に明白な方法になりますように...

    MonoMacが見えます。

    1

    価値がある、私はここMac側から来ている。しかし、私は私のコメントが普遍的に適用可能だと思う。

    プラットフォーム固有のUIを使用してアプリケーションを記述したいという希望があるので、私はObjC#だけが妥当な選択肢だと思います。 Objective-CにMac側のUIを実装するためのリソースがたくさんあります。私はあなたがMonobjcにあるすべてのアドバイスを翻訳しようとするのはあなたの時間の無駄だろうと思っています。特にポインタをつぶして関数ハンドルを渡すことを望んでいるAPIを実行すると、 。唯一のものは、のアプリ間のシェアはモデルコードです。 Objective-Cに慣れることができない、あるいはできないと思わない限り、プレゼンテーション側で同じ言語で物事を維持しようとする理由はないと私は推測している。

    +0

    ええ、私は同意する傾向があります - Objective Cの経験が少しありますが、Objective CでMac UIを構築することをお勧めします。 ObjC#またはDumbartonの経験がある人はいますか? C#でコンパイルされたモデルにアクセスするためにObjective CからMono CLRを呼び出します(Monobc/Cocoa#の使用方法とは異なります)。 –

    0

    私はC#で書かれた商用デスクトップMacアプリケーションで2年間働いています。 Objective Cで書かれたライブラリで、シンプルなC関数が公開されています。私たちのC#コードは、単純なC関数に組み込まれています。

    元々、アプリケーションはMonobjCを使用していましたが、MonobjCはあまりにも扱いにくかったです。多くのMac APIはC#に変換されません。また、単純な関数呼び出しを行うためにObjective CとMonobjのセマンティクスの専門家である必要があります。 Objective Cのメッセージパッシングシステムは、必ずしもC#メソッド呼び出しに変換されるとは限りません。

    私がMonoMacを評価したとき、それはMonobjCより成熟していませんでした。MonoTouchのスタイルとパターンに一貫していたことを除いて、MonobjCよりも実質的な改良がなされたという印象はありませんでした。

    このように、C#のObjective CにPInvokingを使用するか、埋め込みMonoのガイドに従うことを強くお勧めします。 http://www.mono-project.com/Embedding_Mono

    0

    Dubrovnikをご覧ください。これは、コードジェネレータを含むDumbartonの更新版です。

    コードジェネレータは、埋め込みAPIを直接コーディングする必要を大幅に軽減します。ジェネレータをマネージアセンブリにポイントし、Obj-C出力をプロジェクトに統合するだけです。

    関連する問題