Hammett makes a great post on a topic that I often find myself discussing in more depth after I have had a few beers. It is one of those debates that is difficult to prove, but always fun to provoke. The ratio of poor solutions built on the MS platform is arguably greater than those built using other platforms.
Microsoft makes building web applications so easy, that developers really do not need to understand the underlying principles required to produce quality software. I have interviewed a number of “senior” developers, with more than ten years of experience, and with at least five years of ASP.NET, who could not piece together a plausible explanation for polymorphism. Sometimes I have to put the phone on mute to control myself, while they ramble on with what they think is a coherent thought.
VS.Net does not enforce, what I would argue, is a good design for applications. What they do well is help developers mass produce code that provides a business value, and in some cases this might be good enough. However, if you are looking for a more flexible solution, or want to use MVC or MVP with ASP.NET, your work is cut out for you.