使えるフレームワークは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をインポートするなどの工夫が必要になります。