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...