tags:

views:

504

answers:

4

I am trying to decide upon using Mono with C# or Python (Django) for a Linux based Web Site. My concern with C# is that Mono may not be as reliable as .NET. Does anyone have any experience with this?

+2  A: 

This depends what you are doing. If you are creating a non-enterprise website, you should do fine with ether. I've heard good things about Mono. The problem with using Mono is that it is constantly playing catchup with MS and that it has to support multiple platforms, whereas MS does not. I have written desktop applications with mono, but I have never done website related things with it. With C# and the Windows platform, your best bet is the MS implementation. My recommendation would be to use Python.

I can not speak for the supportability, reliability, etc of Django, but Python has been arround for a while, and it has a long track record for working well on Linux/Unix.

monksy
+2  A: 

Personally, I would steer you away from using C# (Mono) if you are targeting Linux.

  • Your development community could be very small for any platform issues; while there are obviously a lot of C# developers, the number who use Mono is relatively tiny1.
  • In my experience, there are a lot of issues with even finding a recent version of Mono for Linux, unless you run SUSE2.
  • While Mono may have the features you want, and may have the reliability (I can't comment, I'm still using 1.x!) you may also want to look into the speed if you expect heavy usage.
  • If you plan to deploy to more machines (especially if you can't clone them) these are much more of an issue; they matter somewhat less if it's just one server.3
  • There are some who have concerns about the threat of lawsuits over Mono technology, and what might happen to the end users (you and your users) if those occurred. From what I've read, I'm not overly concerned, but I am not a lawyer.

Good luck.

  1. I could be mistaken; I didn't look at download numbers for Mono although that'd be the upper bound.
  2. Ubuntu Karmic (9.10) has Mono 2.4, but I regret I upgraded from Jaunty (9.04) which had 1.9.
  3. Building from source can be taxing. And there are other sources for the Mono 2.X binaries, but they aren't easy to locate.
NVRAM
Concerning the legality of Mono - there is absolutely nothing to worry about. Microsoft have issued a "Community Promise License" on the technology and are actively working with Novell to develop Mono and Common Language Runtime. http://en.wikipedia.org/wiki/Microsoft_Open_Specification_Promise - "an irrevocable promise by Microsoft, published in September 2006, to not assert legal rights over certain Microsoft patents on implementations of an included list of technologies."
Callum Rogers
sorry, there is no promise for asp.net or ado.net. And a platform cannot depend upon a promise.
sirmak
I predict that it's only a matter of time until a certain rich corporation hires Miguel away from Mono and Mono dies a slow death. (*I know he's not the only developer, but he seems to be its heart*)
NVRAM
+2  A: 

I think it's a given that Mono is less reliable than .NET on Windows, given the resources available for development, and the size of the user base. How much less is a moot point.

This blog post from Miguel de Icaza illustrates the sort of problems that would concern me when using Mono.

However I can't give you any comparison of Mono and Python.

Joe
+1  A: 

i do a variety of things using mono/c# on linux - all projects compiled on a windows machine, no less.

i've done services, web sites, console apps, you name it. unless you're doing real edge-case things, you should have no problems.

i also run sites using lighttpd + fastcgi + mono with no problem. i love it