Cultural, depending on your desktop platform. .NET doesn't have an official IDE on any platform than Windows—if you run Linux or Mac, it's too fucking bad.
A lot of people who like *nix are precluded from it, without some sort of major workflow change. After getting excited about OSS languages, it's hard to just dump that and go full-stack Microsoft. Hell, a place I just interviewed at literally has everything through Microsoft that's feasible. IIS to the damn mice. And SourceSafe.
Our production environment is running on Windows + IIS + .Net, but we are moving everything to Mono. It is working for us. We are working on a stack based on Debian + NGnix + Mono. We are already using PostgreSql and Mongodb as as a data storage; we use Git (@ Github) for our repositories, and TeamCity for CI.
I do agree, the OSS stack for .Net is not as nice as Microsoft's, but in my case I mostly do everything with Emacs anyways, so it doesn't bother me. MonoDevelop is not bad though.