I wish Microsoft would find people to assign good names to things and stick with those names. They have a habit of changing names on things to the point that they confuse people. The latest example is the announcement Microsoft made recently that they’re changing the name “WinFX” to “.Net Framework 3.0”. You would think this name isn’t confusing, because it appears to succeed .Net Framework 2.0, but in fact it is. Up to this point, Microsoft has been saying that WinFX will be a layer on top of .Net. It will be an add-on. It is still a layer on top of .Net–.Net 2.0, that is–the 2.0 CLR, 2.0 compilers, and the 2.0 Framework Class Library. But when WPF, WCF, and WF are released, they’re going to bundle it with the 2.0 CLR, compilers, and the 2.0 FCL, but they’re going to call the whole package “.Net Framework 3.0”. In addition they’re adding some tools to Visual Studio.
This is going to confuse people, because people are going to think now that Microsoft is foisting a whole new version of their programming languages, C# and VB.Net, a new version of the CLR, and a whole new version of the Framework Class Library on the development community, a little more than a year after they released .Net Framework 2.0. People are going to start saying things like, “Wait a minute! We just got done training our developers for .Net 2.0, and now they’re releasing 3.0?? You’ve got to be kidding me. Why did we train them for 2.0 when we should’ve waited to train them for 3.0,” or, “Are our 2.0 applications going to work in the 3.0 CLR?” These are all misconceptions, but I can guarantee you, there are going to be some people who have them, and Microsoft is going to have to do damage control to clear up the confusion.
One thing this does once and for all is you can’t corrolate the .Net Framework version number to the version of the CLR, the compilers, or the Framework Class Library. Great. It was so simple before.
I’ll tell you what Microsoft should’ve done. If they wanted to rename WinFX to something that would’ve communicated continuity, they should’ve stuck with the 2.0 major version number, and called it something like .Net Framework 2.0 R2 (for Revision 2), or .Net Framework 2.0.5. This way, people could still identify the major version number with the version of the underlying technologies: CLR, compilers, and FCL.