はじめに
Visual Studioの最新バージョンであるVisual Studio 2008(以下、VS2008)は2008年2月にパッケージでの提供が始まりました。LINQやASP.NET AJAXといった言語の新機能に加え、IDEとしての機能強化、新機能が盛りだくさんで、ワクワクしていらっしゃる方も多いと思います。VS2008の魅力のすべてを紹介したいところなのですが、残念ながら多彩すぎて書ききれません。そこで本稿では、VS2008の注目すべき新機能のご紹介、および機能強化によって便利になった点を以前のバージョンであるVS2005と比較しながら紹介していきます。
対象読者
- VS 2008に興味がある方
必要な環境と準備
Visual Studio 2008入門 第1回の「必要な環境と準備」を参考にしてください。
見た目の変化
VS2008は、VS2005と比較してさまざまな便利機能が追加されています。まずは分かりやすい部分で見た目からいきましょう。
- インテリセンスの透明化
- 「並べて表示」の追加
- ナビゲートウィンドウでのコード表示
などがあります。それぞれどう変わったか、比較してみます。まずはインテリセンスの透明化です。
VS2005ではインテリセンスに邪魔されてコードが見えませんが、VS2008では[Ctrl]キーを押すと、図1のようにインテリセンスが透けてコードが見えます。ちょっとコードを確認したいと思った時に便利です。
次に「並べて表示」です。
この機能はASP.NETの画面をデザインしているときに利用できます。VS2005ではデザイン画面かソースコード(HTMLのこと)かのどちらかしか表示できませんでしたが、VS2008ではデザイン画面とソースコードを同時に見ることができます。ちょっとHTMLを自分で整形したいときなどに、変更の影響をすぐに確認できて便利です。
3つ目は、ナビゲートウィンドウでのコード表示です。
[Ctrl]+[Tab]で表示できるナビゲートウィンドウで、VS2005はファイル名のみが表示されていましたが、VS2008ではファイルの中身が見られるようになっています。開くほどじゃないけど中身をちょっと確認したい、と言ったときに重宝しそうです。
ヘルプメニューの拡充
Visual Studioは、どのバージョンにも開発時に参照できるサンプルが付属しています。直接フォルダを開いたり、MSDNライブラリなどのようなヘルプを参照したりすることによってサンプルファイルを探し出すことができますが、VS2008では[サンプル]メニューがIDEに統合されました。
このようにヘルプメニューからサンプルファイルに簡単にアクセスすることができるようになりました。また、MSDNフォーラムやバグの報告がメニューに追加されたことで、Q&Aやバグ報告のためにブラウザを立ち上げずに、VS2008から直接作業を行えるようになりました。
使えるフレームワークは1つ……じゃない!
VS2005で開発できる.NET Frameworkのバージョンは2.0、VS.NET 2003では1.1でしたので、VS2008で使用できる.NET Frameworkのバージョンは最新の3.5……と思われるでしょう。しかし、VS2008ではマルチターゲッティングと呼ばれる機能があり、.NET Framework 2.0、3.0、3.5での開発が可能です。フレームワークのバージョンはプロジェクトを作成するときに選択します(図5)。
VS2008では、プロジェクト作成画面の右上から.NET Frameworkを選択できます。図5では3.5を選択しているのでWPFのテンプレートが表示されていますが、2.0を選択した場合は2.0で使用可能なテンプレートのみが表示されます。VS2008を使いたいけど、.NET Framework 2.0での開発もまだあるだろうから……と躊躇していた場合にはとてもうれしい機能です。なお、プロジェクト作成時に決定した.NET Frameworkのバージョンは後から変更することもできるようになっています。
VS2005のソリューションを編集する
マルチターゲッティングについては先に述べましたが、ではVS2005で作成されたソリューションをVS 2008で開いて編集するとどうなるのでしょうか。まずWebサイトの場合ですが、図6のようなダイアログが表示され、自動的にWebサイトが更新されます。
それ以外のソリューションでは図7のような変換ウィザードが立ち上がり、VS2008で使用できるようにソリューションが変換されます。
また変換時のエラー、警告等は図8のような変換レポートとして保存され、いつでも見ることができます。図9ではVS2005で作成した単体テストを含むソリューションをVS2008用に変換していますが、VS2008上でもVS2005の単体テストが正常に動作することが確認できました(図9)。
単体テスト機能
さて、先ほど登場した単体テストですが、VS2005では最上位のエディションであるTeam SystemのTeam Edition for Software DevelopersやTeam Edition for Software Testersでのみ提供されていました。VS2008では単体テスト機能をProfessional Editionから利用することができます。単体テストの使い方的な部分はVS2005のときとさほど変更がありませんので、単体テストの詳細については、『システム品質向上のワザ -VSTDの単体テスト機能を極める-』を参照してください。なお、Professional Editionに付属の単体テスト機能だけでは、コードカバレッジデータの取得やテスト結果をTeam Foundation Serverに発行するなどといったことは行うことができません。
またNUnitとの互換性ですが、NUnit 2.2.10を用いれば特に書き換えたりしなくてもNUnitを利用することができます(図10)。図10にあるようにNUnitの側でテストフレームワークを自動で判断して実行してくれます。ただし、最新バージョンである2.4.6を使用したい場合は、テストコードにNUnit.Frameworkをインポートするなどの工夫が必要になります。
新しい言語仕様のサポート
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の新機能について紹介します。