.NET Framework 3.5 と、.NET Framework 3.0および2.0 の関係

 

 

 先日、Visual Studio 2008 英語版と、.NET Framework 3.5 英語版が今年の11月中にリリースされることが正式に発表されました。(https://www.microsoft.com/japan/presspass/detail.aspx?newsid=3257)

  これらの日本語版についても、英語版のリリースからさほど間を空けずリリースできるよう現在鋭意開発を行っています。

 

  さて、今回新たにリリースされる.NET Frameworkのバージョンは3.5となっており、現時バージョンの3.0の延長上にあるようなバージョン番号になっております。

  この.NET Framework 3.0 は、.NET Framework 2.0 に対してWPF、WCP、WFなどを追加して大幅に拡張されたフレームワークという位置づけにあり、また3.5も3.0に対して幾つかの機能拡張を行ったものになります。

  もっといえば、今回の.NET Framework 3.5 のリリースに合わせて、.NET Framework 2.0 と .NET Framework 3.0 にもいくつかの修正が含まれています。

  ・・・こうなってくると、.NET Framework 2.0 と 3.0 と 3.5 の関係がどのようになっているのか、混乱してしまいそうな方もいらっしゃるかも知れません。

  そこで今回は、旧バージョンのものも含めて、これらの.NET Framework の関係について整理してみたいと思います。

 

 

  まず、古い話になりますが、2002年に登場した .NET Framework 1.0、2003年に登場した .NET Framework 1.1、そして2005年に登場した .NET Framework 2.0 までは、それぞれ完全に独立したフレームワークになっており、CLR(コモンランゲージランタイム)部分も全く独立してインストールされていました。

  これらの3つをもしも同じマシンにインストールすれば、それらは別のフォルダにインストールされることになり、それぞれの持つライブラリを、個別に使用することが可能でした。

 

  しかしながら、このようにそれぞれのバージョンの .NET Framework を完全に独立させてインストールするようにすると、当然のことですが、重複する部分が少なからず存在することになり、ディスクスペースの無駄、さらに実行時にはメモリの無駄が生じてしまう可能性があります。

 

  そこで、.NET Framework 2.0 以降のフレームワークでは、これまでのバージョンアップで熟成されてきた.NET Framework 2.0 を「核」としてそのまま使うことにし、新機能を持つクラスライブラリを追加する形態になりました。

  こうすることで、無駄な重複部分がインストールされることを防ぎ、かつ安定した .NET Framework 2.0 の CLRを常に使うことができるようになりました。

(※ .NET Framework 3.5 以降のフレームワークの構成については、現在のところ未定です。)

 

  そのように、.NET Framework 2.0 に拡張ライブラリをのせてリリースされた最初の .NET Framework が、.NET Framework 3.0でした。

 

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

 

 

  そして今回、統合言語クエリ (LINQ) や ASP.NET AJAX などの新機能を、これまでの .NET Framework 3.0 に追加するような形で登場するのが .NET Framework 3.5 になります。

  ただし、今回の拡張部分は CLRなどの従来のフレームワークとの依存性が強く、その従来の 2.0 および 3.0 の部分に対して若干のアップデートが必要でした。

  その 2.0 および 3.0 に対するアップデートを施すために、.NET Framework 2.0 SP1 および .NET Framework 3.0 SP1 が用意されることになりました。

 

  .NET Framework 2.0 SP1 = .NET Framework 2.0 × Update

 

  .NET Framework 3.0 SP1 = .NET Framework 3.0 × Update

 

  もっとも、.NET Framework 3.0 は .NET Framework 2.0 を包括していますから、丁寧に表現すれば

 

  .NET Framework 3.0 SP1 = (( .NET Framework 2.0 × Update )  + WPF + WCF + WF + CS ) × Update

 

ということになります。

  そしてこの .NET Framework 3.0 SP1 に、今回の新機能を実行するためのライブラリを合わせたものが、.NET Framework 3.5 ということになります。

 

  .NET Framework 3.5 = .NET Framework 3.0 SP1 + DLINQ, AJAX, ...

      = (( .NET Framework 2.0 × Update )  + WPF + WCF + WF + CS ) × Update + DLINQ, AJAX, ...

 

 

  これだけ見ていると頭が混乱しそうですが、実際には.NET Framework 3.5 のインストーラを使用してインストールすれば、必要なものがすべてインストールされる形になります。

  つまり、たとえばインストール対象のマシンに.NET Framework 2.0 や 3.0 が全く入っていなければ、まずそれらをインストールしてくれますし、.NET Framework 2.0 SP1 や 3.0 SP1が当たっていない環境であれば、SP1にアップグレードするようになっています。

  Windows Vista の場合は、もともと.NET Framework 2.0 および 3.0 に相当するフレームワークが入っていますが、もちろんこれらも.NET Framework 3.5 をインストールすることで、内部的にSP1 にアップグレードされます。

 

  なお、.NET Framework 3.5 は英語のみをサポートしたコア パッケージ(しかしながらインストールのユーザー インターフェィスはインストールを行なうオペレーティング システムの UI Language の設定に対応した言語で表示されます)が先行してリリースされ、対応する日本語 Language Packは後からリリースされます。

  したがって、お客様が日本語Language Pack がリリースされる前に先行して .NET Framework 3.5 コア パッケージのみをインストールされた場合には、後から対応する日本語 Language Packを別途インストールしていただくことで、メッセージやリソースを日本語化することができます。

  また、日本語 Language Pack のリリース以降に .NET Framework 3.5 をインストールした場合は、コア パッケージと共に同時に 日本語 Language Pack もインストールされます。(※ご利用のOSが日本語OSの場合) したがって後から手動で日本語Language Packをインストールしていただく必要はありません。