設計機能とテスト機能を強化
Visual Studio 2010によってソフトウェア開発がどのように変化していくのか、近藤氏によるデモを交えた説明も行われた。
ソフトウェア開発は、大きく「設計」「開発」「テスト」という流れで進められていくが、この開発工程の中で、Visual Studio 2010は、特に設計機能とテスト機能を大きく強化している。新機能はいろいろあるが、特に有効に使える新機能を下記にまとめた。
設計においての新機能
「UML」モデル図
「UMLモデル図」とは、実際のコードから、コードと連動した拡張性の高いモデル図を作成できる機能で、当初はクラス図、シーケンス図、ユースケース図、コンポーネント図、アクティビティ図の5種類のダイアグラムが標準搭載される。
新たに追加されたレイヤー図
アプリケーションの論理レイヤーをモデリングするための機能が追加され、例えばクラスをマッチングさせてアーキテクチャどおりに設計されているかのバリデーションを容易に行うことができる。例えば、プレゼンテーション層から直接データ層を呼び出すことはプログラム上可能であるが、アーキテクチャ上それを禁止しているような場合には、バリデーションの機能によってエラーとして検出される。さらに、実際のモデル図からタスクやバグ、要件といった作業項目を関連づけて管理することも可能だ。
汎用性の高いモデル図
モデル図の汎用性が高いことも特徴で、特に保守で活用できるツールがいくつか用意されている。アセンブリやクラスの依存関係を可視化する「依存関係グラフ」は、修正した場所の影響がどこに現れるかをひと目で確認できる。次にコーディングのフェーズだが、Visual Studio 2010では開発環境そのものをWPFで作り直している。その結果、表現力や操作性に優れ、使いやすさが向上している。開発環境の強化では、マルチモニタに対応したことが特徴の1つ。しかも、デザインビューをIDEから切り離すことができるため、隣の画面にデザインビューを最大化して表示でき、作業効率を上げられる。
検索性の向上
例えば「Navigate To:」では単語の頭文字の組み合わせ(SearchByOrderName()であれば、“SBON”)だけで検索するなど省略が可能になっている。また「Highlight Reference:」では、すべての変数のインスタンスをハイライト表示でき、キーボードショートカットでカーソルを移動できるため時間を短縮できる。さらに、現在は「C#」のみで有効な機能だが、呼び出しの階層表示が可能になった。これは、呼び出している、あるいは呼び出されているメソッドを確認できるというもので、当該メソッドの関連状態や相関関係から影響範囲を把握できる。
デバックの大きな機能強化
特にポイントなのが「IntelliTrace」。これはデバッグ時の情報を記録し、さかのぼって参照できるというもの。以前の状態を、作業をやり直すことなく参照できるため簡略化が可能だ。例えばデータベースを書き換えるような何回も繰り返すことができない処理の際にも、任意の時点での値をいつでも参照できる。これは他人が参照することもできるので、テスト時などで変化を詳細に追うことが可能となる。ただし、現在のところ使用環境に制限があるので注意したい。
ブレークポイントごとのラベル
ブレークポイントにラベル付けができるようになった。例えばデバッグの粒度や目的などに応じてラベル付けを行い、デバッグの目的に応じて、ラベル単位で無効化や削除することが可能だ。さらに、ウォッチを付箋のように表示できるデータチップも改良され、コメントの記入や、その状態で値が変わるところを比較しながら作業を進めることができる。このほか、デバッグ時でもダンプファイルの出力が可能になっている。
対応環境の拡大
Visual Studio 2010 は .NET Frameworkの複数のバージョン(2.0、3.0、3.5、4)に対応した。従って、.NET Framework 2.0のアプリケーションの保守においても、Visual Studio 2010の強力な機能を活用することができる。WPFアプリケーション開発環境も強化され、DataGridを標準搭載したことでデータを表形式で表現できるようになった。またCalendarやDataPickerも搭載した。Silverlightアプリケーション開発では、従来アドインであったのが標準構成となり、ドラッグ&ドロップでUIデザインできるようになった。Webアプリケーション開発ではASP.NET 4に対応し、チャートコントロールも標準搭載となった。これにより、図や表、グラフなどをデータバインドして表示可能となった。ドラッグ&ドロップによる操作も可能だ。ただし、Ajaxについてはまだ実装が明言されていない。実装に向けて努力中とのことだ。
その他の強化機能
テンプレートを搭載するなどOfficeアプリケーション開発への対応、従来アドインだったWebパーツの開発を標準搭載としたSharePoint 2010アプリケーション開発への対応も行われた。また、マルチコアに対応するためのマネージド.NETのAPIを提供することで、並列プログラミングにも対応している。これにより、スレッドベースで直接管理するのではなく、1つ粒度が上のタスクベースでの柔軟かつ最適化された管理が可能となっている。もちろん、Windows Azureアプリケーション開発も標準で搭載した。