米Microsoft社が次世代の実行環境として2000年7月に公開した.NET Framework。その.NET Frameworkの次世代版は名称を「WinFX」と改め,Win32に置き換わるメインのAPIへと位置づけを大きく変える。2003年10月27日(米国時間),米ロスアンジェルスで開催中のWindows開発者向け会議「Professional Developers Conference 2003(PDC 2003)」初日の基調講演でMicrosoft Platforms Group Group Vice PresidentのJim Allchin氏が明らかにした。

 WinFxはLonghornのメインAPIになる。これまでの.NET Frameworkに,(1)画面描画機構「Avalon(開発コード名)」,(2)データベースを使ったファイル・システム「WinFS(同)」,(3)そしてWebサービス用の非同期通信機能「Indigo(同)」を新機能として追加する。

 (1)のAvalonの大きな変更点は,ビットマップ・データの描画からベクター・ベースにしたことだ。半透明のウインドウの重ね合わせ処理や,拡大・縮小が容易になる。この意味でAvalonはMac OS Xの画面描画機構「Quartz」と同様のものといえる。またAvalonの開発言語がXAML(eXtensible Application Markup Language:ザムルと読む)と呼ぶマークアップ言語であるという点も注目したい。Avalonでは,ウインドウやボタンの生成をXAMLの独自タグで記述する。この機構を使って,プログラム・コードと画面の体裁を記述するコードを分けた。ASP .NETと同じ形態だ。「ユーザー・インタフェースのデザイナとプログラム開発者の作業を切り分けられ,効率が上がる」(Allchin氏)。

 (2)のデータベースを利用したファイル・システムWinFSは,開発者が独自のテーブル構造を定義してデータを格納,検索できる。まったくの新機能のAvalonと違い,次期SQL Server「Yukon(開発コード)」を基盤とするため「Win32 APIからも操作できる」(Allchin氏)。WinFSはAllchin氏自らがコーディングするデモを披露したが,先のデモで作成したAvalonのサンプル・アプリケーションに検索機能を追加するというやや地味なものだった。

 .NET構想の推進という観点から見れば,最も重要な新技術は(3)のIndigoだろう。現行の.NET FrameworkではWebサービス同士が通信に使う手段が「.NET Remoting」や「MSMQ(Microsoft Message Queuing)」など複数ある。Indigoはそれらを統一し,.NET Frameworkが抱えている非同期通信のプログラミングの煩雑さを解消するのが目的だ。具体的には,米IBM社やMicrosoftなどが策定した「WS-ReliableMessaging」や「WS-Addressing」といったWebサービス標準を実装する。Longhornでの実装を予定するAvalonとWinFSとは異なり,IndigoのみWindows XP/Server 2003向けの拡張版.NET Frameworkとして提供する。Longhornおよび次期サーバーOSの登場までの間に,.NET構想を推進するうえで欠かせないからだ。

 結果として開発者は,Longhorn向けのアプリケーションを記述する場合に,Win32と.NET Framework,およびWinFXの三つのAPIから選択しなければならない。Allchin氏は,Win32および.NET FrameworkのAPIを使った既存のアプリケーションはLonghornで動作することを保証した。WinFXはカバー範囲が.NET Frameworkよりも広く,WinFXでなければ実現できないものもある。一方Win32で事足りるアプリケーションであってもWinFXを使えば,「新しいAPIではアプリケーションのインストール時に再起動する必要を取り除く努力をしている」(Allchin氏)。

(高橋 秀和=日経バイト)