9

C# looks great because it is a compiled language which seems to run quite well without too much CPU and does not consume too much memory. And StackOverflow and ServerFault are good examples of an MVC/.Net/C# stack that scales.

C# is also interesting because despite being compiled, it still has a lot of advanced features as a language only found on slower interpreted language.

My server being Linux only (Ubuntu 8.04 LTS), I am wondering if installing Mono in place of the .Net framework is a good idea for production use.

I currently do not have any existing applications using .Net but I am interested in using existing frameworks (like MS MVC).

ShuggyCoUk
  • 36,004
  • 6
  • 77
  • 101
  • 1
    Just for clarification: Technically, C# isn't a traditional "compiled" to machine code language but a "compiled" to byte code which is interpreted by the run-time to execute machine code. – Bryan Bailliache Jul 03 '09 at 13:19
  • 2
    Further clarification: the byte code is not interpreted, it is compiled into machine code before execution. – skolima Jul 03 '09 at 16:01
  • 1
    Even further clarification : the C# code, even if compiled in 2 stages, in the end is compiled into machine code :P – Andrei Rînea Aug 14 '09 at 16:24
  • Here is the answer given by Mono creator: [Is Mono ready for prime time?](http://stackoverflow.com/questions/18450/is-mono-ready-for-prime-time). – Grzegorz Gierlik Jul 03 '09 at 09:33

5 Answers5

8

Stable enough and fast enough to do what?

It will have different levels of stability and performance depending on what you want to do, I'm sure. For example, one of my Protocol Buffers unit tests (which uses Rhino.Mocks) manages to make the Mono VM abort with an assertion error - but I have no idea (currently) of whether that would affect anything else I'm doing, or whether it's just related to the form of proxying being used.

I suggest you try it and see.

Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
4

ASP.Net MVC is now open source. That it is now integrated into MonoDevelop via an add in would suggest that you are likely to get things working.

Given the very new status of this you should expect issues. This blog should be a reasonable starting point for you.

Remember that many ASP.Net MVC tutorials assume you have a sql server back end, this is unlikely to be feasible (given your question) so bear that in mind.

ShuggyCoUk
  • 36,004
  • 6
  • 77
  • 101
3

You'll have to judge it on a feature basis. At my current customer we're running a high-volume document processing and delivery system written in .NET 3.5. We have a Linux server that runs Mono with .NET components that take care of the delivery of documents to the outside world, e.g. through FTP. That runs fine in production.

We did run into a problem with the Mono implementation of the .NET FTP component, which forced us to look for other third party .NET components, which solved the problem. So you might run into things like these. But in our case: once we got it to work, it worked just fine and stable.

Dan Rosenstark
  • 68,471
  • 58
  • 283
  • 421
Pascal Lindelauf
  • 4,782
  • 4
  • 40
  • 55
1

I think that Mono is REALLY stable and complete.

It brings .NET to *nix World.

In my company I'm leading a project aimed to build an automated machine. This machine is built by different devices that need to be governed using a serial interface (RS232). The machine exposes a touch screen for user interaction. One of my responsibilities is to project the logic of the system beyond the GUI application.

I've chose Mono (used for presentation layer) also to build a custom middleware that runs the application business logic. This middleware is some sort of application server and it's executed in Ubuntu 10.04 LTS.

For now all the system is an advanced prototype, but also the final product will keep its heart in the couple Linux/Mono.

I hope that these considerations could be useful for you.

Regards, Giacomo

gsscoder
  • 3,088
  • 4
  • 33
  • 49
0

as i had read on mono project wait for MONO 3.0 it will solve the main problem in mono means memory leakages and garbage collectors so before 3.0 we can't say it as stable but it is a life line for developers like us who want to develop platform independent s/w with dot net.

Yasir Kamal
  • 443
  • 4
  • 10