How is the .NET Framework 3.5 different from .NET 2.0 and .NET 3.0?

Happy New Year! It's good to be back to the office from a holiday vacation.

I have received questions regarding the .NET framework 3.5, how it is different from previous versions, can applications based on .NET 3.5 co-exist with applications based on previous versions, etc. The answers to these questions can be found from the online documentation that comes with the framework, and many articles and blogs on the Internet. However, the infomation listed below may help you save some research time.

Microsoft .NET Framework 3.5 contains many new features building incrementally upon .NET Framework 2.0 and 3.0, and includes .NET Framework 2.0 service pack 1 and .NET Framework 3.0 service pack 1. The equation below summarizes the statement:

.NET 3.5 = .NET 3.0 + .NET 3.0 SP1 + LINQ + ASP.NET 3.5 + CLR Add-In Framework + Additional Enhancements

Upgrade Paths: 

.NET 2.0 => .NET 2.0 with SP1*:          Install .NET 2.0 SP1 on top of .NET 2.0
.NET 2.0 => => .NET 3.0:                   install .NET 3.0 on top of .NET 2.0, which adds WCF + WF + WPF + CardSpace
.NET 3.0 => .NET 3.0 with SP1*:          Install.NET 2.0 SP1 and .NET 3.0 SP1 on top of .NET 3.0
.NET 3.0 => .NET 3.5:                        Install .NET 3.5 on top of .NET 3.0

*SP1 for .NET 2.0 and SP1 .NET 3.0 sevice packs are available as separate installation packages. These service packs are not supported on Vista. You should install .NET 3.5 on Vista instead.

You may have several versions of the .NET Framework installed on your computer. Each version of the .NET Framework can co-exist with the other versions on the computer.

A succinct explanation on the .NET framework 3.5 can be found at Wikipedia, https://en.wikipedia.org/wiki/Microsoft_.NET

This version of the framework uses version 2.0 of the CLR (the same model as the use of CLR 2.0 in .NET Framework 3.0). However, it installs .NET Framework 2.0 SP1, which adds some methods and properties, required for .NET Framework 3.5 features such as LINQ, to the BCL classes in .NET Framework 2.0. These changes do not affect applications written for version 2.0 of the .NET Framework.[13]

Full support for .NET Framework 3.5 project types, as well as targeting .NET Framework 3.5 in builds, is included in Visual Studio 2008.

A detailed explanation can be found at David Chappell's white paper, "Introducing the .NET Framework 3.5 by David Chappell".