CodeZine(コードジン)

特集ページ一覧

ここが違う! Visual Studio 2008

Visual Studio 2008 徹底入門 (2)

  • LINEで送る
  • このエントリーをはてなブックマークに追加

Visual Studioの最新バージョンであるVisual Studio 2008は、2008年2月にパッケージでの提供が始まりました。本稿ではVisual Studio 2008で「便利になったなぁ」と思う点を、以前のバージョンVisual Studio 2005と比較しつつ紹介していきます。

はじめに

 Visual Studioの最新バージョンであるVisual Studio 2008(以下、VS2008)は2008年2月にパッケージでの提供が始まりました。LINQやASP.NET AJAXといった言語の新機能に加え、IDEとしての機能強化、新機能が盛りだくさんで、ワクワクしていらっしゃる方も多いと思います。VS2008の魅力のすべてを紹介したいところなのですが、残念ながら多彩すぎて書ききれません。そこで本稿では、VS2008の注目すべき新機能のご紹介、および機能強化によって便利になった点を以前のバージョンであるVS2005と比較しながら紹介していきます。

対象読者

  • VS 2008に興味がある方

必要な環境と準備

 Visual Studio 2008入門 第1回の「必要な環境と準備」を参考にしてください。

見た目の変化

 VS2008は、VS2005と比較してさまざまな便利機能が追加されています。まずは分かりやすい部分で見た目からいきましょう。

  1. インテリセンスの透明化
  2. 「並べて表示」の追加
  3. ナビゲートウィンドウでのコード表示

 などがあります。それぞれどう変わったか、比較してみます。まずはインテリセンスの透明化です。

図1-1:インテリセンスの比較(VS 2005)
図1-1:インテリセンスの比較(VS 2005)
図1-2:インテリセンスの比較(VS 2008)
図1-2:インテリセンスの比較(VS 2008)

 VS2005ではインテリセンスに邪魔されてコードが見えませんが、VS2008では[Ctrl]キーを押すと、図1のようにインテリセンスが透けてコードが見えます。ちょっとコードを確認したいと思った時に便利です。

 次に「並べて表示」です。

図2-1:デザインとソースコード表示の比較(VS 2005)
図2-1:デザインとソースコード表示の比較(VS 2005)
図2-2:デザインとソースコード表示の比較(VS 2008)
図2-2:デザインとソースコード表示の比較(VS 2008)

 この機能はASP.NETの画面をデザインしているときに利用できます。VS2005ではデザイン画面かソースコード(HTMLのこと)かのどちらかしか表示できませんでしたが、VS2008ではデザイン画面とソースコードを同時に見ることができます。ちょっとHTMLを自分で整形したいときなどに、変更の影響をすぐに確認できて便利です。

 3つ目は、ナビゲートウィンドウでのコード表示です。

図3-1:ナビゲートウィンドウの比較(VS 2005)
図3-1:ナビゲートウィンドウの比較(VS 2005)
図3-2:ナビゲートウィンドウの比較(VS 2008)
図3-2:ナビゲートウィンドウの比較(VS 2008)

 [Ctrl]+[Tab]で表示できるナビゲートウィンドウで、VS2005はファイル名のみが表示されていましたが、VS2008ではファイルの中身が見られるようになっています。開くほどじゃないけど中身をちょっと確認したい、と言ったときに重宝しそうです。

ヘルプメニューの拡充

 Visual Studioは、どのバージョンにも開発時に参照できるサンプルが付属しています。直接フォルダを開いたり、MSDNライブラリなどのようなヘルプを参照したりすることによってサンプルファイルを探し出すことができますが、VS2008では[サンプル]メニューがIDEに統合されました。

図4-1:VS2005のヘルプメニュー
図4-1:VS2005のヘルプメニュー
図4-2:VS2008のヘルプメニュー
図4-2:VS2008のヘルプメニュー

 このようにヘルプメニューからサンプルファイルに簡単にアクセスすることができるようになりました。また、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)。

図5-1:プロジェクト作成画面の比較(VS 2005)
図5-1:プロジェクト作成画面の比較(VS 2005)
図5-2:プロジェクト作成画面の比較(VS 2008)
図5-2:プロジェクト作成画面の比較(VS 2008)

 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サイトが更新されます。

図6:Webサイトの変換
図6:Webサイトの変換

 それ以外のソリューションでは図7のような変換ウィザードが立ち上がり、VS2008で使用できるようにソリューションが変換されます。

図7:Visual Studio変換ウィザード
図7:Visual Studio変換ウィザード

 また変換時のエラー、警告等は図8のような変換レポートとして保存され、いつでも見ることができます。図9ではVS2005で作成した単体テストを含むソリューションをVS2008用に変換していますが、VS2008上でもVS2005の単体テストが正常に動作することが確認できました(図9)。

図8:変換レポート
図8:変換レポート
図9:変換後の単体テストの実施
図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をインポートするなどの工夫が必要になります。

図10:NUnit2.2.10実行画面
図10:NUnit2.2.10実行画面
 

新しい言語仕様のサポート

 VS2008のリリースに合わせて、C#は3.0に、VB.NETは9.0にバージョンアップされました。これにより言語仕様として、型推論(暗黙の型指定)や匿名型、拡張メソッド、クエリ式など多くの新しい概念が盛り込まれています。どれも基本的にはまず.NET Frameworkとして機能をサポートし、それを個別の言語でどのように表現するかという扱いですのでそれぞれの詳細については、.NET Framework 3.5の解説を行う回に譲りたいと思います。VS2008では、これらの機能を簡単に利用できるように主にインテリセンスを機能拡張することで対応しています。

図11-1:C#の型推論サポート
図11-1:C#の型推論サポート
図11-2:VBの型推論サポート
図11-2:VBの型推論サポート

 図11のようにC#のvar、VBの型指定なしと共に型推論を利用している状態でもVS2008のインテリセンスが適切にString型を判断して対応するインテリセンスを表示しています。

図12-1:C#の拡張メソッドサポート
図12-1:C#の拡張メソッドサポート
図12-2:VBの拡張メソッドサポート
図12-2:VBの拡張メソッドサポート

 図12のように拡張メソッドを定義してあれば、C#、VB共にインテリセンスに拡張メソッドがそれと分かるマーク(メソッドマーク+下向き矢印)付きで表示されています。

図13-1:C#の匿名型サポート
図13-1:C#の匿名型サポート
図13-2:VBの匿名型サポート
図13-2:VBの匿名型サポート

 図13のように匿名型を定義している状態でも、プロパティを正しく識別し、インテリセンスを表示しています。

図14-1:C#のクエリ式サポート
図14-1:C#のクエリ式サポート
図14-2:VBのクエリ式サポート
図14-2:VBのクエリ式サポート

 図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の新機能について紹介します。

参考資料

  1. Visual Studio 2008 Professional Edition
  2. MSDNライブラリ
 
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

  • WINGSプロジェクト りばてぃ/FUJIKO/ナオキ(リバティ, フジコ, ナオキ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5