3 ms·
I'm in the market of cross-platform desktop application as well and I've been monitoring Mono/Ximian for a while until last night when I was searching for a .NE
by edwinnathaniel 13y ago
I'm in the market of cross-platform desktop application as well and I've been monitoring Mono/Ximian for a while until last night when I was searching for a .NET Oauth 2.0 library and came across of a project called DotNetOAuth which after further digging does not work on Mono.
I'm a Java developer and I would write the software using Java if only Java isn't stigmatized by "bad software" in the desktop market. It's too bad because so far only Java that provide some of the solutions for me in a few areas to tackle in the cross-platform desktop market, namely: dealing with dependencies, rich 3rd-party libraries (and most of them are FOSS) and a packaging tool for Mac App-Store!.
I wouldn't mind writing 3 different UI code as long as I can share the back-end part and that shareable code works consistently across platform (i.e.: something that communicate with an embedded database like SQLite).
Can anyone share their experience using Mono for cross-platform desktop application that requires DB connection and potentially deal with Service API (i.e.: Twitter, Dropbox, etc)?
My requirements are as follow:
1. Installer/Packager
Something that can help me to generate installer for Windows 7, Mac AppStore, Ubuntu software center (or .deb). RPM would be nice but I can live with writing shell script.
2. Build+Dependency management (don't know if NuGet works flawlessly or not in Linux/Mac)
Maven spoiled me (people who dislike Maven please close your eyes...). I've read that Mono has xbuild but the documentation seems... lacking.
3. Unit-testing
Something where I can run unit-tests through the IDE so I can debug directly from my unit-tests when bugs are found.
4. Good enough 3rd-party libraries
I'm down writing missing libraries if needed but my first priority is the app itself.
- ndd 13y agoI recently worked on a small-ish desktop app that shuttled data between a HID USB device and a web service. We targeted Windows and OSX. The UI portion of the application was very simple and I still found the Xamarin/GtkSharp combination buggy and frustrating. We used Wix for the Windows installer and the included OSX tools to make the Mac installer (http://s.sudre.free.fr/Stuff/PackageMaker_Howto.html http://s.sudre.free.fr/Stuff/PackageMaker_Howto.html was helpful). A TeamCity build system using NuGet worked fine for building both flavors, though the Mac build was really just a shell script that TeamCity launched. We used the Xamarin compiler for Mac. In hindsight I wish we had taken (found?) the time to go all the way and write separate OSX specific UI code and not used GtkSharp. And not require the install of the Mono framework for Mac users-- that really kills the experience. Supposedly you can bundle in Mono with the Xamarin .Mac product but we haven't found the time to get that far yet. *EDIT: I failed to mention explicitly this was C#/Mono. Also for those interested I used http://www.signal11.us/oss/hidapi/ http://www.signal11.us/oss/hidapi/ as a wrapper around the Mac HID USB APIs and it worked fine.