.NET Framework 3.5の新機能あれこれMicrosoft Tech・Ed 2007 Yokohama Report

.NET Framework 3.5での変更点は、実は細かな部分にまで及んでいる。現在までに明らかになったものを紹介する。

» 2007年08月22日 00時40分 公開
[下村恭(ハンズシステム),ITmedia]

 マイクロソフトの開発者向け夏の恒例イベントであるTech・Edが今年も横浜で開幕した。Windows Server 2008、SQL Server 2008、Visual Studio 2008と、次世代を担う製品のリリースを目前に控えた今年のTech・Edで、ぜひ注目すべきテクノロジーである.NET Framework 3.5をリポートしたい。

 次世代の.NET Frameworkとなる「3.5」は、.NET Framework 2.0から3.0への進化と同じような軌跡をたどっているように見える。.NET Framework 3.0が2.0をベースに、Windows Presentation Foundation(WPF)、Windows Workflow Foundation(WF)、Windows Communication Foundation(WCF)、Windows CardSpaceというクラスライブラリ群を追加する形で出来ているのと同様に、.NET Framework 3.5は3.0をベースにして、ASP.NET AJAXとLINQというテクノロジーを追加する形になっているからだ。

.NET Framework 3.5 .NET Framework 3.5は、.NET Framework 2.0をベースとした.NET Framework 3.0をさらに機能拡張したものと言える(Tech・Ed 2007 Yokohamaのセッション「T3-307 .NET Framework 3.5 概要 マイクロソフト デベロッパー&プラットフォーム統括本部 デベロッパービジネス本部 デベロッパー製品部 シニアプロダクトマネージャ 新村 剛史氏」より)

 ASP.NET AJAXは、その名の通りASP.NET環境で実現するAJAXで、以前より単体でリリースされていたものだ。今回、.NET Framework 3.5ではASP.NET 3.5としてASP.NET体系に組み込まれた形になっている。このASP.NET 3.5ではAJAXだけでなく、ページリンク機能を提供するDataPagerや、編集機能付きリスト表示を行うListView、LINQデータをデータソースとして使用するためのLinqDataSourceといった、新たなコントロールの追加も行われている。

 また、LINQは言語統合クエリと呼ばれるもので、あらゆる種類のデータソースに対して、統一的な問い合わせ(クエリ)を実現する技術だ。今までは主にロジックの記述に用いられていたC#やVisual Basicなどの.NET言語を、データの問い合わせにも使用できるようにし、1つの言語で統一的なプログラミングを可能にする。LINQは.NET Framework 3.5の中でも重要な位置を占めており、一言でその内容を言い表すことができない。今回のTech・EDでもスペシャルセッションの中で取り上げられる予定になっているので、また別途リポートしたい。

 これらASP.NET AJAXとLINQの機能が.NET Framework 3.0に追加されて.NET Framework 3.5を構成しているわけだが、実は.NET Framework 3.5に追加されている機能はこの2つだけではない。これ以外にも.NET Framework 3.0の機能が拡張されている部分がある。それは、WCF、WF、WPFのクラスライブラリ群で機能追加が行われており、これに加えて.NET Framework 2.0からの基本クラスライブラリ(BCL)にも機能追加が行われている。

追加部分 図中、緑色の部分が.NET Framework 3.5へ機能追加された部分となる(Tech・Ed 2007 Yokohamaのセッション「T3-307 .NET Framework 3.5 概要 マイクロソフト デベロッパー&プラットフォーム統括本部 デベロッパービジネス本部 デベロッパー製品部 シニアプロダクトマネージャ 新村 剛史氏」より)

 例えば、XAMLという標準フォーマットを用いたリッチでインタラクティブなユーザーエクスペリエンスを実現するWPFにおいては、ブラウザ上でWPFを実行するXBAP(XML Browser Application)の対応を、IEだけでなくFirefoxにも広げた。また、アニメーションの実行速度の向上なども図られているという。

 また、ワークフロー基盤と統一的なモデルを提供するWFにおいても、WCFとの連携を強化している。統一されたプログラミングモデルを使ってさまざまな接続形態を実現するWCFでは、JSONやRSSなどWeb2.0で用いられるプロトコルに対応した。

 BCLの拡張は、.NET Frameworkのコア部分の拡張の一部として語られたが、BCLそのものの拡張としては、ハイパフォーマンスなHashSetの追加や、今まではローカルとUTCの2つのタイムゾーンしか扱えなかったDataTimeを拡張し、あらゆるタイムゾーンに対応したDateTimeOffsetの追加がある。

 .NET Frameworkのコア部分の機能強化としては、ガベージコレクションの改善や、ネイティブコードを生成するNGenのメモリ使用の効率化やセキュリティチェック機能、スレッドプールのパフォーマンス改善などが語られた。

 これらさまざまな機能が.NET Framework 3.0に対して行われ、.NET Framework 3.5が出来上がっている。とは言え、まったく新しい別のテクノロジーというわけではない。そのベースは.NET Framework 2.0であり3.0である。.NET Framework 3.5の実行環境では、.NET Framework 2.0のプログラムも.NET Framework 3.0のプログラムもそのまま動作する。今までのテクノロジーや習得した技術が無駄になることはない。

 LINQなど言語仕様に追加が行われたテクノロジーもあるが、これらは新たに追加されたクラスライブラリと、コンパイラでの対応となっており、.NET Framework 1.1から.NET Framework 2.0へのバージョンアップ時のように、SideBySideで実行するということは起きない。

 .NET Framework 3.5が出荷されるまでにできることは、安心して.NET Framework 3.0の技術を習得し、アプリケーションを作成していくことだ。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ