I have a C#/ASP.NET application which works on windows with IIS. But recently I'm tempted to switch to Linux/Mono. It comes up with some questions:
Can I run my Visual Studio projects and source codes in Mono correctly?
My clients use IIS for ASP.NET . Does my migration affect them? In other words does my Mono projects runs in IIS without any change or problem?
Can I host Mono ASP.NET web projects in Apache without any problem?
Can I use my skills in ASP.NET web forms in Mono exactly?
waiting for your valuable suggestions and comments
Yes, broadly speaking you can do all that you are asking.
A good starting point is the ASP.NET page on the Mono website, it covers those questions in quite a lot of detail.
Answers to specific questions:
Can I run my Visual Studio projects and source codes in Mono correctly?
Generally, you should not need to change anything much, but it is possible for you to write platform specific code for ASP.NET (i.e. using P/Invoke or looking for C:\Windows). Mono has a migration analyser that can check if this affects you. You can run Apache and Mono on Windows too if you like.
My clients use IIS for ASP.NET . Does my migration affect them? In other words does my Mono projects runs in IIS without any change or problem?
You can (and should) test your code on every platform you deploy on, but it should be easy to write code that can be deployed to mono too.
Can I host Mono ASP.NET web projects in Apache without any problem?
Yes, use mod_mono for Apache.
Can I use my skills in ASP.NET web forms in Mono exactly?
Yes, Mono implements ASP.NET 2.0 web forms, exact details can be seen here