tags:

views:

544

answers:

11

Can a desktop application designed for the Windows platform (for example, using MS Visual Studio ) run on a Linux platform too? If so, please give some suggestions on what should be done to prepare for this.

+1  A: 

If you built it using .net it can run with mono. There are other possibilities as well, but we would need more details. UI, libraries, threading, other stuff.

Tim
Does Mono handle threads and thread synchronization differently from the Microsoft .NET Framework? Are there any threading-related issues to consider? That's definitely something I haven't heard before.
DrJokepu
@DrJokepu : When I answered the question it was not clear how he had developed the App. That is why i said "if developed in .net then mono likely works) If not, then it is all up in the air and there was not sufficient information at the time to answer fully...
Tim
+5  A: 

It is possible, with mono, check it out here http://www.mono-project.com/Main_Page

Filip Ekberg
+21  A: 

Given your tags, I assume it's a .NET application. With that assumption, you should look at the Mono project. Your app may run without change; it may run after minor changes; it may fundamentally need bits of .NET which haven't been implemented in Mono yet.

Jon Skeet
+5  A: 

It might work with wine. But not all applications are supported.

Wimmel
+1  A: 

You can run with Mono, but there are some compatibility problems when you get into Winforms. If you are Using WPF, then I don't think there is adequate support in Mono yet to even attempt this. The best way, although probably not an option for already coded projects, is to use GTK, which is supported very well by Mono, and will run in both Windows and Linux.

Kibbee
+5  A: 

To consolidate and extend some above answers...

If you are careful about the "library" classes that you've used, it may run under Mono.

Failing that, the next easiest choice, WiNE may allow you to run the application directly on Linux.

If all else fails, it's always possible to create a virtual machine (using VirtualBox or something similar) and do a full Windows install on the Linux machine to run your software.

Brian Knoblauch
But then the linux user has to pay for a copy of windows.
Rory
@Rory: In case of the VM, yes (as there *is* a Windows OS installed on a computer, albeit on a virtual one). In case of Mono and WINE, no.
Piskvor
+6  A: 

If you are going to use Mono, you should check MoMA. It's a tool that can help you identify compatibility issues.

Jorge Villuendas
I just downloaded it this morning to test out one my own apps I want to port to MONO. It is simple and gives you a nice detailed report in HTML.
Dillie-O
+2  A: 

The easiest way to do this is to write your application using the GTK# controls exclusively.

Also, make sure you are compiling and running your code using Mono on Windows to ensure you don't use any functions or libraries that the Mono runtime does not support or hasn't yet duplicated all the functionality.

Lolindrath
+2  A: 

You could also use Qt from trolltech.

A: 

If you have enough flexibility in terms of the platform/language you can choose you may have many options that are not .Net specific.

  • Java (I'd say the easiest to pick up and the most mature platform in the list because of it's huge user base and the number of books and documents available)
  • Python/TkInter
  • Ruby (has many GUI toolkits)
Deep Kapadia
+1  A: 

another cross-platform toolkit to add to the answer pile is wxWidgets

brad.lane