You're conflating IT infrastructure and software product development, and the two are very different topics. There's literally nothing to stop me from writing .NET software using a Mac (via MonoDevelop or virtualization, like VMWare) and deploying it on Linux (via Mono).
There's nothing wrong with Mono, but neither Mono or MonoDevelop are drop-in replacements for C# and VisualStudio.
VMware is not an adequate solution for day-to-day development. There's a performance impact, significant memory overhead, and running Windows inside Linux/Mac OS X is not any more accommodating to users familiar with a UNIX environment than simply running Windows natively.
I took some code recently and ran it on Mono and only encountered one issue, which was a Mono bug that has now been fixed. MonoDevelop isn't a drop-in replacement for VisualStudio which is a good thing since VS is bloated and MonoDevelop isn't.
I have been writing .NET code exclusively in VMware for 5 years now, 2 years on Windows and 3 years on a Mac. The performance impact is there but it isn't a deal-breaker (especially if you have a fast HDD and enough memory (6GB)).
I took some code recently and ran it on Mono and only encountered one issue, which was a Mono bug that has now been fixed. MonoDevelop isn't a drop-in replacement for VisualStudio which is a good thing since VS is bloated and MonoDevelop isn't.
Confirming neither is a drop-in replacement, which isn't to say that Mono isn't useful or valuable, but simply that it is necessarily 2nd-tier in a Windows-focused development environment.
Given that you've spend 3 years developing C# in VMware on a Mac, I'd ask why you're not using native Mono/MonoDevelop entirely?
I have been writing .NET code exclusively in VMware for 5 years now, 2 years on Windows and 3 years on a Mac. The performance impact is there but it isn't a deal-breaker (especially if you have a fast HDD and enough memory (6GB)).
What do you see as the significant advantage of .NET that has warranted using non-native tools with an admitted performance impact exclusively for 3 years?
This sounds like individual developer inertia, not a high-level business decision.
I believe in developing on the platform that the application will run on, right now all of my code runs on Windows Servers so it makes sense to develop on Windows in a VM.
In the last 6 months I have been investigating moving my application to Mono and running on Linux servers, when that happens I will use Mono and MonoDevelop exclusively for that project. Of course other client projects I will still use VMWare and Visual Studio since they will be deployed on Windows.
The reason I didn't look at Mono earlier is that I had dedicated Windows boxes and didn't see a benefit in moving, now that I am on EC2 there is a price motivation to move.
Running in a VM is not a big deal, most .NET developers I know do all their client development in a VM even if they are running Windows.