C# – Objective C <-> Mono bridge

cgtkmonoobjective cwpf

I'm considering writing a cross-platform desktop app, initially for Mac/Windows, but eventually for Linux as well.

Currently, I plan to structure it like so:

  • Mac UI using Cocoa/Objective C/Interface Builder
  • Windows UI using WPF
  • In future, Linux UI using GTK#
  • Business/data access layers in C# – i.e. .NET on Windows, Mono on Mac/Linux

This will obviously be fine on Windows, I'm pretty sure it'll be fine on Linux/Gnome based on the GTK# apps I've seen. Calling into Mono on the Mac, however… I figure I've got these options:

  • ObjC#
  • Dumbarton (looks kinda dead)
  • Monobjc (this would mean writing the Mac UI in C# instead of Objective C – not so keen on this)

My question: has anyone had any experience building apps in a similar fashion? Any recommendations? Am I insane?

FYI – I'm pretty fussy about desktop UIs being "at one" with their host operating systems, so I'm not interested in clunky WinForms/Java/QT solutions…

Best Answer

If anyone stumbles on this...

MonoMac looks like it will be the obvious way forward.