ASP.NET 2.0 backwards compatible? NOT. Here’s an obvious one – level 200

Most RAD developers will probably not encounter this breaking change, but for me, this doesn’t seem like something obscure:

In my pages, I make my <HEAD/> element accessible from code:

<head id=“Head” ruant=“server”>


Then, in my code-behind, I use:

protected HtmlGenericControl Head;

Then in code, I can add my title element as I need to, and I can add <meta/> elements programmatically.  Well, I try to run this page under ASP.NET 2.0, and my VERY FIRST experience with ASP.NET 2.0 comes back with a big, fat ERROR screen. 

Because the Page class in v2.0 has a Head property of type HtmlHead, my code will throw an error because I am accessing the HtmlHead Head; property through my HtmlGenericControl variable.  It worked great in v1.1, but it’s definitely a breaking change in v2.0.

I don’t really have beef with this change because a quick modification to my code solves the issue.  I do have beef, however, with the PR given to the “supposed“ backwards compatibility of v2.0.  Almost every article and book you read about v2.0 will say, “Never fear, your v1.1 apps will run just fine on v2.0 because it’s 100% backwards compatible.“:

ASP.NET 2.0 Internals claims this in the first line, and a direct quote from Migrating from ASP.NET 1.x to ASP.NET 2.0:  ”If you have ASP.NET 1.x applications in production, you will be relieved to know that ASP.NET 2.0 is fully backwards compatible. That is, your ASP.NET 1.x applications will run as normal on ASP.NET 2.0 without any changes.”  Well, my ASP.NET 1.1 application would not run on ASP.NET 2.0 without any changes.

I wish they would just be truthful.  I think statements like that are plain lies.  I have no problem with new versions have some published compatibility issues.  I know there will always be issues.  I just want to know about them.

Microsoft, I love you, but if you say something, I would like to believe it.  In this case, I wonder what other incompatibilities exist.

-now I await the inevitable comment that will prove me ignorant and misinformed. . . 🙂