[Mono-list] Suitability of Mono

jmalcolm malcolm.justin at gmail.com
Fri May 20 20:06:11 EDT 2011

Yogi Yang wrote:
> I am told by my boss to evaluate Mono whether it will be suitable for such
> a complex system or not?
> But then while searching on net I read somewhere that Mono's future is not
> very clean now that Attachment has acquired it.
> I would like input from community on this.
> Is choosing Mono the best thing esp. when we want to develop a multi OS
> based software or not?
> Can someone please give unbiased opinion please?
> Regards,

First, on the future of Mono...

Mono is an Open Source project with a lot of supporters. There is no doubt
though that the core of this has been the team at Novell (Attachmate).

The good news is that pretty much the entire team has formed a new company
(Xamarin) focused on Mono. So they are still together.

They are funded now, and I think the business model will be very successful.
They have a couple income generating contracts already. Products are
supposed to appearing 3-6 months from now. They already have a bunch of
partners. Also, I would expect them to take pretty much all of Novell's
customers with them (just as a starting point). There is already a LinkedIn
group of will-be (want to be now) customers for their mobile products for

That said, they are a new company so only time will tell. Ultimately, you
have to make your own call.

Mono seems to be very healthy in my opinion though. Check out the number of
commits since the Attachmate team was sacked for example. You will see that
development has not slowed down at all. Given the recent turmoil, this is a
real testament. I believe that the future of Mono is very bright.

As for suitability, I believe you would be very happy with Mono as a
solution. There are a lot of complex projects and products based on it now.
Probably the biggest area of concern in the past has been the garbage
collector. It has improved by leaps and bounds over the last couple of
years. I expect 2.12 out soon which will be the third full release
supporting .NET 4.

That is not to say that you could not run into a specific area of
performance concern with your app when using Mono. The good news is that, if
this were to happen, you have the code and you can fix it for all of us. The
Mono team have always been amazingly open and responsive in my experience. I
would expect that to continue.

Mono on Linux is very mature. OS X has traditionally lagged a bit but has
been a real area of focus (there are products that depend on this platform
now) and has really caught up. I think that the GTK# experience is still
better on Linux than on the Mac. Besides, the proper way to do a GUI on Mac
is to use MonoMac. If you are targeting the web, ASP.NET MVC 2 (actual
Microsoft code) ships out of the box with Mono.

I do not have much direct experience with Mono on FreeBSD or Solaris. I know
that Codice Software has a commercial product (Mono based) that is supported
on Solaris. One of the great things about Mono is that only the core has to
be ported to new systems. You would want to do some testing though depending
on what platforms you wanted to support (Haiku is not ready for instance).

You can deploy Mono on Windows but really you will probably just want to use
Microsoft .NET there. You can use Mono assemblies on .NET if you use
anything that is Mono specific. Just include them in your app.

One piece of advice, design your app for Mono first with the idea that .NET
on Windows is just one of your target platforms. Apps written for .NET first
and then moved to Mono run into more problems. There are a bunch of reasons.

First, you will avoid doing simple things that can become a hassle, like
hard-coding platform specific paths, or not paying attention to case, or
sneaking in P/Invokes. It will also prevent you from using an unsupported
technology, like using Entity Framework as the ORM or something. Any
performance problems or other issues will either get fixed as you go along
or you will just do it another way. You will hardly notice. It will be just
another one of those things that happen during development no matter what
platform you are using.

View this message in context: http://mono.1490590.n4.nabble.com/Suitability-of-Mono-tp3538305p3539875.html
Sent from the Mono - General mailing list archive at Nabble.com.

More information about the Mono-list mailing list