

Mono 3.0 is out - octopus
http://tirania.org/blog/archive/2012/Oct-22.html

======
mythz
There'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> (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...](https://speakerdeck.com/mythz/what-is-the-
servicestack?slide=48)

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>

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-
deploym...](http://blogs.7digital.com/dev/2012/09/25/atomic-mono-deployment-
with-capistrano-and-nginx-under-debian/)

NancyFx (<http://nancyfx.org>) and SignalR (<http://signalr.net>) are other
great .NET frameworks with Mono CI builds and first-class Linux Support.

~~~
meaty
I'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.

~~~
smiler
A UK .NET developer? A rarity on here... are you looking to hire anyone?

~~~
meaty
We're a pretty quiet bunch. There are lots of us - if not thousands. We're not
hiring at the minute unfortunately. I've got your email address - will drop
you an email if an opportunity comes up.

~~~
smiler
Can you e-mail me where you work - I'd just be interested to see what you're
doing...

------
mythz
With 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_
Word, 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...](http://vivekgani.com/blog/2012/09/17/setting-up-qyoto-on-osx-
lion/)

------
tzs
Mono 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
> 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
Perhaps the distinction is that the Mono devs favor wrapping native UI kits
instead of inventing a platform independent abstraction.

~~~
joeshaw
Also 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
Have 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
Unfortunately 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.

------
mythz
At 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
MonkeySpace 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
Yep, I'm definitely looking forward to the exiting happenings in Mono/Xamarin
land launching early next year :)

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

------
bitcartel
Is anybody using MonoTouch to create cross-platform apps for iOS and Android?
What's the experience like?

~~~
shadowmint
Yes, 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
You 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-m...](http://stackoverflow.com/questions/8223837/using-dapper-in-monotouch)

[2]: <https://gist.github.com/1115206>

------
Todd
I'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
The C# Language Specification for Asynchronous Functions
([http://www.microsoft.com/en-
us/download/details.aspx?id=2375...](http://www.microsoft.com/en-
us/download/details.aspx?id=23753)) is available for download since 4/13/2011,
and they have been many drafts before that.

------
opminion
Mono is excellent as a drop-in replacement of Visual Studio's command-line
compiler.

~~~
glhaynes
What advantages does it bring in that role?

~~~
benologist
The 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
I'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
Yeah I've been doing the same actually heh.

------
seryl
It appears that libgdiplus 3.0 isn't currently available at

<http://download.mono-project.com/sources/libgdiplus/>

Would be nice to have it there :)

~~~
DuncanMak
libgdiplus is fairly stable - you can find use the latest zip from github if
you need a source release:

[https://github.com/mono/libgdiplus/commit/3ddf7ff28e0876dc39...](https://github.com/mono/libgdiplus/commit/3ddf7ff28e0876dc395368f11c0dd141199338f0)

------
giulianob
Where can I download the Windows installer for 3.0? The download page still
has the 2.10 release.

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

------
geoffeg
We recently switched to PostgresSQL after we had some very disturbing
performance issues using floppy drives with MongoD... oh... Mono 3.0.. uh,
nevermind.

