[Mono-list] Advantages to Using Mono

jmalcolm malcolm.justin at gmail.com
Mon Jul 25 16:47:25 EDT 2011


spamname5 wrote:
> 
> I'm trying to make a case for using Mono for a new project coming up and
> was hoping that this list could help me with that decision.  We would like
> to develop a new high availability web application using jQuery and
> jQueryUI within a MVC framework while utilizing the development tools in
> visual studios.  We currently have a web farm consisting of linux servers
> running apache (and hosting some legacy products that can't get moved) and
> the shear cost of new hardware plus Microsoft license fees for those
> webservers is forcing us to search for another solution. 
> 

Well, I think you answered your own question there. The advantage of using
Mono is that you get to use Linux (your existing Linux servers) without
abandoning your .NET and Visual Studio skills.

My own experience is that Mono works very, very well for ASP.NET MVC. In
general, I recommend it highly.

For your setup, will it be as performant and reliable as .NET? Well, I guess
that depends. Mono is generally similar in speed to .NET although a little
slower overall. There are cases where it is faster. I doubt your performance
will be limited by Mono though. I/O and database stuff will likely be the
killer and I would rather be using Linux when solving that problem.

There are two garbage collectors available for Mono at this point. The new
one 'sgen' seems to handle complex loads more gracefully. I would already
say it is your best bet. It is not the default though so there may be some
workloads for which it is not the answer. You may want to profile your stuff
on each of them. Other people may be able to comment more about this.

Overall, I have found Mono to be very reliable. There is certainly a greater
degree of flux in Mono though and it is not as widely deployed. I believe
you are much more likely to run into bugs in Mono than with .NET. The good
news is that the Mono team rocks. Usually fixes come quickly and you can
deploy them immediately without having to wait for a new build. Fixes do not
always come though as Mono itself is not a commercially supported product.
Well, that is unless you are using SUSE and paying for the enterprise
extensions but I have no experience with that. You can, at the very least,
get in there and fix the problem yourself. You cannot beat Open Source for
that.

Compatibility in the core technologies is excellent. WCF is pretty weak on
Mono still. You may want to check out ServiceStack instead. You cannot use
Entity Framework and probably do not want to use LINQ2SQL. NHibernate and
other options do work well though. I find that generally third-party
libraries work well on Mono but it is not always the case. Officially, Razor
is not available on Mono but it does work well if you bring over the DLLs. I
have ASP.NET MVC 3 apps running on Mac and Linux that use Razor. Naturally,
there is also Spark and other options (including good old Web Forms of
course which ships with Mono).

For what it is worth, the ASP.NET MVC code itself was written by Microsoft.
They released it under Apache 2.0 and Mono builds from that. This is true of
the F# language as well if you were considering that.

You should talk to Xamarin to see if the Mono tools for Visual Studio are
still available. They sound like they would work for you.

--
View this message in context: http://mono.1490590.n4.nabble.com/Advantages-to-Using-Mono-tp3693668p3693993.html
Sent from the Mono - General mailing list archive at Nabble.com.


More information about the Mono-list mailing list