Yes, but with C# we got ASP.Net web-forms. Holy crap what a technological boondoggle. In general, MS seems to have serious ADD under Ballmer. They introduce massive thundering huge frameworks every other year as some spectacularly big deal, and then drop them soon after.
You ever noticed how every Office and Visual Studio version has a completely new suite of program icons? Are they deliberately trying to hurt the usability of their programs?
Joel Spolsky's classic 2004 essay on Microsoft resonates as strongly as ever. He contrasts what he calls the Raymond Chan camp, i.e. maintain the integrity of the API at all costs, with what he calls the MSDN Magazine camp:
> The MSDN Magazine Camp is always trying to convince you to use new and complicated external technology like COM+, MSMQ, MSDE, Microsoft Office, Internet Explorer and its components, MSXML, DirectX (the very latest version, please), Windows Media Player, and Sharepoint... Sharepoint! which nobody has; a veritable panoply of external dependencies each one of which is going to be a huge headache when you ship your application to a paying customer and it doesn't work right. The technical name for this is DLL Hell. It works here: why doesn't it work there?
> The Raymond Chen Camp believes in making things easy for developers by making it easy to write once and run anywhere (well, on any Windows box). The MSDN Magazine Camp believes in making things easy for developers by giving them really powerful chunks of code which they can leverage, if they are willing to pay the price of incredibly complicated deployment and installation headaches, not to mention the huge learning curve. The Raymond Chen camp is all about consolidation. Please, don't make things any worse, let's just keep making what we already have still work. The MSDN Magazine Camp needs to keep churning out new gigantic pieces of technology that nobody can keep up with.
Funny, I see the .NET framework as a microcosm of Spolsky's criticism. The core C# language is fantastic - imho, it eclipsed Java at v2.0, C# 3 caught up with the popular OSS languages (Python et al) and since then some fantastic concurrency features have been added. But at the same time, almost every edition has completely thrown out the database library and started from scratch. Ditto remote execution. Serialization has done similar dances. Microsoft has written one great language and like 5 mediocre complete frameworks for every subject under the sun.