Back in May we had a heated discussion over the document type picker in Visual Studio 2005 (beta 2 at that time). I cranked out a copy of the now released VS2005 and noticed that the picker did not change one bit. To my disappointment the changes I expected didn’t happen.

You will notice several standard Doctypes are missing from the list (if you are new to Doctypes, see my article What’s In Your DOCTYPE?). For example, when you start a new web project, you get XHTML 1.0 Transitional by default. If you select HTML 4.01 from the list, what are you validation the page against? XHML 1.0 Transitional, as defined on the page; HTML 4.01 Strict or HTML 4.01 Transitional?
The way it is set up right now, you validate against the schema selected from the picker, not the one defined on your page. Does anybody else think this is really confusing?
Next, HTML 4.01: is it Strict or Transitional? Where’s XHTML 1.0 Strict? Please, don’t tell me it’s the same as XHTML 1.1 (which is always strict, if you will). And who in hell still needs IE 3, NN 3 and NN 4? I’d wager 0.1% of people may need it, but why bake it in for the 99.9% of other developers? What a mess… :(
For the curious kind, all these schemas are located in Program Files\Microsoft Visual Studio 8\Common 7\Packages\Schemas\html. I’ve poked around a couple of them and realized that adding the missing ones would be very time consuming.
If this were a small insignificant issue, I wouldn’t even spend time typing this. But deciding which document type definition to go with and declaring the right DOCTYPE is the first step to not only staring a new web page, but a new web project. Whether you work in Quirks or Standards mode is important. This choice even affects how you manipulate DOM.
Traditionally, ASP.NET developers have known little about web standards, and have always had a lame and incorrect DOCTYPE in the template to confuse them: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">. The document schema picker creates even more confusion.
I met some folks from the ASP.NET team at the MVP summit, and I know they understand the importance of promoting web standards, but I just don’t get it why they are to stubborn on some important issues. I’m afraid this discussion is to be continued.