Use cases I determined for myself reagrding MS DotNet related dev tools (all pure IMHO of course):
C# may be good for large shops with many interchangeable developers who do not care about how much work hours are spent compared to VB.net, they just need a mainstream standard. For a small team or an individual developer VB.net is a clear winner, time saver and the best tool to succeed.
Windows DotNet is good to create reach GUI with a help of DevExpress and manage mono utils on remote linux computers via SSH library. Linux distros, especially Debian, have a lot of free outstanding very powerfull command line utilities often lacking a GUI or having some poor GUI. I think it is even a good market niche to create Windows GUI for managing Debian server.
pmono is a very good backport of the almost latest Mono for Debian stable distro.
MonoDevelop even 4.x is still very buggy and is only suitable to debug short fragments of DotNet code in native Linux environment.
MS Visual Studio VB.net is certainly the best choice for development for both Windows GUI and Linux command lines utils.
SharpDevlop is very good for fast probes of new latest MS compilers with targetting to the earliest old frameworks like DotNet/Mono v2.0.