新しい言語仕様のサポート
VS2008のリリースに合わせて、C#は3.0に、VB.NETは9.0にバージョンアップされました。これにより言語仕様として、型推論(暗黙の型指定)や匿名型、拡張メソッド、クエリ式など多くの新しい概念が盛り込まれています。どれも基本的にはまず.NET Frameworkとして機能をサポートし、それを個別の言語でどのように表現するかという扱いですのでそれぞれの詳細については、.NET Framework 3.5の解説を行う回に譲りたいと思います。VS2008では、これらの機能を簡単に利用できるように主にインテリセンスを機能拡張することで対応しています。
図11のようにC#のvar、VBの型指定なしと共に型推論を利用している状態でもVS2008のインテリセンスが適切にString型を判断して対応するインテリセンスを表示しています。
図12のように拡張メソッドを定義してあれば、C#、VB共にインテリセンスに拡張メソッドがそれと分かるマーク(メソッドマーク+下向き矢印)付きで表示されています。
図13のように匿名型を定義している状態でも、プロパティを正しく識別し、インテリセンスを表示しています。
図14のようにクエリ式を利用している状態でも型を識別し、インテリセンスが表示されているのが分かります。このように新しい言語仕様によって覚えなければいけない構文もほとんどがインテリセンスでサポートされるため、開発効率を高い状態に保ったままにすることができます。「インテリセンスは見た目が変更されただけではない」というあたり、ご理解いただけたでしょうか。
SQL文(みたいなもの)もコンパイル
図14でクエリ式の絵を表示していますが、順番は異なるもののSQL文に非常に似ていると感じませんでしたか。このSQL文に非常によく似たクエリ式を利用して、さまざまなデータの集合(コレクションオブジェクトやDataSet、RDB内のデータ、XML)に同じようなプログラミングモデルでアクセスできるようにしてしまおう、というのがLINQ(統合言語クエリ)です。LINQを使うことで、言語内にクエリを埋め込むことができるため、VSのインテリセンスの恩恵を受けながらの開発ができ、コンパイル時はクエリの記述ミスを発見することもできます。LINQの説明は.NET Framework 3.5の新機能として次回で扱いますが、この新機能もやはりVS2008のさまざまな機能の恩恵を受けることでそのメリットを享受することができるものです。
まとめ
VS2008についてVS2005との比較による機能強化のポイント、VS2008の新機能を紹介してきましたが、いかがだったでしょうか。VS2005の使い勝手の良さを活かしつつ、かゆいところに手が届く新機能が追加されていることがお分かりいただけたかと思います。少しでもVS2008の機能にワクワクしていただければ幸いです。次回は.NET Framework 3.5の新機能について紹介します。