開発者はついにDebugger Canvasを利用できる。これはVisual StudioでCode Bubblesのような文脈依存のコードスニペットが利用できる強力なツールだ。このツールを使うとカンバス上にステップ実行した各メソッドが呼び出し順を示す線と共に表示される。詳細と大きな枠組みの両方からコードを追跡することができる。5月の下旬にこのプロジェクトが発表されて、多大な反響が起こったが、Ultimateエディションでしか使えないことに失望する声もあった。
下がこのツールを使った場合の画面キャプチャだ。
ブレイクポイントに達すると、カンバス上にブレイクポイントを置いたメソッドを含むひとつのバブル(コードのスニペット)が表示される。さらにステップインすると進入したメソッドが表示される。このスニペットはテキストエディタでもあるので、デバッグスタックを確認しながらコードの編集ができる。しかも、ステップアウトして別のコードにステップインしても、呼び出し元のコードのバブルは消えない。
IntelliTraceからDebugger Canvasの呼び出しを選択することができるので、“クリックしたときに実行されているコードを確認する”というようなこともできる。
カンバス上にノートが残せるので、例えば、注意が必要な部分を強調できる。
同じクラスの他のメソッドをカンバス上にロードできる。
カンバスをXPSファイルに保存して、コードの流れを他の開発者と共有できる。
Debugger Canvasは現在、C#とVBで利用できる。将来的には他の言語もサポートする予定だ。F#のような関数型の言語の場合は他の言語よりも便利だろう。関数型言語には(オブジェクト指向言語のように)オブジェクトの属性に依存しないからだ。
VSのユーザが最も失望したのは、このツールがDebugger CanvasがVisual Studio Ultimateエディションしか使えないことだ。ProfessionalやPremiumエディションを使っている開発者は利用できないのだ。
Kael Rowan氏はこの件について説明している。
Debugger Canvasを幅広いユーザに使ってもらいたいと思っているのですが、Somaがブログで説明しているように、Debugger Canvasは依存性ダイアグラムを使ってバブルを表示するために、Visual Studio Ultimateの基盤となる技術を再利用しています。再利用することでこの強力なツールを効果的にVisual Studio 2011に搭載することができたのです。このツールを現在のままProfessionalエディションでも使えるようにはできなさそうですが、このツールが実現するようなユーザエクスペリエンスを直接Visual Studioの一部として実現する方法を知っているなら教えてください。
Visual Studio Ultimateエディションを持っていない場合、現時点でDebugger Canvasを使ってみるにはふたつの方法がある。
1)Visual Studio Ultimate Trialをインストールする。
2)Visual Studio Ultimateが載っているVirtual Machineをインストールする。
Debugger CanvasはMicrosoft Researchとブラウン大学の共同作業の成果で、それぞれのチームが開発したCode CanvasとCode Bubblesを組み合わせたものだ。