Share via


Relating .NET Framework 3.0 to .NET Framework 2.0...

As a Developer Evangelist at Microsoft for the Communications Sector (Telco + Media & Entertainment industries), I have been presenting quite a bit on .NET Framework 3.0 lately. One understandingly confusing aspect is the naming of .NET Framework 3.0. The reason why it is confusing is because in the past, each new version of the .NET Framework included a new runtime (mscorlib.dll, etc.) and new base assemblies such as system.dll. This is not the case with .NET Framework 3.0.

If you look in the GAC by going to %windir%\assembly on a machine with .NET Framework 2.0 and .NET Framework 3.0 installed, the version of the system.dll assembly (along with other base assemblies) remains 2.0.0.0. If you sort the GAC by the Version column, you find the .NET Framework 3.0 related assemblies. At a high-level they fall into these namespaces:

Namespace for creating managed MMC plug-ins => Microsoft.ManagementConsole

Namespace for Windows Communication Foundation => System.ServiceModel

Namespace for Windows Workflow Foundation => System.Workflow

Namespace for Windows Presentation Foundation => System.Windows (as opposed to System.Windows.Forms for "WinForms" applications)

Namespace for XPS document creation and management => System.Windows.Xps (Subset of WPF but I think worth mentioning separately)

Also, if you look at %WinDir%\Microsoft.NET\Framework\v3.0 you won't find a new version of mscorlib.dll or any of the other runtime files. You will find the following folders under the v3.0 folder: WPF, Windows Communication Foundation, and Windows Workflow Foundation.

So, what does this mean? Essentially, if you install .NET Framework 3.0, you won't affect any of your .NET Framework 2.0 code because the run-time and the base class libraries remain the .NET Framework 2.0 versions. Installing .NET Framework 3.0 essentially adds additional namespaces and classes that are not used unless included in a project as a reference. Existing .NET Framework 2.0 applications do not require additional testing simply because the .NET Framework 3.0 assemblies are installed UNLESS the .NET Framework 2.0 applications add a reference to one of the .NET Framework 3.0 assemblies such as adding a reference to System.ServiceModel to add WCF capabilities to an ASP.NET 2.0 application.

Hopefully the above information helps to clarify the impact of just installing.NET Framework 3.0 on existing .NET Framework 2.0 applications. Of course, there is lots of great functionality in the .NET Framework 3.0 assemblies that you will want to add to your existing .NET Framework 2.0 applicationsJ so here are a few links to help you get started:

Installation downloads for non-development servers and end-users

Microsoft .NET Framework Version 2.0 Redistributable Package (x86)

Microsoft .NET Framework Version 2.0 Redistributable Package (x64)

Microsoft .NET Framework 3.0 Redistributable Package (both x86 and x64 packages available for download)

Installation downloads for developers

Microsoft® Windows® Software Development Kit for Windows Vista™ and .NET Framework 3.0 Runtime Components

Visual Studio 2005 Extensions for .NET Framework 3.0

While there is a designer for WPF as part of the Visual Studio Extensions, for working with WPF you will want to install Expression Blend. The release candidate can be downloaded here:

Expression Tools

A couple of links to training...

.NET Framework 3.0 training kit for WF, WCF and CardSpace

Windows Presentation Foundation Hands-On-Labs