3 ms·
Well, I don't know about Mono on Android, but my business partner and I tried using Mono to port a simple .NET app to OSX and it was disastrous. Layout was wro
by duncan_bayne 14y ago
Well, I don't know about Mono on Android, but my business partner and I tried using Mono to port a simple .NET app to OSX and it was disastrous.
Layout was wrong, the application was ugly and non-native, and the final straw was the printing API that flat out crashed whenever we tried to use it. We ended up re-writing in Java, and achieving a relatively high level of quality in a short period of time. Java was easy to pick up after C#, and the tooling was much more mature than Mono.
- NonEUCitizen 14y agoYou can build C# OSX apps with native UI if you use Mono with Monobjc: http://www.monobjc.net/ http://www.monobjc.net/ MonoTouch for iOS works similarly, and bridges into native Objective C UI libraries (and you continue to use Interface Builder). Last time I tried it, it had the downsides of long startup time (2-3 seconds) and big runtime. However, if you're writing a big app, let's say 5MB, then going from 5MB to 7MB is probably ok. I think MonoTouch for Android also uses native UI, but I have not tried it yet.
- ConstantineXVI 14y agoI'm not porting over existing .NET code, layout isn't a concern there. Rdio is the one Mono based app I've used (that I'm aware of), and it seems to handle UI mostly fine. I'm more concerned with the coverage of the Android APIs overall.
- migueldeicaza 14y agoIf you want a cross-platform UI from the same codebase, you should use Gtk#, not use Windows.Forms. But that requires a UI rewrite. An alternative is to split your code along the business logic/presentation layer boundary. Share the business logic and write a platform specific UI using the native toolkit on each platform: WPF or Winforms on Windows, MonoMac (Cocoa) on Mac and Gtk# on Linux. The Winforms stack has not been maintained for about 5 years, and was never particularly debugged nor maintained on Mac. We wanted to remove it, and just tell people "Sorry, this API is useless", but there are a few type dependencies that are needed elsewhere.