.NET Framework 3.0以来、Microsoftによるバージョン管理戦略がコミュニティを混乱させている。Scott Hanselman氏(ブログ・英語)は、 マーケティングとリアリティの間の動向の経緯と理由について説明している。
全面的にバージョン管理の問題が再浮上したのは、Scott Hanselman氏が自身の記事内で答えた質問がその背景にある。その質問とは、「IIS ApplicationまたはAppPoolを設定して2.0ではなくASP.NET 3.5を使用する方法」(ブログ・英語)についてである。デベロッパはアプリケーションで新たなLINQ機能またはWCFのRESTサポートを利用するためのISSの設定方法を探っている。
この疑問に対する回答は非常に単純である。「本当に重要なもの、かつISSではなく、アセンブリーセクションに新たに追加されたアセンブリーとして web.config内で.NET Framework 3.5を使用するようにアプリケーションを設定することである」。AppPoolは未だにCLRの2.0バージョンを使用しているに違いない。たとえば.NET Framework 2.0などである。
バージョン管理に関する混乱は、「フレームワークの各主要バージョンが、新しいCLRを意味している」という想定が根源にある確率が高い。実際、未だに CLRは2.0バージョンに基づいており、それは「Framework version != CLR Version」ということを意味する。
- .NET Framework 1.x = CLR 1.x
- .NET Framework 2.0 = CLR 2.0
- .NET Framework 3.0 = CLR 2.0
- .NET Framework 3.5 = CLR 2.0 + (C# 3.0 | VB9)
そういうわけで.NETフレームワークのバージョンが「マーケティング用語」の一種になっており、CLRやコンパイラーバージョンについては無関係である。
.NET Framework 3.0は「WCF (Windows Communication Foundation nee Indigo)、WPF (Windows Presentation Foundation nee Avalon)およびWindows Workflow or WFの3つの主要なライブラリ」を追加した。
肝心な点は、基本的に.NET 3.0のインストールでは、恐れているようにシステムは変更されない。2.0のアプリケーションは、3.0がインストールされたシステムで実行される。2.0コンパイラーと2.0 CLRを使用している2.0のアプリケーションである。
.NET Framework 3.5では、LINQを構成するすべての新しい言語機能にとって必要である「C# やVB向けの新しい言語コンパイラー」が導入された。加えて、新たなアセンブリーが追加された。たとえば、 「Windows Communication Foundationに追加されたRESTサポート」や別個のダウンロードで正式に利用可能になったASP.NET AJAXの組み込みである。
.NET Framework 4.0 がDynamic Language Runtime (DLR)(source)を統合すれば、マーケティングおよびリアリティは再び加わることになるかもしれない。
原文はこちらです:http://www.infoq.com/news/2008/04/dotnet-framework-versions