English 中文(简体)
How Reliable is Mono on Linux vs .NET on Windows?
原标题:
  • 时间:2009-11-13 21:35:22
  •  标签:
  • c#
  • .net
  • mono

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?

最佳回答

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.

问题回答

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

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.

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.

This might be pure speculation, but here is my experience. I m using ubuntu and mono (as well as monodevelop) is shipped 2 years behind current version. You could compile newer one, but that s pain. I ve used it in 3 hobby projects, here is my conclusion: comparing to microsoft implementation it s buggy and has memory leaks and slower. Well, most of the time it will work, but should you stress your software and you ll see. I wish I knew C++ as good as C#, so I could go with it on linux. All applies to v. 2.10 and below.





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签