I find the Azure platform very compelling and C# a very productive language. The upcoming enhanced support for asynchronous programming in C# 5 is something I wish JavaScript would have for Node.js programming.
I'm quite sure those aren't the only things at Microsoft that are compelling and productive. However, being good doesn't preclude being simultaneously on a downward slope. You have to be riding on the right wave, or better yet creating the right wave yourself, to succeed. And I see Microsoft floating steadily on their surfboard while several waves simply pass by.