Visual Studio 2017 で .NET の生産性を最大限に向上

本記事は、マイクロソフト本社の The Visual Studio Blog の記事を抄訳したものです。【元記事】 Optimize your productivity with .NET in Visual Studio 2017 2017/3/8

 

Visual Studio 2017 では、生産性の向上を目的として、コードにすばやくアクセスするための機能とコードを迅速に作成するための機能の強化が進められました。パフォーマンス、ナビゲーション、デバッグ機能が改良されたほか、新しいリファクタリング機能、コード スタイルの構成や適用、ライブ ユニット テストが追加されるなど、今回のリリースには高度な機能が満載です。この記事では、これらの機能の活用方法についてご紹介します。

利用の開始

Visual Studio 2017 では、Visual Studio をインストールして起動し、ソリューションのコード作成を開始するまでの所要時間が大幅に短縮されました。新しい Visual Studio インストーラーにより、必要な機能のみを自由に選択してインストールすることができます。

Visual Studio のインストールが完了すると、Visual Studio の起動時間やソリューションの読み込み時間が大幅に短縮されたことを実感できます。

  • Visual Studio の起動時間の短縮については、過去のブログ記事をご覧ください。この記事では、新旧バージョンを隣り合わせで比較した動画をご紹介しています。
  • [Lightweight Solution Load] を有効化すると、プロジェクトの遅延読み込みを行うことができます。この機能は、ソリューションには数百ものプロジェクトが含まれるものの、作業に使用するプロジェクトはそのうちのごく少数であるような場合に特に便利です。[Lightweight Solution Load] を有効化する場合は、[Tools]、[Options]、[Projects and Solutions]、[Lightweight solution load for all solutions] の順に選択します。: [Lightweight Solution Load] は F# プロジェクトでは機能しません。

コードベースのナビゲーション

Visual Studio 2017 では、コード内の別の場所に少ない操作で移動できるように、ナビゲーション エクスペリエンスが更新されました。

  • Go To Implementation (Ctrl + F12) – 任意の基本型やメンバーから各種実装に移動できます。
  • Go To All (Ctrl + T または Ctrl + ,) – 任意のファイル、型、メンバー、シンボルの宣言に直接移動できます。この機能の上部に表示されるアイコンを使用すると、結果の一覧を絞り込んだり、クエリ構文 (ファイルの場合は “f searchTerm”、型の場合は “t searchTerm” など) を使用したりできます。
  • Find All References (Shift + F12) – 構文の色分けにより、[Find All References] の結果をプロジェクト、定義、パスの組み合わせによってカスタム グループに分類できます。また、結果を「ロック」して、元の結果を保持したまま他の参照を検索することもできます。
  • インデント ガイド – コード内の目印として、灰色の破線が縦方向に表示され、ビュー フレーム内のコンテキストを示します。この機能は、人気の高い Productivity Power Tools でも使用されているものです。

gotoall

コードの作成

今回のリリースでは、一般的なタスクを自動化し、ワークフローを迅速化するために、細かい調整やさまざまな機能の追加が行われました。

  • IntelliSense – トレイのアイコンをクリックすると、入力候補一覧をカテゴリで絞り込むことができます。また、アイコンをマウスでポイントすると、キーボード ショートカットが表示されます。この機能は、複雑な API を学習しているときや WPF を使用しているときに特定のプロパティやイベントなどを検索する場合に便利です。
  • リファクタリング – 「Ctrl + .」を使用すると、Visual Studio に追加されたすべてのリファクタリング機能 (英語) やクイック アクションにアクセスできます。主な機能は以下のとおりです。
    • 型を同名のファイルに移動する
    • ファイル名と型名を同期する
    • 欠落している switch/Select case を追加する
    • メソッドを同期させる
    • メソッドをプロパティに、プロパティをメソッドに変換する
    • 補間文字列に変換する
    • その他多数
  • 参照アセンブリや NuGet パッケージの型の using/Imports を追加 – 認識されない型が入力された場合、参照アセンブリや NuGet.org を検索して、using/Imports を追加するように簡単な修正を提案します。この機能は既定では無効になっています。有効化するには、[Tools]、[Options]、[Text Editor]、[C#] または [Basic]、[Advanced] の順に進み、[Suggest usings for types in reference assemblies] および [Suggest usings for types in NuGet packages] を選択します。後者のオプションを選択すると 10 MB ほどの NuGet インデックスがマシンにダウンロードされます。ダウンロードに数秒程度かかるため、Visual Studio のワークフローには影響しませんが、この機能を有効化しても即座に使用できるようにはなりません。
  • コード補完 – 開発者にベスト プラクティスのヒントを示します。コード補完はエディターに灰色の点として表示され、「Ctrl + .」を押すと適用されます。

intellisensefiltering

一貫性と読みやすさの向上

Visual Studio 2017 では、EditorConfig (英語) を使用して、チームでコーディング規則を構成して適用し、リポジトリ全体の一貫性を向上させることができます。EditorConfig はオープンなファイル形式で、コミュニティとの協力の下、この形式で .NET のコード スタイルがサポートされました。チームは独自の規則を構成し、エディターで適用される方法 (候補、警告、エラーなど) を指定できます。このルールは、EditorConfig ファイルが含まれるディレクトリ内のすべてのファイルに適用されます。プロジェクトごとに異なる規則を適用する場合、各プロジェクトのディレクトリが異なれば、それぞれのプロジェクトのルールを個別の EditorConfig ファイルで定義できます。EditorConfig は単純なテキスト ファイルなので、ソース管理に簡単にチェックインして運用し、ソースと共に移動させることができます。

EditorConfig ファイルを使用しない場合や、チームで明確に設定されていないルールを構成する場合は、[Tools]、[Options]、[Text Editor]、[C#] または [Basic]、[Code Style] の順に選択し、マシンのローカル設定として構成することができます。

Visual Studio で EditorConfig ファイルを編集するときに言語サービスのサポートを利用する場合は、Mads Kristensen の拡張機能 (英語) をダウンロードしてください。Visual Studio 2017 でのコーディング規則のサポートの詳細については、こちらのドキュメント (英語) または .NET ブログの記事 (英語) を参照してください。

コードのテスト

ライブ ユニット テストは、ユニット テストにおけるコード変更の影響をほぼ瞬時に表示する機能で、エディターとテスト エクスプローラーを切り替えて手動でテストを実行する必要がなくなります。各コード行には結果がアイコンで示されます。すべてのテストに合格した場合は緑色のチェック マーク、1 つ以上のテストに失敗した場合は赤色のバツ印、適用されるテストがなかった場合は青色の横線が表示されます。ソリューションでライブ ユニット テストを有効化する場合は、[Test]、[Live Unit Testing]、[Start] の順に選択します。注: ライブ ユニット テストは Enterprise SKU でのみ使用可能です。

大規模なソリューションの場合は、「ライブ」で実行するテストの種類を選択できます。ソリューション エクスプローラーでプロジェクトを右クリックすると、そのプロジェクトをライブ ユニット テストの対象に追加または除外できます。また、テスト ファイル内では、テストのグループを強調表示して右クリックし、それらのテストを追加または除外できます。ライブ ユニット テストのその他の設定は、[Tools]、[Options]、[Live Unit Testing] の順に選択して行います。

ライブ ユニット テストの詳細と、この機能を活用して時間や労力を節約する方法については、こちらのブログ記事を参照してください。

lut

デバッグ

Visual Studio 2017 では、問題の原因を迅速に特定できるように、デバッグ エクスペリエンスが強化されています。

  • 新しい例外ヘルパー (英語): 内部例外の詳細や null を返す式など、例外に関する特に重要な情報がすぐに確認できる場所に表示されます。また、サードパーティのライブラリからスローされた例外など、特定の種類の例外をデバッグ中に無視するように設定できます。
  • Run To Click (英語): 指定したコード行までプログラムをデバッグ モードで実行してから中断します。この機能を使用すると、一時的なブレークポイントを設定する手間が省けます。
  • XAML のエディット コンティニュ (英語): アプリの実行中に XAML を変更できるため、UI を継続的に調整できます。: この機能は、Visual Studio 2015 Update 2 で初めて追加されました。
  • プロセスへの再アタッチ (英語): 以前にデバッグした場所にすばやく再アタッチできます。これにより、一度手動でアタッチした後、[Attach to Process] ダイアログで同じアプリケーションをデバッグする必要がなくなります。この機能を使用するには、[Debug]、[Reattach to process…] の順に選択するか、「Shift + Alt + P」を押します。

exceptionhelper

C# 7.0 や VB 15 によるコードの進化

Visual Studio 2017 のリリースと同時に、C# 7.0 (英語) VB 15 (英語) の最終バージョンもリリースされました。今回リリースされたこれらの言語の新機能は、データの取り扱いや密度の高いコードの作成に役立ちます。

これらの新機能を日常的な開発作業で使用する場合、以下の点にご注意ください。

  • C# や Visual Basic でタプルを使用する場合は、ValueTuple (英語) パッケージをインストールする必要があります。「コードの作成」のセクションで説明した NuGet パッケージの using/Imports を追加する設定を有効化している場合、「Ctrl + .」を押すとワンクリックでこのパッケージを追加できます。
  • 以下のように、新しい言語機能を活用するためのクイック アクションが多数追加されました。
    • throw 式 (C# 7.0) と null 合体演算子 (??) を使用して null チェックを簡素化する
    • 明示的に提供されたタプル名 (C# 7.0) を使用する
    • パターン マッチング (C# 7.0) を使用して null チェックを簡素化する
    • string.Format や連結文字列を補間文字列 (C# 6.0) に変換する
    • メソッド/コンストラクター/インデクサー/プロパティ/演算子/アクセサーで式を本体とするメンバーを使用する (C# 6.0/7.0)

新しい GitHub リポジトリの C# と Visual Basic の言語設計である CSharpLang (英語) および VBLang (英語) に従う必要がある点にも留意してください。

vbtupleexplicittype

ホットキーの学習

Visual Studio の生産性を向上させるために、こちらのドキュメント (英語) に記載されている一般的なショートカット キーを習得することをお勧めします。他の IDE から Visual Studio に移行した場合は、Justin Clareburt による Hot Keys 2017 拡張機能 (英語) を使用すると、Visual Studio の既定のショートカットを使い慣れたものに割り当て直すことができます。

Visual Studio 2017 のダウンロード

パフォーマンス、ナビゲーション、デバッグ、リファクタリング、コード スタイルの構成や適用、ライブ ユニット テストの機能強化により、無駄な時間を大幅に切り詰めることができます。ぜひ Visual Studio 2017 をダウンロードして今回追加された生産性機能を活用し、時間や労力の節約にお役立てください。

不足しているリファクタリング機能やクイック アクションがありましたら、GitHub でイシューを作成してお知らせください (英語)

image Kasey Uhlenhuth (.NET および Visual Studio 担当プログラム マネージャー)@kuhlenhuth github.com/kuhlenh (英語) Kasey Uhlenhuth はマイクロソフトの .NET マネージ言語チームのプログラム マネージャーとして、現在は C# と VB の開発者エクスペリエンスの刷新に取り組んでいます。以前は、C# Interactive および Node.js Tools for Visual Studio を担当していました。