22 ms·
Mono 3.0 is out
- bitcartel 14y agoIs anybody using MonoTouch to create cross-platform apps for iOS and Android? What's the experience like?
- untog 14y agoI used the trial version of it (that only runs in the simulator)- as a C# dev, it was great. MonoDevelop was deeply inferior to Visual Studio, though.
- CodeCube 14y agoNot my app, but you could check out iCircuit's experience: http://praeclarum.org/post/31799384896/icircuit-code-reuse-the-fourth-edition http://praeclarum.org/post/31799384896/icircuit-code-reuse-t... He achieves anywhere from 69-87% code reuse depending on the platform. They did a bit of a case study a while ago where Frank talks about it - http://blog.xamarin.com/2011/10/26/java-to-ipad-in-2-months/ http://blog.xamarin.com/2011/10/26/java-to-ipad-in-2-months/
- mythz 14y agoThere were lots of demos showing cross-platform Android / iOS and even OSX! (with MonoMac :). I met the creators of iCircuit and TouchDraw at MonkeySpace they said it was really easy to get going and you just needed to design your library so the UI was decoupled from the main code-base (which you could effectively re-use as-is). Several of techniques of structuring your code-base was described in @gshackles talk, some of the slides are here: https://speakerdeck.com/u/gshackles/p/cross-platform-mobile-development-with-c-number-monkeyspace https://speakerdeck.com/u/gshackles/p/cross-platform-mobile-... (SpeakerDeck seems affected by EC2's outage). MonoGame (https://github.com/mono/MonoGame https://github.com/mono/MonoGame) is an implementation of XNA which allowed games like Bastion and Infinite Flight (A C# Flight Simulator) to run cross-platform.
- kpao 14y agoWe're in the process of porting our Flight Simulator (Infinite Flight - http://infinite-flight.com http://infinite-flight.com) from iOS to Android. We originally developed it on Windows Phone. Porting from WP7 to iOS took a few months, mostly because MonoGame didn't have any 3D support (we added it). We have been slowly porting to Android, it's been pretty good so far, the framework makes it easy and we've had very little issues making external libraries build on MonoDroid. Xamarin's also been very responsive to our questions and issues. If you want to see what it looks like, here's a video of what we have lined up for our next update coming out in a few days: http://www.youtube.com/watch?v=u5N_ckb-dXw http://www.youtube.com/watch?v=u5N_ckb-dXw
- eropple 14y agoI'm surprised you're so high on MonoGame, though I guess if you started with XNA it makes a lot of sense for you. I find the project to be deeply hurt by being tied to the XNA ecosystem (the content pipeline is a mess, especially as you can't build content stuff in MonoGame itself, and Android support is atrocious--dealing with a destroyed context is insanely messed up). I'm also pretty disappointed in the lack of professional behavior--no CI, few/no automated tests, and few/no code reviews have led to some serious WTFs that sneak in that are really unsettling. There's a lack of project leadership, too, in that if you'd like to contribute there are no real designated maintainers or developers with responsibility over submodules (I've tried myself, multiple times, to no real success). I think the best way forward for Mono and games would be a library, starting with MonoGame or not, that followed better practices and didn't try to make square pegs fit in round holes. There are a lot of areas where it makes sense for Mono to ape the .NET APIs but this doesn't seem like one of them.
- yareally 14y agoIf I could possibly offer an alternative to MonoGame, perhaps try libgdx game framework with MonoTouch. Libgdx is a very well developed framework for Java, but the creator has also put together guides on how to use it with Monotouch. How to guides: http://www.badlogicgames.com/wordpress/?p=2602 http://www.badlogicgames.com/wordpress/?p=2602 http://www.badlogicgames.com/wordpress/?p=2450 http://www.badlogicgames.com/wordpress/?p=2450 http://www.badlogicgames.com/wordpress/?p=2454 http://www.badlogicgames.com/wordpress/?p=2454 http://www.badlogicgames.com/wordpress/?p=2457 http://www.badlogicgames.com/wordpress/?p=2457 http://www.badlogicgames.com/wordpress/?p=2459 http://www.badlogicgames.com/wordpress/?p=2459 There was also a discussion about using J2objc (http://code.google.com/p/j2objc/ http://code.google.com/p/j2objc/) in order to port it to iOS: http://www.badlogicgames.com/wordpress/?p=2593 http://www.badlogicgames.com/wordpress/?p=2593
- shadowmint 14y agoYes, and it's cool, but not as awesome as the demos make it seem. There are basically three major downsides: 1) It's another at least $399 x 2 as a single developer to use (but you can develop against it for free and only buy the license when you want to deploy). Professional licenses are more expensive than that. 2) The runtime can take a long time to load. 3-5 seconds for some apps. You can create a splash screen to mitigate this, but it's a *t experience when you do an a/b comparison on a native app and a mono app (this time is basically while it loads the runtime). 3) 3rd party library support sucks. It just doesn't really exist; if you're used to pulling nunit, ninject, shouldly, nhibernate, nsubstitute, etc. into your project, forget it. A handful of libraries have been ported to the touch and android runtimes, but most of things you'll look at either won't work or you'll have to recompile manually (to be fair there are a fair few that are easy drop ins; Dapper works like a charm for example). That said, you get some pretty cool stuff: you can separate your core application logic, including database access into its own library and share the code between your various projects. Fix once, fix everywhere. You can have common unit tests that you can run on a non-windows server. It's vastly more productive (than writing two code bases in objective c and java). You can develop without using visual studio~ <3 (some people see this as a downside; it's not to me. VS2010 is rubbish as far as I'm concerned; it crashes, freezes, loses my work all of the time. For all that I love resharper, I'll take monodevelop in a second thanks). Overall; if you can afford it, do it.
- danabramov 14y agoYou said Dapper works on MonoTouch—did you make any changes to it? I've read[1] there are quite a few problems with it so I had to choose Sqlite over it. I also found this[2], not sure if it helps. What's your experience with Dapper/MT? [1]: http://stackoverflow.com/questions/8223837/using-dapper-in-monotouch http://stackoverflow.com/questions/8223837/using-dapper-in-m... [2]: https://gist.github.com/1115206 https://gist.github.com/1115206
- andyjohnson0 14y agoI've been using it for Android development for about 8 months and I've got no complaints so far. App startup time hasn't been a problem, and I'm getting good levels of code reuse across Windows and Android.
- opminion 14y agoMono is excellent as a drop-in replacement of Visual Studio's command-line compiler.
- glhaynes 14y agoWhat advantages does it bring in that role?
- benologist 14y agoThe advantage is it runs on linux so you can get it right next to your redis or whatever else. I really hope 3.0 addresses missing SqlDbTypes like Date, Structured etc.
- tracker1 14y agoI've been using Node.js more and more for simple services, scripts etc.. and that's on Windows. Have some data migration process scripts in Node.js because going from a flat structure across many database tables (with weird joins etc), to a hierarchical object structure was far easier in Node.js. The output was dumping to .json.gz files to be called from a simple service, in addition to a statuslist.json file... the partner wanted a filter... was faster/lighter to re-use the node.js implemented parts, and re-implement the 4 api calls in node using ARR as a reverse proxy from IIS.. works great, and now handles the edge cases better... Was under 3 hours of work. I know this isn't Mono, of which I've been a big fan, and it's my first go-to for building certain applications cross platform, but have to admit that Node.js seems to be a better workflow, when you want to get a small task done. No spooling up a new project in VS, with build efforts. It just works.
- benologist 14y agoYeah I've been doing the same actually heh.
- seunosewa 14y agoIs it, though? Can I compile Python modules with it?
- seryl 14y agoIt appears that libgdiplus 3.0 isn't currently available at http://download.mono-project.com/sources/libgdiplus/ http://download.mono-project.com/sources/libgdiplus/ Would be nice to have it there :)
- DuncanMak 14y agolibgdiplus is fairly stable - you can find use the latest zip from github if you need a source release: https://github.com/mono/libgdiplus/commit/3ddf7ff28e0876dc395368f11c0dd141199338f0 https://github.com/mono/libgdiplus/commit/3ddf7ff28e0876dc39...
- mythz 14y agoWith the craziness that's leading to WPF / Silverlight being deprecated in favour of a sand-boxed Metro UI, it seems like MonoMac is looking like the best place to create full-featured Desktop apps with. Played with MonoMac on the weekend, it was super easy to get going and the bindings are nicely polished in idiomatic C# (uses same technology as used in MonoTouch). The bindings end up a close match to the official Obj-C APIs. Easy to translate Cocoa docs to C# APIs (which end up being nicer IMHO). It was also seamless to create UIs in XCode and access them in C#.
- seltzered_ 14y agoWord, monomac isn't too bad, as long as you remember to do all your work within monodevelop (notably modifying xib's / setting up outlets - monodevelop impressively sets up a fake project to 'sync' changes with xcode 4). Ideally I'd expect to see more CAD/Drawing/Creation-focused apps using monomac. I actually keep wondering if rhino3d is using it since that's a .net-based application. In case you burn to use Qt, qyoto (qt-c# bindings) is also being actively maintained (although I tend to recommend just going native for interfaces). recently wrote a post on it: http://vivekgani.com/blog/2012/09/17/setting-up-qyoto-on-osx-lion/ http://vivekgani.com/blog/2012/09/17/setting-up-qyoto-on-osx...
- geoffeg 14y agoWe recently switched to PostgresSQL after we had some very disturbing performance issues using floppy drives with MongoD... oh... Mono 3.0.. uh, nevermind.
- mythz 14y agoAt last week's MonkeySpace I sat in an awesome demo of Don Syme (Mr F#) show casing F#'s 3.0 type providers support in Mono on OSX! MonoDevelop had run-time intelli-sense of Type Providers and he was running code inside the built-in F# REPL in MonoDevelop.
- mcu 14y agoMonkeySpace was great! Especially that thing that was demoed that we can't talk about. You know... wink wink, secret hand shake... Awesome things are coming! I've been working with Mono for going on 8 years, I'm so glad to see that they were able to pull away from Novell.
- mythz 14y agoYep, I'm definitely looking forward to the exiting happenings in Mono/Xamarin land launching early next year :)
- Todd 14y agoI'm impressed by how quickly they've been able to add much of the significant features of C# 5.0 and .NET 4.5 -- in particular, async/await. Visual Studio 2012 has only been out for one month.
- jpatte 14y agoThe C# Language Specification for Asynchronous Functions (http://www.microsoft.com/en-us/download/details.aspx?id=23753 http://www.microsoft.com/en-us/download/details.aspx?id=2375...) is available for download since 4/13/2011, and they have been many drafts before that.
- zepolud 14y agoExtremely happy that Mono is doing so great recently. Politics aside, the MSR people did a beautiful job designing the system and it's very saddening how it's currently misused by the mother corporation. It's good that it gets a chance to thrive beyond their suffocating grasp.
- mythz 14y agoThere's also plenty of Server Frameworks with First class support for Mono: I'm apart of the core team that delivers http://www.servicestack.net http://www.servicestack.net (A REST, RPC, SOAP + MQ Service framework) which we've been hosting for years on Linux, initially on CentOS and we're now on a Hetzner Ubuntu vServer which worked out to be 11x cheaper than a lower speced instance on Azure!: https://speakerdeck.com/mythz/what-is-the-servicestack?slide=48 https://speakerdeck.com/mythz/what-is-the-servicestack?slide... We've gotten great up-time with Linux where our last server reached 480+ days up-time before we switched hosts: http://www.servicestack.net/mythz_blog/?p=838 http://www.servicestack.net/mythz_blog/?p=838 There are other traditional Windows/.NET companies exploring deploying on Linux/Mono since it allows them to scale at $0 licensing cost, here's a post from 7digital showing how they deploy on Nginx/FastCgiMono using Capistrano: http://blogs.7digital.com/dev/2012/09/25/atomic-mono-deployment-with-capistrano-and-nginx-under-debian/ http://blogs.7digital.com/dev/2012/09/25/atomic-mono-deploym... NancyFx (http://nancyfx.org http://nancyfx.org) and SignalR (http://signalr.net http://signalr.net) are other great .NET frameworks with Mono CI builds and first-class Linux Support.
- meaty 14y agoI'm going to throw a possibly unpopular view on the table here: sticking all this on Linux is purely about cutting costs but saves nothing. The administrative overhead of deploying all this stuff is incredible as are the disparate infrastructure and software models. You might be saving 11x on an Azure instance, but your ops time and staffing requirements will cost more than that. Throwing something on Azure is really cheap with respect to time and effort. If you need to scale past that or cost becomes a limitation, you might as well fish out for a Rackspace or other dedicated package. We're at the £50k hosting budget a month mark now (1x production DC, 1x hot spare DC, 2x packed 42U racks in each) and 2 meat based products to manage it all. Not much of that cost is software licenses. Note: I have nothing against servicestack - in fact it's rather good (we use servicestack.text) For ref, I turned down a position at 7digital a couple of years ago as I though they were smoking crack when stuff like this was mentioned.
- mythz 14y agoUnless you're new to the web, you'll be surprised to learn that most of the Internet runs on Linux. It runs because it's a commodity server, because it has first-class support for most NoSQL data stores, caches, proxies, etc. because its highly configurable, because it's much more automatable where everything is scriptable with simple unix commands. Going to call BS on Azure being cheaper. All of ServiceStack's live demos are deployed using simple bash scripts. There's none of these admin overhead costs, I check-in on my dev box and run a remote script to deploy straight from the Git repo. The projects are also un-touched ASP.NET or stand-alone Console hosts (which I host behind an nginx reverse proxy). I've no doubt that it would be at least 11x more expensive if I decided to host servicestack.net on Azure, even more if I decided to use SQL Server (PostgreSQL/MySQL is free to use on Linux). And I'll also miss out on cool linux utils like rsync which is how we migrated GB's of content onto the new vServer.
- drivebyacct2 14y agoNow if only more people would use Mono and more community .NET projects. Everyone who wants to use .NET feels that if it's not Entity Framework, SQL Server(Azure), Windows Azure, .NET 4.5 that it's not worth even considering.
- giulianob 14y agoWhere can I download the Windows installer for 3.0? The download page still has the 2.10 release.
- tzs 14y agoMono seems to be becoming what Java could have been if Sun had been sensible--a VM-based garbage collected system with a lot of high level portable libraries that gives you a lot of cross platform capability, BUT that is happy to let you write a Windows program or a Mac program or a Linux program if that's what you want.
- jawher 14y ago> BUT that is happy to let you write a Windows program or a Mac program or a Linux program if that's what you want. Care to explain the last bit ? Because Java also lets you invoke native code (and hence platform specific) if you want to.
- WayneDB 14y agoPerhaps the distinction is that the Mono devs favor wrapping native UI kits instead of inventing a platform independent abstraction.
- joeshaw 14y agoAlso the difference between using .NET's P/Invoke (DllImport) interface versus Java's JNI is about as big as can be in terms of developer pain and overhead.
- pilif 14y agoHave a look at JNA. It's about as easy to use as P/Invoke. Of course Java's days on the desktop are kind of numbered with the various browser and OS vendors getting visibly concerned about the security of the JRE, but that's a different matter.
- viraptor 14y agoUnfortunately it's still a huge pain to use JNA with stuff that returns unions (or a pointer to different type depending on the usage context). That makes things like X libraries wrappers really difficult to write in a clean way. P/Invoke is still much more flexible.
- drhowarddrfine 14y agoWindows users trying to write code for *nix always makes me laugh. Isn't Mono blocked by anti-virus programs? They should.