|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
.NET Framework 3.5 Architecture
Updated: March 2012
The architecture of the .NET Framework version 3.5 and 3.5 Service Pack 1 (SP1) builds upon the earlier versions of the .NET Framework.
The following table lists the versions of the .NET Framework that are included in the .NET Framework 3.5 and 3.5 SP1. There is no need to install any of the previous service packs if you installed the .NET Framework 3.5 or 3.5 SP1 because they are already included.
.NET Framework version
Features and notes
.NET Framework 3.5 SP1
Updates several assemblies that were included in the .NET Framework 3.5. The updates include non-breaking changes, new API elements, and additional functionality for the technologies that were included in the .NET Framework 3.5. The following technologies are included in the .NET Framework 3.5 SP1:
.NET Framework 2.0 SP2 and 3.0 SP2
These service packs are available only by installing the .NET Framework 3.5 SP1. They provide additional functionality for future infrastructure. They are not available as a separate install.
Correction: Previously, this topic incorrectly stated that they were available as separate downloads.
.NET Framework 3.5
Provides the first additions to the base class libraries to the .NET Framework since version 2.0. The following technologies are introduced in the .NET Framework 3.5:
For a complete list of features, see What's New in the .NET Framework Version 3.5.
.NET Framework 3.0 SP1
Updates .NET Framework 3.0 assemblies
.NET Framework 3.0
The .NET Framework 3.0 requires the .NET Framework 2.0 to be installed on the computer. If a user installs the .NET Framework 3.0 on a computer that does not have the .NET Framework 2.0 installed, the .NET Framework 2.0 is installed automatically.
The following technologies are introduced in the .NET Framework 3.0:
For more information, see What's New in the .NET Framework Version 3.0.
.NET Framework 2.0 SP1
Updates .NET Framework 2.0 assemblies
.NET Framework 2.0
Provides the core architectural base for all subsequent versions of the Framework. The following technologies are included in the .NET Framework 2.0:
This is the last version of the Framework that supports side-by-side operations of the .NET Framework versions 1.0 through 2.0.
For a complete list of features see What's New in the .NET Framework Version 2.0.
Windows 8 does not automatically include the .NET Framework 3.5 SP1. To run applications that require the .NET Framework 3.5 SP1, you must enable version 3.5 on your computer. For information about enabling .NET Framework 3.5 SP1, see Installing the .NET Framework 3.5 on Windows 8.
Windows 7 includes the .NET Framework 3.5 SP1.
Windows Vista Service Pack 1 (SP1) includes the .NET Framework 2.0 SP1 and .NET Framework 3.0 SP1. No installation of these service packs is necessary.
Windows 2000 does not support the .NET Framework 3.5 SP1.
Both the .NET Framework 2.0 SP1 and the .NET Framework 3.0 SP1 update the common language runtime; several assemblies are also included in their core versions. Although most of the updates are non-breaking changes, there are some cases where new API elements are added or behavior has changed.
You do not need to install these service packs if you are running the .NET Framework 3.5 or later because they are already included in later versions.
If your .NET Framework 2.0 or 3.0 application relies on changes that were included in one of the Framework's service packs, your application should target the .NET Framework 2.0 or .NET Framework 3.0. You can then ask your customers to download the appropriate service pack. However, if your application relies on new or changed functionality, we recommend that your application target the .NET Framework 3.5 SP1 or the .NET Framework Client Profile.
The relationship of the .NET Framework versions 2.0, 3.0, and 3.5 differs from the relationship of versions 1.0, 1.1, and 2.0. The .NET Framework versions 1.0, 1.1, and 2.0 are completely separate from each other, and one version can be present on a computer regardless of whether the other versions are present. When versions 1.0, 1.1, and 2.0 are on the same computer, each version has its own common language runtime, class libraries, compiler, and so forth. Application developers can choose which version to target. For more information, see Side-by-Side Execution, Targeting a Specific .NET Framework, and Using MSBuild to Target Specific .NET Framework Versions.
The .NET Framework 3.5 does not support side-by-side execution.
An application uses the same assemblies regardless of whether it targets the .NET Framework version 2.0, 3.0, 3.5, or the Client Profile, and regardless of whether the assemblies have been updated on a user's computer. For example, an application that uses Windows Presentation Foundation (WPF) and targets the .NET Framework 3.0 uses the same instance of the mscorlib assembly as an application that uses Windows Forms and targets the .NET Framework 2.0. If a user has installed a later Framework version or service pack and that version has updated their copy of the mscorlib assembly, then both applications will use the updated version of the assembly.