I’m a relative newcomer to the .NET world (and a reluctant one at that). My initial thoughts are that the framework tries to do too much by trying to merge the lines between desktop and web application development. While there are certainly many ways that the web has benefited from traditional applications (with AJAX and other buzzwords), there are arenas where the two are still distinct.
A blog post entitled aspnet and its discontents summarizes my feelings on the matter:
My biggest problem with it is that it seems to have been designed without any real thought put into what Web programming entails. I suppose it sounded like a great idea at the time to design a framework that mimicked desktop application development. But, the majority of the serious programming I have done in my life has in some way touched on the Web, either directly as a traditional Web application, or using Web-related protocols. I am a Web native and I don’t need my framework getting in my way all the time. Working within the Page model of ASP.NET feels like both my hands and feet have been shackled while I’m in the middle of a competitive sparing match. Today, I lost the fight.