特集
Visual Studio 2005がやってきた(前編)

さらに進化した統合開発環境の主要な新機能を総括

山田 祥寛(http://www.wings.msn.to/
2005/12/17

Page1 Page2 Page3

統合開発環境としての新機能

 次に、VS 2005の統合開発環境としての新機能について見ていこう。

 いまさら声を大にするまでもなく、Visual Studioは実によくできた統合開発環境だ。VSの高い生産性とその魅力については、別稿「簡単!Visual Studio .NET入門」や「ASP.NETで学ぶVisual Studio .NETの魅力」などでも十分に語り尽くされているので、興味のある方は併読していただくとよい。

 これら解説記事をご覧いただければ分かるように、VS.NETは困難な開発プロジェクトに取り組む開発者を支えるだけの十分な環境を、われわれに提供してきた。しかし、マイクロソフトはこの成果に満足することなく、ユーザー企業やユーザー・グループ、そしてMVP(Most Valuable Professional)などから、繰り返しフィードバックを吸い上げてきた。その集大成がVS 2005なのだ。VS 2005では大小含め、さまざまな新機能が追加され、従来の使い勝手を継承しながらも、より使いやすく進化している。

■リファクタリング機能

 開発の初期段階でいかに最適な設計をしていたとしても、日々発生する改定要求やバグフィックスなどを重ねているうちに、コードが冗長で見にくくなってしまうことは避けられない。いうまでもなく、冗長で読みにくいコードはバグの潜在的な温床となるもので、また、将来的な改定を難しくするという意味でも好ましいものではない。

 リファクタリングとは、このように冗長になってしまったコードに対して、「コードの保守性/再利用性の維持(向上)」を目的に、「既存機能を変更することなく」構造の再構築を行うことをいう。例えば、アプリケーション中で繰り返し出てくるコードを個別のメソッドやクラスとしてまとめる作業などは、リファクタリングの典型的な例といえる。

 VS 2005では、こうした作業をある程度自動化する「リファクタリング機能」が提供された。以下は、VS 2005で提供される主なリファクタリング機能の項目だ。

機能 概要
名前の変更 クラスやメソッド名の変更
メソッドの抽出 指定されたコード・ブロックを新たなメソッドとして抽出
フィールドのカプセル化 フィールドをプロパティに変換
インターフェイスの抽出 指定されたメソッドからインターフェイスを生成
ローカル変数をパラメータへ昇格 メソッドに含まれるローカル変数をパラメータに変換
パラメータの削除 メソッドの指定されたパラメータを削除
パラメータ順序の再変更 メソッドにおけるパラメータの定義順を変更
VS 2005で提供される主なリファクタリング機能

 リファクタリング機能を利用することで、変数名やクラス名の不整合など、手作業では起こりがちな単純なバグの混入を防ぐことができる。

■コード・スニペット

 オブジェクト指向の考え方からすれば、当然のことながら、同じようなコードを複数の個所で記述することは好ましくない。メソッドなり関数なりとして切り出し、コードの再利用を図ることが、まずは「あるべき」アプローチだ。しかし、実際問題、多くのコードを記述する中では、必ずしも「あるべき」姿だけを追い求めるわけにはいかないことも多いものだ。ライブラリとして切り出すまでもない、しかし、気が付くと同じようなコードを記述してしまっている――そんな“はざま”の領域は確実に存在するのだ。

どう書くんだっけ? を「コード・スニペット」で一発挿入!

 そのようなケースに対して、これまではどのように対処していただろうか。恐らくは、過去のコード資産を引っ張り出し、コピー&ペーストしていたか、あるいは、定石としてよく利用するコードをテキスト・ファイルでまとめていた方もいるかもしれない。はたまた、そもそも最初からあきらめて、毎回同じようなコードを記述していたという方も多いだろう。

 しかし、VS 2005で追加されたコード・スニペット機能を利用すれば、事はシンプルだ。コード・スニペットは、あらかじめ用意された「コードの断片」をエディタ上で挿入するための機能。コード・エディタ上で右クリックし、表示されるコンテキスト・メニューから[スニペットの挿入]を選択すると、スニペットのリストが表示されるので、後は挿入したいスニペットを選択するだけだ。

コード・スニペットの利用
指定した個所にあらかじめ用意されたコードの断片を埋め込むことができる。変更すべきパラメータは強調表示されるので、変更すべき個所も確認しやすい。

 挿入されたスニペットのコードの中で変更すべきパラメータは強調表示されるので、どこを変更するべきかがひと目で分かるのも特徴だ。コード・スニペットには、開発者が自前のコード定義を追加することも可能だ。

■IntelliSense機能の拡張

 VS.NETのコード・エディタにおいて、入力途中のコードを補完するIntelliSense(インテリセンス)機能は、統合開発環境を導入する大きなインセンティブの1つだろう。

 IntelliSense機能を利用することで、長いクラス名をフルに手打ちする必要がなくなるし、クラスに属するメンバ(メソッドやプロパティなど)の名前やパラメータを忘れてしまった場合にも、ヘルプをいちいち参照する必要がなくなる。リストアップされた候補からメンバを選択するだけでよいので、タイプミスを未然に防げるという効果もある。初学者がIntelliSense機能にべったり依存してしまうことの良しあしはさておくとしても、IntelliSense機能が開発生産性を左右する重要な要素であることは間違いない。

単なるスペル訂正ではないオートコレクトと復活したデザイン時の直接実行!

 VS 2005では、このIntelliSense機能が拡張され、(従来は対応していなかった)privateやpublic、overrideといったキーワードに対しても補完機能が働くようになった。また、仮にタイプミスしてしまった場合にも、修正候補が表示されるようになったのもVS 2005での改善点だ。

 以下の画面において、青い波線の右端に赤い四角形の下線が見えるだろうか。この赤い下線をマウス・カーソルでポイントすることで、[エラー修正のオプション]を意味する赤い「!」マークが表示され、そこからさらに修正候補がリスト表示される。単なるスペルミスはもちろん、名前空間名の不足や構文上の不整合まで修正してくれるので、構文をあいまいにしか理解していないような開発者にとっても大きな助けになるに違いない。

IntelliSenseによる修正候補の表示
青い波線の右端にある赤い四角形の下線をマウス・カーソルでポイントすると、[エラー修正のオプション]を意味する赤い「!」マークが表示され、そこからさらに修正候補のリストが表示される。その中から正しいものを選択することで、自動的にコードが修正される。

■データヒント&ビジュアライザ

 データヒントとは、デバッグ実行の停止中に、変数の上にマウス・ポインタを合わせることにより変数の内容を表示確認する機能のことで、前バージョンのVS.NETから導入されていた機能の1つだ。データヒント機能を利用することで、伝統的な(クイック)ウォッチ機能を利用するのに比べ、変数値を確認するのが格段に容易になった。

複雑なオブジェクトもマウスを置くだけで中身が見える! デバッガのデータヒント!

 もっとも、VS.NETでのデータヒント機能は不満な点も多かった。例えば、対象の変数がスカラー値であれば何ら問題はないのだが、オブジェクトのような構造型になると、型名が表示されるだけで肝心のメンバ値は一切表示されないのだ。

 しかし、VS 2005のデータヒント機能では、変数がオブジェクトである場合にも、そのメンバを展開して表示できるようになった。

データヒントによるオブジェクトのメンバ値表示
スカラー値だけではなく、配列やオブジェクトについてもメンバの値を表示できるようになった。

 また、VS 2005ではビジュアライザを利用することで、変数の内容を単なるテキストとしてだけではなく、HTML形式やXML形式で整形し、別ダイアログで表示することも可能である。

ビジュアライザ
標準でテキスト、XML、HTMLを表示するためのビジュアライザが用意されている。ビジュアライザを利用することで、文字列を内容に応じた形式で手軽に確認できる。
 

 INDEX
  [特集]Visual Studio 2005がやってきた(前編)
  さらに進化した統合開発環境の主要な新機能を総括
    1.VS 2005で作成可能なアプリケーションの種類
  2.統合開発環境としての新機能(1)
    3.統合開発環境としての新機能(2)
   
  [特集]Visual Studio 2005がやってきた(中編)
  VS 2005で新しくなったVisual BasicとC#の新機能を総括
    1.VS 2005で使用可能な言語/部分クラス/ジェネリック
    2.Nullable型/プロパティのアクセシビリティ/My機能/Usingステートメント/既定インスタンス
    3.反復子(イテレータ)/匿名メソッド/静的クラス
   
  [特集]Visual Studio 2005がやってきた(後編)
  VS 2005で変革されたASP.NET、Windowsフォーム、ADO.NETを総覧
    1. .NET Framework 2.0の新機能
    2. ASP.NET 2.0の新機能
    3. Windowsフォーム 2.0の新機能&ADO.NET 2.0の新機能
 


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間