views:

642

answers:

4

What difficulty would be encountered in deploying a Mono-based application to Windows? Does the Mono runtime have to be installed along with the application? Would this be an inconvenience for the end user?

Edit: The idea is to deploy a cross-platform application, thus Mono as a choice.

A: 

If Mono is a Linux version of .NET, wouldn't deploying an app developed on Linux with Mono on Windows simply mean taking your source/package and deploying it on Windows? Shouldn't the .NET pieces that need to be common already be available on Windows?

duffymo
GTK# is not available on Windows by default, but a *lot* of Mono programs use it.
Broam
+1  A: 

As @duffymo said you are probably better off requiring .NET vs requiring Mono. However, there are some scenarios where using Mono makes sense. In particular, if you use mkbundle to create an assembly without a requirement that Mono is installed. There is even a way to statically link the runtime into the exe although this brings along some licensing requirements that need to be considered.

dpp
+2  A: 

Mono is an implementation of .NET. As long as you don't use Mono-specific APIs, it should be 100% compatible.

luiscubal
...and as long as you don't use APIs that Mono hasn't implemented.
Broam
@Broam If you use Mono-incompatible APIs, then it wouldn't work on Mono in the first place.
luiscubal
The original question stated cross-platform, which means both sides' incompatibility have to be considered[
Broam
+1  A: 

As long as you're sticking to managed code in your application and the there is either .NET or Mono installed, you should be fine.

Tom Opgenorth