Download the .NET Framework 3.5 and Visual Studio 2008 (and a cautionary remark)

As of today, you can download the release version of .NET Framework 3.5 and Visual Studio 2008. Here are some of links to get you started:

 

As you browse through the documentation (and I know you all do, right?) you might discover something that seems a little strange. APIs that have been added for the .NET Framework 3.5 have remarks in the documentation that say they’re new to the .NET Framework 3.5, yet the version information says something different. For example, the remarks for the RichTextBox.IsDocumentEnabled property say “IsDocumentEnabled is introduced in the .NET Framework version 3.5,” but at the bottom of the page, the Version information says “Supported in: 3.5, 3.0 SP1.” The truth is, they’re both right. RichTextBox.IsEnabled is added to the PresentationFramework assembly, and the updated assembly is part of the .NET Framework 3.0 SP1 and the .NET Framework 3.5. You cannot tell your application to target 3.0 SP1, however. You can only target the .NET Framework 3.0 or 3.5. If an application that uses the new API targets .NET 3.0, users that had the .NET Framework 3.0 SP1 installed on their computer wouldn’t have any problems, but users without the SP1 would experience Very Bad Things. By having the application target the .NET Framework 3.5, you ensure that the proper assembly is installed on the user’s computer. The same thing holds for APIs added to the .NET Framework 2.0. If a new API was added to an assembly that shipped with .NET 2.0, the new API will be included in the .NET Framework 2.0 SP1, but applications should target the .NET Framework 3.5.

Visual Studio 2008 allows you to target the .NET Framework versions 2.0, 3.0, or 3.5. Keep in mind that if your application targets versions the .NET Framework 2.0 or 3.0, you’re actually leveraging the assemblies that are included with .NET Framework 2.0 SP1 and 3.0 SP1. This means that you’ll see the new APIs in intellisense, so you need to be aware that if you use any new APIs, you either need to target the .NET Framework 3.5 or not use them. For a detailed explanation of the relationship between the .NET Framework versions 2.0, 3.0, and 3.5, see .NET Framework 3.5 Architecture.

 

Update: A few people are experiencing loss of XAML Intellisense after installing the SDK. Please see the following post to resolve this issue: