BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

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ランタイムのコピーが含まれているので、ユーザは個別にランタイムをダウンロードする必要はない。

この記事に星をつける

おすすめ度
スタイル

BT