I've spent some time digging through the .NET internals (through books and code) and have/had a good familiarity with IIS and the HTTP pipeline Microsoft has set up.<p>ASP.NET is an oddball. It's roots, as many have pointed out, were to make web programming look like windows programming. That's the crappy part.<p>The good part is that there is a heckuva lot of power under the hood if you take the time to learn the mechanics of things. I can move from a drag-n-drop GUI programming of the web into all kinds of other things depending on my whims. I can go XAML, or Silverlight. I can go straight functional with F# or some of the other functional languages for .NET.<p>And it all runs inside the same IDE with IntelliSense and debugging and machine-level inspection if I want it. And all the applications, no matter what their language, can easily interoperate with each other. And if I stick to ASP.NET 1.1, I can run on *nix boxes all day long.<p>The list goes on.<p>Please don't misunderstand me. I don't have the religion, so I'm not trying to pump it up more than it is. It has real problems as an architecture because the winform idea doesn't fit into web programming. Having said that, however, a good programmer can crank out ASP.NET applications as fast as anybody else in any other platform. For exploratory web application programming it's on par with any other platform. The new team stuff looks pretty cool.<p>I find that most people who dis ASP.NET failed at learning it or are just blowing off steam. To say the same thing a different way, by the time you've wasted years figuring out where all the alligators are, you don't see what the big deal is any more.<p>Biggest plus? I can almost go to Seven-Eleven and pick up good ASP.NET programmers. The market has a lot of them (cheap). Biggest minus? Just because a bunch of stuff is hidden doesn't mean it goes away! Great ASP.NET programmers can crank out Javascript, CGI, and StoredProc code with the best of them. By "helping", Microsoft makes it a real pain to get under the hood and take total control (but it's very possible to do once you get the hang of it)<p>BTW, your example? You drag a label onto the form, double-click on it and type one line of code in. I'd argue that it only takes one line of code (and about 5 seconds) to accomplish. The rest is framework fluff.