O time Mono criou um binding para a API Cocoa, um dos maiores ambientes de aplicativos para Mac OS, facilitando a possibilidade de desenvolvedores escrever aplicativos em C# para o sistema operacional da Apple.
Baseado no seu sucesso com o MonoTouch, o time Mono começou o processo de criação dos bindings para o principal framework de aplicativos do Mac, Cocoa. De acordo com Miguel de Icaza, o pai do Mono, o MonoMac possui dois tipos de bindings:
- P/Invoke para API baseadas em C, encontradas em frameworks como AudioToolbox, CoreGraphics, CoreFoundation e CoreText.
- MonoMac.ObjCRuntime - um novo binding engine usando o gerador de binding btouch desenvolvido para o MonoTouch. O btouch gera o binding desejado começando de uma interface C# expressando uma API. O processo de binding é em sua maior parte automatizado necessitando apenas de alguns ajustes no final.
O MonoMac está parcialmente pronto, e a equipe Mono está procurando colaboradores para ajudar a concluir o resto:
- CoreFoundation (as partes que são necessárias, ver os princípios de design)
- CoreText (pronto)
- CoreGraphics (pronto)
- Foundation (as partes que são necessárias, e ferramentas de ajuda para suportar o resto)
- AppKit (em torno de 30% faltando para terminar)
Mono tem um projeto semelhante chamado CocoaSharp que começou em 2004 por Geoff Norton com sua primeira release em 2005. Os planos progrediram em 2008, mas de Icaza anunciou que a Novell não tinha mais interesse em investir em seu desenvolvimento em maio de 2009. de Icaza disse que eles usaram as lições aprendidas com esse projeto como tentativa para criar os bindings de C# para o Cocoa.
O Monobjc é outra ponte de .NET para C-Objective. Na versão 2.0, o Monobjc é um binding maduro que facilita a programação para os framworks do Mac OS X como o Cocoa, WebKit, QuickTime e DiskRecording. O desenvolvedor tem acesso à mais de 1400 classes e 7000 metodos no Mac OS X 10.4, 10.5 e 10.6. A ponte é intregada com a IDE MonoDevelop e vem com documentação e tutoriais.