No sane dev wants anything to do with MS, simple as that.
Then there are tens of thousands of developers out there who might disagree with you, on either one or both statements (about dealing with Microsoft or regarding their sanity) ;) The thing is: you don't have to "deal with Microsoft" (much) in order to use their (development) technology. And sure, Microsoft has its share of problems when it comes to keeping their user and fan -base happy, but that doesn't mean that they don't provide have anything interesting at all.
You know, I used to share your opinion regarding C#. Any sane Java developer would steer clear from that as best as they can, right? After all; it is a blatant rip-off from Java (MS trying their "embrace & conquer" technique) which in some ways is an insult to Java. Of course I totally overlooked the fact that Sun was actually happy about some parts because it also meant that Java definitely had its share of popularity.
Then Oracle took over, starting to try and make money from just about everything Sun related (bye bye "geek licenses" (as I tended to call them: free licenses to Sun products restricted to non-commercial but not to production use. iow: you were free to run your hobby website on Sun One: the Sun Java Systems webserver and back it up with the Sun Java Systems Directory Server for example)) and I didn't really feel motivated anymore to even closely support this money squeezer (I'm surprised that they haven't started selling Netbeans already).
So then I looked into .NET and C# and I learned that although there are similarities with Java it actually is a completely different environment. And, in my opinion, one which isn't half bad either.
I primarily use ASP.NET and well; there are plenty of things which it can do which Java (EE) can't. Nothing negative about Java, and most certainly not a comment in the likes of "one is better than the other", they both have their place in my opinion.
Did you know that ASP.NET is a full fledged OO environment where even the webpage itself is a class of its own (the System.Web.WebPages)? And did you also know that .NET supports partial classes? In short: a class definition which is divided over multiple files.
This is the perfect recipe for webdevelopers in my opinion because it fully integrates with the HTML 4.0 ideology where contents (HTML) and design / markup (CSS) should be kept separate. You basically get to keep this model (in a base minimum only one identifier line will be added to the top of your HTML document) where it merely adds an extra component: a separate file in which you can do your coding (your web application code or business logic as MS likes to call it).
Each to his own, but not having to dig through HTML code in order to check up on my programming has already saved me lots of time. From fixing programming errors right down to extending on already existing stuff.
And the fun part? I also don't like the way Microsoft is going. I think quite poorly about Windows 8, I'm still sceptical about Windows 10 and I also think their choices with regards to their development platforms were highly questionable.
That's one of the reasons why I'm now using all of this stuff on FreeBSD and Mono. All thanks to open source software.
So if Microsoft wants to open source this stuff then I'd say let 'm. Chances are high that we'll all be able to benefit from it.
IMO it's hardly as bad as you make it..