views:

38

answers:

1

My question is what is needed and what are the restrictions of deploying a .Net web application to a specific server.

Does the server need to be running windows?

Does the server need to have the .Net framework installed on it? (is this possible with non-windows servers?)

Does the server need to have IIS installed on it? (is this possible with non-windows servers?)

The reason for my question is we would like to create and package an application that could be deployed to a customer's server, however we want to be able to server customers who use windows, Linux, Unix, etc. servers.

I need to know the limitations and what workarounds are available

+4  A: 

Does the server need to be running windows?

No

Does the server need to have the .Net framework installed on it? (is this possible with non-windows servers?)

Not necessary, you could use Mono

Does the server need to have IIS installed on it? (is this possible with non-windows servers?)

No, works with Apache too

So basically if you want to run a .NET application on non Windows server you will have to use Mono, but as @Oded pointed out in the comments section there are porting caveats - you need to make sure that you are not using windows specific tech (such as WMI and GDI+) and that your code is portable (no hard coded path separators, use of Environment.NewLine instead of hard coded line terminators), no P/Invoke and COM interop, the same restrictions apply of course to any third party assemblies you might be using, etc...

Darin Dimitrov
Don't forget that there are porting caveats - you need to make sure that you are not using windows specific tech (such as WMI) and that your code is portable (no hard coded path separators, use of `Environment.NewLine` instead of hard coded line terminators) etc...
Oded
@Oded, good point, will update my answer.
Darin Dimitrov