Mono is frequently used to say "Yes, .NET is cross-platform". How valid is that claim?

Posted by Thorbjørn Ravn Andersen on Programmers See other posts from Programmers or by Thorbjørn Ravn Andersen
Published on 2010-11-20T17:11:48Z Indexed on 2012/09/07 21:50 UTC
Read the original article Hit count: 291

Filed under:
|
|

In What would you choose for your project between .NET and Java at this point in time? I say that I would consider the "Will you always deploy to Windows?" the single most important (EDIT: technical) decision to make up front in a new web project, and if the answer is "no", I would recommend Java instead of .NET.

A very common counter-argument is that "If we ever want to run on Linux/OS X/Whatever, we'll just run Mono", which is a very compelling argument on the surface, but I don't agree for several reasons.

  • OpenJDK and all the vendor supplied JVM's have passed the official Sun TCK ensuring things work correctly. I am not aware of Mono passing a Microsoft TCK.
  • Mono trails the .NET releases. What .NET-level is currently fully supported?
  • Does all GUI elements (WinForms?) work correctly in Mono?
  • Businesses may not want to depend on Open Source frameworks as the official plan B.

I am aware that with the new governance of Java by Oracle, the future is unsafe, but e.g. IBM provides JDK's for many platforms, including Linux. They are just not open sourced.

So, under which circumstances is Mono a valid business strategy for .NET-applications?


Edit: Mark H summarized it as: "If the claim is that "I have a windows application written in .NET, it should run on mono", then not, it's not a valid claim - but Mono has made efforts to make porting such applications simpler.".

© Programmers or respective owner

Related posts about java

Related posts about .NET