BT

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

| 作者: Jonathan Allen フォローする 553 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2011年4月3日. 推定読書時間: 1 分 |

原文(投稿日: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

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

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

このスレッドのメッセージについてEmailでリプライする

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

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT