BT

MonoMac Brings C# Development to Mac OS

| by Abel Avram Follow 9 Followers on Apr 22, 2010. Estimated reading time: 1 minute |

The Mono team has created a binding for Cocoa API, one of the major application environments for Mac OS, facilitating developers the possibility to write C# applications for Apple’s operating system.

Based on their success with MonoTouch, the Mono team has started the process of creating bindings for Mac’s main application framework, Cocoa. According to Miguel de Icaza, father of Mono, MonoMac has two types of bindings:

  • P/Invoke for C-based API found in frameworks like AudioToolbox, CoreGraphics, CoreFoundation and CoreText.
  • MonoMac.ObjCRuntime – a new binding engine using the btouch binding generator developed for MonoTouch. btouch generates the desired binding starting from a C# interface expressing an API contract. The binding process is mostly automated requiring just some tweaking in the end.

MonoMac is partially done, Mono is looking for contributor’s help to finish the rest:

  • CoreFoundation (the parts that are needed, see the design principles)
  • CoreText (done)
  • CoreGraphics (done)
  • Foundation (the parts that are needed, and helper tools to support the rest)
  • AppKit (About 30% left to be done)

Mono had a similar project called CocoaSharp that was started back in 2004 by Geoff Norton with its first release in 2005. Plans were undergoing to progress with it in 2008, but de Icaza announced Novell was no longer interested to invest in its development in May 2009. de Icaza says they have used the lessons learned from that attempt to create a C# binding for Cocoa.

Monobjc is yet another .NET to C-Objective bridge. At version 2.0, Monobjc is a mature binding that facilitates programming against Mac OS X frameworks like Cocoa, WebKit, QuickTime and DiskRecording. The developer can access more than 1,400 classes and 7,000 methods on Mac OS X 10.4, 10.5 and 10.6. The bridge is integrated with MonoDevelop IDE and comes with documentation and Tutorials.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

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

Email me replies to any of my messages in this thread
Community comments

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

Email me replies to any of my messages in this thread

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

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT