Visual Studio "15" のビジョン:依存関係を取り込みつつ高い生産性を維持

 

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。【元記事】 A Vision For Visual Studio “15”: Take on Dependencies. Stay Productive. 2016/4/1

 

今日、OSS や再利用可能なコンポーネントが活用される機会は、以前よりも増しています。外部の依存関係を組み込むことで高い生産性が得られても、デバッグや依存関係にあるソースコードを検索することに時間を取られ、すぐに相殺されてしまいます。これらのタスクを実行する際には、自身のプロジェクト コードに対して最適化されている Visual Studio 機能 (「定義へ移動」など) を活用するために、ライブラリのリストを作成して再ビルドする必要があります (また、再ビルドされたバージョンにソリューションの参照をすべて変更する必要もあります)。

Visual Studio のデバッグ機能とコード探索機能は、皆様のソリューションで何を構築する場合でもとても便利に利用できます (少なくとも私たちの自己評価では)。しかし、コンパイルしないコードやまったく別のソリューションからコンパイルするコードの場合はどうでしょうか? また、NuGet の依存関係として組み込まれているコードの場合はどうでしょうか? また、依存関係を組み込むよりも前の段階でシナリオを検索する場合、Visual Studio のどのような機能を利用できるでしょうか?

この記事では、OSS や外部の依存関係を組み込む場合に高い生産性を維持するために Visual Studio “15” への実装が検討されている、または実装作業が始められている機能について説明します。下のビデオは、私たちが考えているアイデアをごく簡単にまとめたものです。これを見て、皆様のご意見をお聞かせいただければ幸いです。

それでは、詳しく見ていきましょう。

まず、次の問題を経験をしたことのある方はいらっしゃいますか? 依存関係のソース ファイルをソリューションの外から開いたときに、コードの色づけが不完全だった。デバッグのために OSS の依存関係への呼び出しにブレークポイントを設定したのに、VS がこれを無視して先に進んでしまった。外部呼び出しで F12 キーを押しても、実際の実装ではなく「メタデータ ビュー」が VS に表示された。

clip_image002

実は、これらの問題はすべて解決することができます。依存関係のソース コードをダウンロードしてビルドしたり、依存関係のシンボルの場所を指定したりすることなく、Visual Studio の高機能なコード デバッグ機能や検索機能、探索機能を使用して、これらの問題を解決できます。

ここからはそれらを例を使って簡単に説明していきたいと思います。たとえば、Web から便利なコード スニペットを取得し、それを新規オブジェクト (依存関係が存在しない) に追加する場合です。

 

便利なコードサンプルを Visual Studio から直接検索する

まず、Visual Studio に新たに追加された機能をご紹介します。この機能を使うと、IDE から離れることなく、便利なコード スニペットを直接検索することができます。Bing チームは現在この拡張機能を更新しているところで (「あいまい一致」検索機能を追加)、今までよりもよい検索結果が得られるようにしています。ここでは、XML 文字列を JSON 形式に変換するコード スニペットを検索しています。

clip_image004

 

Visual Studio からすべてのコンパイルを実行する

前のセクションで見つけた便利なスニペットをエディターに貼り付けます。Visual Studio “15” では、最小限のキー入力で自動修正機能を適用してすべてコンパイルできます。また、VS が動作に必要な NuGet パッケージを提案し、インストールまでしてくれます。この機能は Visual Studio “15” Preview で提供されていて、今すぐダウンロードできます。

clip_image006

 

定義へ移動 が使用可能に

この機能は魔法のように便利なものです。メタデータ ビューの表示が不要になり、VS の「カレットの下のシンボルを解決できません」というメッセージが表示されなくなります。また、ソリューションにコードを取り込んだときにいつでもこの機能を使用できます。

clip_image008

 

追加操作なしで効率的にデバッグできる

予想外の問題が発生して外部の依存関係のデバッグが必要になると、作業時間が著しく延びてしまう可能性があります。Visual Studio “15” では追加操作なしでブレークポイントの設定と実行停止が可能であり、デバッグ作業が支援されます。このため、PDB やソース サーバーの情報を Web から検索する必要はありません。また、ローカルにリポジトリのクローンを作成したりリビルドしたりすることも不要で、バグの修正作業に集中できます。

clip_image010

 

依存関係のコードと自作コードを同じように検索できる

コードを簡単に検索できれば、その分生産性も向上します。このため、依存関係にある外部のコード ベースを包括的に検索できると理想的です。たとえば、「すべての参照の検索」機能を改良して、GitHub 上の依存関係にあるソース コードと自作コードの両方から使用パターンを検索できるとしたらどうでしょうか? 以下は、Visual Studio “15” でこの機能を使用しているようすです。

clip_image012

 

ご意見をお聞かせください

ここでご説明した新たな機能が、開発作業に大きく役立つことを願っています。これらの機能は、社外の依存関係のコードを多く組み込む (それぞれのソリューションではコンパイルを実行しない) きわめて複雑なプロジェクトで特に効果を発揮します。皆様からのたくさんのご意見をお待ちしています!

 

clip_image014 Michael C. Fanning (Visual Studio 担当主任 SDE)Michael C. Fanning は、デベロッパー部門のコンパイラ言語 & プラットフォーム チームの開発者兼テクニカル リードを務めています。マイクロソフトには長年勤務しており、主に開発者向けのテクノロジやセキュリティに関する業務に従事しています。
clip_image016 Joe Morris (Visual Studio 担当シニア プログラム マネージャー)Joe Morris はマイクロソフトに 19 年間勤務しており、この 3 年間は特に静的分析や開発者の生産性に関する作業に従事しています。Twitter アカウントはこちら (@_jomorris) です。