マイクロソフトのアプリケーション実行環境「.NET Framework」は,「サーバーコア」や「MID(モバイル・インターネット・デバイス)」といった軽量なコンピュータを求めるユーザーの声に押される形で,今後は小型化と細分化を強いられるだろう。米国ラスベガスで米国時間2008年3月5日から始まる「Microsoft MIX 08」は,このような動きの先駆けになるはずだ。

 マイクロソフトがWin 32 API(アプリケーション・プログラミング・インターフェース)を置き換える目的で2002年にリリースした.NET Frameworkは,2005年に登場した「.NET Framework 2.0」で一応の完成を見た。.NET Framework 1.0や1.1の頃は不安げに眺めるだけで手を出さなかった日本の開発者も,「安定版」となった.NET Framework 2.0は支持したようだ。.NET Framework 2.0用の開発ツールである「Visual Studio 2005」の売り上げは「かつてない勢いで伸びた」(マイクロソフト デベロッパービジネス本部の市橋暢哉本部長)という。

 マイクロソフトはその後,2006年末に「.NET Framework 3.0」を,2007年末には「.NET Framework 3.5」をリリースしているが,これらはいわば,.NET Framework 2.0の派生バージョンである。.NET Framework 2.0に「Windows Presentation Foundation(WPF)」や「Windows Communication Foundation(WCF)」を追加したのが「3.0」,3.0に「LINQ(.NET対応開発言語を使ってリレーショナル・データベースを操作できる技術)」などを追加したのが「3.5」である。.NET Frameworkのコアである「CLR(Common Language Runtime)」は,.NET Framework 2.0から変わっていない。

 .NET Framework 2.0を核に,開発者にとって便利な機能(ライブラリ)を追加して,.NET Frameworkを肥大化させてきたのが,ここ数年のマイクロソフトの動きであった。

 しかし,肝心のユーザー・ニーズは,「肥大化」とは逆だったのではなかっただろうか。ユーザーが求めていたのは,ハードウエアやソフトウエアを含む全コンピュータ・システムの「軽量化」であり,マイクロソフトの施策とユーザー・ニーズとの間には,大きな隔たりがあるように感じられる。

軽いサーバーOSを求める開発者

 例えば,先日リリースされたばかりの新サーバーOS「Windows Server 2008」で,ユーザーの期待を最も集めていた機能は,Windowsシェル(Windows GUI)を搭載しないWindowsを構成できる「サーバーコア」であった。

 サーバーコアでは,ユーザーにとって不要な機能はWindowsシェルを含めて一切搭載されない。軽量かつ安定したWindowsを構成したいという,ユーザーや開発者の期待に応えているように見える(マイクロソフトによれば,サーバーコアを選択することで,例えば修正プログラム適用にともなう再起動を最大60%削減できるという)。

 しかし,Windows Server 2008を早期から検証してきたあるシステム・インテグレータの開発者は「サーバーコアは使い道が無い」と言い切る。というのも,サーバーコアでは.NET Frameworkが利用できないので,アプリケーション・サーバーとして使い物にならないからだ。

 サーバーコアで利用できるサーバー機能は,ドメイン・コントローラやファイル・サーバー,DNSサーバー,DHCPサーバー,静的なWebサーバーなどに限定されている。.NET Frameworkが搭載されていないので,ASP.NETのWebアプリケーション・サーバーとして利用できないし,そもそもサード・パーティ製アプリケーションの動作もマイクロソフトは推奨していない。軽量なアプリケーション・サーバー用OSを求めるユーザーや開発者のニーズに,マイクロソフトは応えられていないのだ。

サーバーコアに.NET Frameworkを載せるためには?

 マイクロソフト自身も,ユーザー・ニーズとの乖離(かいり)を意識し始めているようだ。米MicrosoftでWindows Server 2008の開発を統括するGeneral ManagerのBill Laing氏は筆者に対して「いずれかの時点でサーバーコアに,.NET Frameworkを追加したい」と語った。これによってサーバーコアは,Windows Server 2008における特殊な構成ではなく,標準的な構成になる可能性も出てきた(関連記事:「サーバーコアへの.NET Frameworkの追加も検討中」,Windows Server 2008開発統括者が明かす)。

 しかし,.NET Frameworkをサーバーコアに搭載する上では課題もある。Bill Laing氏は,現段階で.NET Frameworkをサーバーコアに搭載しない理由を,「.NET Frameworkが他のWindowsコンポーネントとの依存関係が強い,ビッグ・ピースだからだ」と語る。つまり,サーバーコアに.NET Frameworkを搭載するには,ビッグ・ピースをスモール・ピースの集合体に解体する必要がある。

 少なくとも,デスクトップ・アプリケーション用の機能である「Windows Presentation Foundation(WPF)」は,サーバーコアには不要だろう。かといって,WPFそのものを.NET Frameworkから撤廃するのも難しいはずだ。.NET Frameworkを解体する過程で,.NET Frameworkそのものが「フルセット版」と「サーバーコア版」に細分化するのではないだろうか?