Currently Mono offers two GUI toolkits, Windows.Forms and Gtk+. Both of these work on OS X, but they only run via an X server. Just like early Java GUI toolkits, the non-native look and feel is causing problems for developers.
Miguel de Icaza has announced that Mono 1.2.6 will be shipped with an OS X native backend for the Windows.Forms implementation. They are also working with Imendio's project, Gtk+ for Mac OS X. The latter is currently a point where MonoDevelop can run entirely without X11 on the Macintosh.
A port of MonoDevelop is also planned for Windows, specifically for developers working on Gtk+ projects. Miguel recommends Windows developers continue to use Visual Studio or SharpDevelop for non-Gtk+ projects.
Lower priority project for the Mono team include CocoaSharp, which provides native bindings for the Cocoa API, and Objc-Sharp, a bridge between Mono and Objective-C.
Community comments
Actually "less-non-native" than "native" look and feel?
by Chris Morris,
Carbon or Cocoa
by Justin Prine,
Actually "less-non-native" than "native" look and feel?
by Chris Morris,
Your message is awaiting moderation. Thank you for participating in the discussion.
A Mac cohort is telling me that this still isn't really native look and feel - like the menu bar at the top of the form/window, rather than only at the top of the desktop, and other details.
It's closer cuz it's not X (which is way off), but still not the Real Deal.
Any thoughts on this?
Carbon or Cocoa
by Justin Prine,
Your message is awaiting moderation. Thank you for participating in the discussion.
The statement "Windows.Forms now has a native OSX back-end" from Miguel is a bit ambiguous. Does this mean they're using Carbon controls, i.e. HIViews (which will be deprecated in 64bit OS X), or are they using Cocoa/Appkit controls such as NSView? If they are using Appkit are the controls just subclasses made to look like Winforms rather than native controls?
If they are using Cocoa/Appkit controls then things are really looking up for being able to use WinForms under OS X.