.NET Framework 3.0: Clearing the Confusion

This past Friday, Soma announced .NET Framework 3.0. Customers are already asking things like "is C# 3.0 going to be in this? What about LINQ? How about WinFS?"  Sorry, stuff like C# 3.0 (if that ends up being its name, I have no idea) and features like LINQ are not shipping with .NET Framework 3.0.

Let's attempt to clear this up.

.NET Framework 2.0 + WCF + WPF + WF + WCS = .NET Framework 3.0

.NET Framework 3.0 uses the same C# and same features that were released in October 2005 with .NET 2.0, formerly code-named "Whidbey").  We didn't change the framework, we just added a couple new things to it.  The block diagram for .NET Framework 2.0 looks like this:

.NET Framework 2.0

The .NET Framework 2.0 is what comes with the .NET Framework 2.0 Runtime, the .NET Framework 2.0 SDK, Visual Studio 2005 Standard, Visual Studio 2005 Professional, Visual Web Developer 2005 Express Edition, Visual Basic 2005 Express Edition, etc. This is what you are using today with ClickOnce, Membership providers, the new GridView control, the new databinding stuff, all the goodness that you are currently using.

.NET Framework 3.0 is an additive release to .NET Framework 2.0, adding WCF, WPF, WCS, and WF capabilities.  Think of these as the additions formerly known as WinFX.  We just added a few things to the same goodness that you are using today in .NET 2.0.  To help clear up some of the confusion, this is what .NET Framework 3.0 looks like:

.NET Framework 3.0

Again, note that .NET Framework 3.0 is an additive release to .NET Framework 2.0.  With .NET Framework 3.0, the languages still use the 2.0 compilers, and leverage the 2.0.50727 Framework. 

[Update: Thanks Christophe Lauer for the suggestion to highlight the additions formerly known as WinFX]