Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News .NET Framework Versions: Marketing vs. Reality

.NET Framework Versions: Marketing vs. Reality

This item in japanese

Since .NET Framework 3.0 Microsoft's versioning strategy confuses the community. Scott Hanselman explains the how and why of the drift between marketing and reality.

The whole versioning issue resurfaced in the question Scott Hanselman answers in his article about "How to set an IIS Application or AppPool to use ASP.NET 3.5 rather than 2.0". Developers wonder how to configure IIS in order to make use of the new LINQ features or WCF's REST support in their applications.

The answer to this question is quite simple: configure your application to use .NET Framework 3.5 within your web.config as "the really important stuff is the and the newly added assemblies in the assemblies section", not in IIS. Your AppPool must still use the 2.0 version of the CLR, i.e. .NET Framework 2.0.

The confusion concerning versioning is most likely rooted in the assumption "that each major version of the Framework meant a new CLR". In fact the CLR is still based on the 2.0 version, which means that "Framework version != CLR Version":

  • .NET Framework 1.x = CLR 1.x
  • .NET Framework 2.0 = CLR 2.0
  • .NET Framework 3.0 = CLR 2.0
  • .NET Framework 3.5 = CLR 2.0 + (C# 3.0 | VB9)

Thus the .NET Framework version has become a kind of "marketing term", which tells nothing about the CLR or compiler version.

The .NET Framework 3.0 added "three major new libraries: WCF (Windows Communication Foundation née Indigo), WPF (Windows Presentation Foundation née Avalon) and Windows Workflow or WF", only:

Bottom line: Installing .NET 3.0 doesn't fundamentally change your system in any way you should fear. Your 2.0 apps still run on a system with 3.0 installed. They are 2.0 apps using the 2.0 compilers and 2.0 CLR.

In .NET Framework 3.5 "new language compilers for C# and VB", which are necessary for all the new language features that make up LINQ, were introduced. In addition some new assemblies have been added, such as "the REST support added to Windows Communication Foundation" and the inclusion of ASP.NET AJAX, which was formerly available as a separate download.

Marketing and reality might join again , if the .NET Framework 4.0 will incorporate the Dynamic Language Runtime (DLR).

Rate this Article