BT

InfoQ ホームページ ニュース Cocoa開発用に.NETスタイルのAPIを提供するMonoMac

Cocoa開発用に.NETスタイルのAPIを提供するMonoMac

ブックマーク

原文(投稿日:2011/03/29)へのリンク

OS X上でC#を使ってGUIツールキットを構築しようとする新たな試みであるMonoMacのバージョン1.0がリリースされた。MonoMacは他の.NET/Monoライブラリと一貫性があるように設計されている。これは.NET Framework設計ガイドラインに従うよう厚いラッパーをCocoa APIの周囲に提供する。

MonObjcや廃止される予定のCocoaSharpのような初期のライブラリはCocoa API上に機械的に生成された薄い互換レイヤを利用していた。このようなレイヤにはセレクタが必要だった。これは、Objective-CのOOPで使われるメッセージパッシングの形式だ。これらのライブラリはこのセレクタをC#のメソッドベースのOOPにマッピングするのではなく、objc_msgSend関数をそのまま公開した。objc_msgSendはパラメータや戻り値の型、CPUのアーキテクチャにまで依存しなければならない場合があった。

ネイティブコードを覆うライブラリを使うのではなく、クロスプラットフォームのツールキットを使う方法がある。これはなじみのある方法だ。Gtk#とWindows.Formsは使いやすい。しかし、ネイティブアプリケーションのような見栄えにはならない。そしてもちろん、Silverlightもある。Silverlightはネイティブアプリを真似る代わりになるスタイルを推し進める。

前に書いたように、MonoMacは.NETのしきたりを使ってCocoaのほとんどを外部に公開する。つまり、普通のオーバーライドやベースクラスのコンストラクタをコールすることでObjective-Cのクラスを安全にサブクラス化できる。クライアントコードはObjective-Cスタイルのデリゲートでも.NETのイベントでもイベントのフックができる。C#のデリゲート、ラムダ、クロージャはObjective-Cのブロックへマップされる。

MonoMacを使えばMac App Storeへも出品できる。アプリケーションはMono bundlerを使ってストア向けにアセンブルされる。これにはMonoランタイムのコピーが含まれているので、ユーザは個別にランタイムをダウンロードする必要はない。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。