I disagree. Apps targeting v3 will not run on v2 environments. Apps
targeting v3 will also utilize very significant new features in the
Framework that are not offered in v2. Whereas, LINQ in v3.5 is not
significant enough to warrant a major version change.
The fact that v3 is built on v2 is irrelevant to the numbering scheme;
if .NET did not isolate the assemblies so well and .NET Framework was
one big, ugly DLL, no one would be complaining.
Great points.
Part of the problem is that, up until C# 2.0, Microsoft stayed in sync for
the most part with C#, the .NET runtime and the Base Class Library. That's
what most people find confusing. However, it's important to note that not
everything has been in sync. For example, VB is currently at 8.0.
With the release of .NET 3.5 (if that's what its called at RTM) will have
the following major/minor versions:
CLR - 2.0
BCL - 2.0
C# - 3.0
Additional assemblies that target WinFX and LINQ - 3.5
VB - 9.0
Everyone needs to keep in mind that the CLR, BCL and C# are really "in sync"
with the ECMA standards -- not the Microsoft .NET releases. .NET Framework
3.0 and 3.5 don't actually require any changes to the CLR or the BCL. C#
3.0 is a language update that takes advantage of the .NET Framework 3.5 libraries
and adds some other cool features. However, it is not technically needed
to use the libraries -- C# 2.0 would suffice.
Best Regards,
Dustin Campbell
Developer Express Inc.