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