Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a .NET application running on the dedicated Windows server. It needs not many recources and the server costs us much money. So we decided to move this application to our main Linux server.

I know there are many ways of running windows programs on Linux - wine, mono, many virtualization techniques like Xen and Virtual Box. I want to know which of them is the most appropriate for the situation, when I need to run a lightweights windows application on a linux box, that has already its own stuff.

share|improve this question
up vote 1 down vote accepted

Well, Mono is probably the most light-weight option, with the best system integration. It also has the highest risk of compatibility problems.

My advice:

Try Mono first. If you cannot get it to work, you'll probably have to use virtualization. I've heard good things about Xen, but others are also good. It probably makes sense to try a virtualization solution you are already using, if there is one.

share|improve this answer
I've tried Mono. I discovered that program needs non-.NET library and can't be run on Mono. So I will try VMWare Server or Xen to run it. – lexsys Jul 3 '09 at 8:01

For server applications wine would not be a good choice.

Mono would probably be the best option if the application can operate currently with the subset of the .Net framework that mono currently provides. If the application is not yours then this will not be a good way forward as you are unlikely to get support from your supplier unless they officially support mono. It would be a lighter-weight option than virtualisation though.

My gut reaction here is to use a VM solution despite the extra system resources that this may need. VMWare have a tool to migrate physical Windows machines to VMs which I have used successfully in the past (the only problem we had was the length of time it took to migrate a large machine and having to reactivate Windows afterwards), so this may be your path of least resistance.

share|improve this answer
Interesting tool! But now I think it is better to perform new Windows installation - server's work is not perfect, so reinstall will fix some problems. – lexsys Jul 3 '09 at 8:05

The best way to attack it would probably by deduction, so here is the Mono steps I would take:

I have had some sucess (and some failure) using Mono.

As a start Mono have MoMA:

The Mono Migration Analyzer (MoMA) tool helps you identify issues you may have when porting your .Net application to Mono. It helps pinpoint platform specific calls (P/Invoke) and areas that are not yet supported by the Mono project.

At the very least that will tell you it won't work on Mono without changes. If you have access to the source code or you may be able to get it changed so that it will work, although that will incur a greater testing penalty.

share|improve this answer

If you cannot use mono, you should use virtualization.

I'm using xen since 3 year - works very well.

But kvm with libvirt und virt-manager ist so easy to install - give it a try.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.