Except it doesn't really help anyone but them. And later it turns out that they were only doing so because they were breaking the GPL. And then later that the code was shit and has taken a bunch of effort to get into decent shape and they've been completely ignoring emails on the subject.
Just like most other companies contributing drivers to the kernel through Greg K-H's Linux Driver Project, as Greg points out himself
Microsoft puts C# and the CLI under the "Microsoft Community Promise" and trumpets as it being a win for interoperability and open source. Except it only covers the core standardized parts. All the libraries specific to Microsoft's implementation that are widely used aren't included. As a result it basically only makes it easier to move from other implementations to theirs, and not the other way around, and the only one who wins is Microsoft.
It's still better than some other industry-standard languages such as, I dunno, C and C++. Show me their standardized network, threading, GUI libraries please? When did an open-source Java become useable: before or after Microsoft came with open-source C#?
Now I hate Microsoft as much as the next slashdotter, but let's be pragmatic please. Microsoft isn't Bill Gates, it's a thousand-headed hydra. Some heads may still be stuck in the old ways, but things are slowly improving.
In the old days, C# would never have been standardized, it would've been bundled with all their applications, and dev kits would cost thousands. They would've counter-sued to oblivion anybody complaining about their linux drivers. Yeah, OOXML is one of their myriad fuckups, but please don't single out the driver issue or C#, which are actually signs that things are improving at Microsoft, even if they're not perfect yet.