ReSharperは、個別のコーディングヘルパーとは異なり、プロジェクトまたはソリューション全体に適用する際に便利な機能セットを提供しています。
これらの機能には、MSBuildによるプロジェクトのコンパイル方法を最適化するReSharperビルド、プロジェクトや型の依存関係を表示するダイアグラムと、これらの依存関係を実装している特定のコードを検出する手段、ソリューションのプロジェクト内の参照を最適化するリファクタリングなど、豊富な機能が含まれています。
ReSharperビルドは、複数のプロセスを利用できるアウトオブプロセスの増分ビルドツールであり、さまざまなプロジェクトのビルドステータスを可視化します。また、多数の依存関係を持つ大規模なソリューションに最適化されています。
ReSharperビルドは、Visual Studioのビルド管理を、更新が必要なプロジェクトにのみヒューリスティックを適用するシステムと置き換えます。 ただし、MSBuildを置き換えるものではなく、あなたのプロジェクトは引き続き通常通りにビルドされます。
ReSharperでRun configurations(実行構成)を使うと、Visual Studioのコードを 新しい方法で実行することができます。 実行構成には以下の3種類があります:
恒久的な実行構成を作成しなくても、Alt+Enterを押してアクションリストの Debugサブメニューを 使うだけで静的メソッドを実行することもできます。
有効な構成(デフォルトではVisual Studioのスタートアッププロジェクト)を実行またはデバッグするには、Ctrl+F5またはF5を押してください。 実行構成を管理するには、 Ctrl+Shift+Alt+Rを押すか、 メニューからReSharper | Tools | Run Configurationsを選択してください。
ReSharperでは、ソリューションアーキテクチャの視覚的表現を使用して、ソリューション内のプロジェクトの依存関係を調査できます。 いつでもArchitecture View(ReSharper | Architecture | Show Project Dependency Diagram)を 開き、何もコンパイルせずにプロジェクトの 依存関係を 調べることができます。
このビューではリファクタリング(Adjust Namespaces、Remove Unused Referencesなど)、ナビゲーションアクションおよびその他の便利なコマンドを直接実行できます。 また、依存関係のスナップショットを保存してから、それを進行中のソリューションの最新状態と比較できます。
ReSharperでは、ソリューション内で型がどのように相互に依存しているかを視覚的に確認できます。 型依存関係ダイアグラムでは、さまざまなプロジェクトやコンパイル済みアセンブリの型をいくらでも追加して、それらの型同士のさまざまな依存関係を可視化できます。 主なメニューコマンドである ReSharper | Architecture | Show Type Dependency Diagramの他にも、 さまざまな方法で型をダイアグラムに追加できます。例えば、 Find Resultsウィンドウや Hierarchyウィンドウ、ナビゲーション結果のポップアップ表示、 プロジェクト依存関係ダイアグラムからすべての型を追加したり、 他のツールウィンドウから型をドラッグアンドドロップしたりできます。
プロジェクト依存関係ダイアグラムと同様に、多数のナビゲーションアクションを型依存関係ダイアグラムから使用し、ドラッグアンドドロップで動作するMove to Folderリファクタリングも使用できます。
また、ReSharperではコンパイル済みアセンブリの依存関係も調査できます。 任意の数のアセンブリからダイアグラムを作成し、それらのアセンブリがどのように相互に参照しているのかを調査できます。
Assembly Explorerで選択したアセンブリに関するダイアグラムを呼び出し、 参照によってアセンブリ間に確立している関係を調査できます。
ReSharperでは、NuGetパッケージギャラリーで型や名前空間を検索し、検索で一致したパッケージをインストールできます。これらはすべて、Visual Studioから離れずに行えます。 これらすべての操作をNuGet Browserウィンドウ (ReSharper | Windows | NuGet Browser)で実行できます。
エディタから直接検索を開始することもできます。未解決の型や名前空間があればそこでAlt+Enterを押して、nuget.orgで検索して、不足しているNuGetパッケージを特定してインストールできます。
コードリファクタリング機能の中には、プロジェクトの範囲内、ソリューションフォルダ内、またはソリューション全体で適用可能なものもあります。
例えば、Adjust Namespacesリファクタリングを使うと、名前空間を ソリューション全体まで あらゆる範囲のフォルダ構造に同期させることができます。 つまり、あるコードファイルの名前空間が、プロジェクト構造内のファイルの場所に対応していない場合、名前空間はファイルの場所と一致するように名前が変更されます。 修正された名前空間を参照している使用中のディレクティブはすべて、自動的に更新されます。
他のプロジェクトレベルのリファクタリングである Remove Unused Referencesを使うと、プロジェクト内の冗長な参照を検出して 削除し、ソリューションをクリーンアップすることができます。
また、実行時に参照を使用済みとしてマークする方法もあります。これは、依存関係注入フレームワークを使用する場合には重要です。
暗黙的に読み込まれたすべての参照をマークすることで、実行時に必要な参照を壊すことなくOptimize Referencesコマンドや Remove Unused Referencesコマンドを安全に実行することができます。
Find Dependent Codeを使うと、選択したプロジェクトに依存しているコードを発見できます。 Find Referenced Codeは反対の動作をするもので、特定の範囲( メソッドに限定、またはプロジェクトに拡大可能)内で発生する出力方向の参照を すべて発見することができます。
これらの機能による検索結果は共にFind Resultsウィンドウに表示されます。使用箇所が一箇所のみの場合は、該当の場所へキャレットを移動します。
依存している、または参照先のコードを見つけるには、ソリューションエクスプローラーでノードを選択するか、 テキストエディタ内のコンテナにキャレットを合わせて ReSharper | Find | Find Code Dependent on Moduleまたは ReSharper | Find | Find Symbols External to Scopeを選択してください。
このシンプルなウィンドウでは、コンパイル済みアセンブリを開き、ナビゲーションと検索コマンドを使ってあたかもそのソースコードで作業していたかのようにアセンブリを横断して調査できます。 アセンブリのノードを展開すると、アセンブリ内の名前空間がリストで表示されます。そこからさらに型や型メンバー、アセンブリ参照に展開することもできます。
特定のアセンブリに特にご関心がある場合は、アセンブリエクスプローラーを使ってそれをVisual Studioプロジェクトにエクスポートし、そのソースコードを閲覧し、ビルド、実行、デバッグできます。
ReSharperは、ソリューションエクスプローラーでノードの状態を管理する際に、Visual Studioを支援いたします。 ソリューションエクスプローラーでプロジェクトや別の上位階層ノードを折りたたむ際、通常のVisual Studioはその中に含まれるノードを折りたたみません。 その結果、プロジェクトを後から展開した際、構造がバラバラに展開されてしまうことになります。
ReSharperではソリューションエクスプローラーのノードを右クリックして コンテキストメニューからCollapse Allを選択するだけで、 選択したノードがそのすべての子ノードと共に折りたたまれます。
Collapse Allは、ReSharperが備える別の素晴らしい小機能であるLocate in Solution Explorerと組み合わせるのが最適です。 例えば、プロジェクトを折りたたんだ後にLocate in Solution Explorerを 使用して実際に必要なノードを展開することができます。
Shift+Alt+Lで呼び出せるこの便利なナビゲーション機能を使うと、テキストエディタで現在開いている任意のファイルの該当するノードを、ソリューションエクスプローラーでハイライト表示できます。 ReSharperはノードをハイライト表示し、ソリューションエクスプローラーを自動的にスクロールするため、 ハイライトされたノードを実際に確認できます。
これは数十ファイルから数千ファイルを含む大型ソリューションの場合や、ソリューションエクスプローラーのウィンドウを限界まで小さくしなければならないほど画面領域が限られている場合に特に便利です。 また、この機能はソリューションエクスプローラーですべて折りたたむと組み合わせると便利です。
ReSharperの設定は分散保存モデルを使用して保存されています。これはつまり、任意の設定や設定グループを個別に保存し、ReSharperは、実行する際にそれらすべてを組み合わせて適用するできることを意味します。
このモデルには、異なるソリューションに別々の設定を持たせ、楽々と設定を共有し、設定をインポート・エクスポートできるといったメリットがあります。 これは特に、コードスタイル設定、コードテンプレート、構造検索とパターンの置換など、チーム内で均一化すべき設定を共有する場合に特に便利です。
デフォルトでは3種類の設定レイヤー、つまり、ローカルコンピューター内のすべてのソリューション用、現在のソリューション用、共有ソリューションの設定用がございます。 新しいレイヤー、例えば、会社全体のグローバル設定などを簡単に作成、管理、共有できます。
このページに記載されたキーボードショートカットはすべて、ReSharperデフォルトの「Visual Studio」キーマップのものです。 ReSharperの2種類のキーマップの詳細は、ReSharperのドキュメントをご覧ください。