ASP.NET Version Madness

With the impending release of Visual Studio 2008 and Visual Web Developer 2008, along with the .NET Framework 3.5, there is a bit of confusion around version numbers for ASP.NET. Before I get too far into this, let me just say right now that this post has little hope for clarifying things too much, but at least you won't feel so alone in your confusion.

If you've already installed one of the betas of the 3.5 Framework, you may have noticed that the C:\Windows\Microsoft.NET\Framework\v3.5 directory doesn't contain all of the files you would normally see in a .NET Framework release. In fact, the .NET Framework 3.5 is not a full release like version 2.0 was, or even like 1.1 was for that matter. Instead, version 3.5 kind of sits on top of version 2.0 and adds new features (significant new features) to the existing Framework.

How exactly does the 3.5 version affect ASP.NET developers? You'll get new features (like the AJAX Extensions built-in and LINQ features) and you'll get some fixes that we rolled up into the 3.5 Framework. Technically, however, you don't have a new versionĀ of ASP.NET. In fact, if you look at a standard ASP.NET error message after installing the 3.5 Framework, you'll see the ASP.NET version reported as 2.0.50727.xxxx.

Here's a bulleted list of some facts that apply after an install of the 3.5 Framework that may not seem intuitive:

  • You won't find ASP.NET 3.5 listed in the ASP.NET configuration dialogs for IIS. Application pools will still be configured to run ASP.NET 2.0.50727.
  • If you need to run aspnet_regiis, aspnet_compiler, etc., you'll still run them from the C:\Windows\Microsoft.NET\Framework\v2.0.50727 folder.
  • In order to use AJAX Extensions and the new LinqDataSource control in Visual Studio or Visual Web Developer 2008, you'll need to configure your project to target the .NET Framework 3.5. (See the docs that ship with your respective product for details.)
  • ASP.NET error pages (non-custom) will still report the ASP.NET version as v2.0.50727.xxxx.
  • Script maps in IIS will still be mapped to the 2.0.50727.xxxx version of the aspnet_isapi.dll.

With that in mind, you're probably thinking that we will continue to refer to ASP.NET as ASP.NET 2.0 after Visual Studio 2008 and Visual Web Developer 2008 release, right? Wrong! The official name for ASP.NET will be "ASP.NET in the .NET Framework 3.5", but the shorthand name is simply ASP.NET 3.5. But don't be confused. ASP.NET 3.5 is really ASP.NET 2.0 with the .NET Framework 3.5 installed running ASP.NET 2.0 binaries, even if your ASP.NET project in Visual Studio is targeting the .NET Framework 3.5. :)

Hopefully that clears up some of the confusion for ASP.NET developers. If it doesn't, there's always therapy.

Jim