Fonctionnalités au niveau du project

ReSharper fournit un ensemble de fonctionnalités utiles l'échelle du projet ou de toute la solution, contrairement aux assistants au codage individuels.

Ces fonctionnalités comprennent ReSharper Build pour optimiser la manière de compiler vos projets de MSBuild, des diagrammes qui affichent les dépendances entre les projets ou types, ainsi qu'un moyen de trouver le code spécifique qui implémente ces dépendances, des refactorisations pour optimiser les références des projets de votre solution, et bien d'autres fonctionnalités.

ReSharper Build

ReSharper Build

ReSharper Build est un outil de build incrémental hors processus capable de profiter de plusieurs processus, de visualiser différents genres de statut de build de projet, et de gérer de manière optimale les grandes solutions avec de nombreuses dépendances.

ReSharper Build remplace la gestion de build de Visual Studio avec un système qui applique les heuristiques uniquement aux projets de build qui ont besoin d'une mise à jour. Notez qu'il ne remplace pas BSBuild et que vos projets sont toujours construits normalement.

Gestion des configurations d'exécution

Run configurations

ReSharper propose de nouvelles manières d'exécuter le code dans Visual Studio grâce aux Run configurations. Il existe trois types de configurations d'exécution :

  • Project : ce type de configuration vous permet d'exécuter et de déboguer n'importe quel projet exécutable de votre solution. Il est utile pour les grandes solutions dotées de nombreux projets exécutables.
  • Static method : ce type de configuration vous permet d'exécuter et de déboguer n'importe quelle méthode statique publique sans paramètres. Besoin de déboguer un algorithme délicat en isolation ? Créez simplement une méthode statique et configurez-la via une configuration d'exécution.
  • Executable : ce type de configuration vous permet d'exécuter ou de déboguer n'importe quel fichier exécutable. Si vous choisissez la commande de débogage, ReSharper lancera l'exécutable, puis joindra Visual Studio au processus. Une bonne utilisation de ce type de configuration est le développement d'une extension pour un autre programme qui vous demande de créer une configuration d'exécution complexe.

Vous pouvez également exécuter des méthodes statiques sans créer de configuration d'exécution permanente : appuyez simplement sur Alt+Entrée et utilisez le sous-menu Debug dans la liste des actions.

Pour exécuter ou déboguer une configuration active, qui est le projet de démarrage par défaut de Visual Studio, appuyez sur Ctrl+F5 ou F5. Pour gérer les configurations d'exécution, appuyez sur Ctrl+Maj+Alt+R et choisissez ReSharper | Tools | Run Configurations dans le menu.

Visionneuse des dépendances d'un projet

Diagramme des dépendances du projet

Avec ReSharper, vous pouvez explorer les dépendances d'un projet de votre solution grâce à la représentation visuelle de l'architecture de la solution. Vous pouvez à tout moment ouvrir Architecture View (ReSharper | Architecture | Show Project Dependency Diagram) et explorer les dépendances du projet sans rien compiler.

Vous pouvez effectuer des refactorisations (comme Adjust Namespaces ou Remove Unused References) directement depuis la vue, parcourir les actions et utiliser d'autres commandes utiles. De plus, vous pouvez enregistrer un instantané des dépendances, puis le comparer à l'état actuel de votre solution au fur et à mesure de son évolution.

Diagramme des dépendances des types

Diagramme des dépendances de type

ReSharper vous permet d'étudier visuellement comment les types dépendent les uns des autres dans votre solution. Depuis le diagramme des dépendances des types, vous pouvez ajouter n'importe quel nombre de types de différents projets ou compiler des assemblies et visualiser différents types de dépendances entre elles. En plus de la commande du menu principal, ReSharper | Architecture | Show Type Dependency Diagram, vous disposez de plusieurs manières d'ajouter des types au diagramme. Vous pouvez par exemple ajouter tous les types à partir des fenêtres Find Results ou Hierarchy, depuis des fenêtres contextuelles qui affichent les résultats des navigations ou depuis le diagramme des dépendances du projet, voire même faire glisser les types depuis d'autres fenêtres d'outils, et bien plus encore.

À l'instar du diagramme des dépendances des projets, de nombreuses actions de navigation sont disponibles directement depuis le diagramme des dépendances des types, comme la refactorisation Move to Folder qui fonctionne en faisant glisser les éléments.

Diagramme des dépendances des assemblies

Diagramme des dépendances des assemblies

ReSharper vous permet également d'explorer les dépendances entre les assemblies compilés. Vous pouvez créer un diagramme à partir de n'importe quel nombre d'assemblies et découvrir comment ces derniers se référencent les uns et les autres.

Vous pouvez invoquer le diagramme en sélectionnant des assemblies dans l'Assembly Explorer et découvrir les connexions établies entre ces assemblies en vertu de leurs références.

Fenêtre NuGet Browser dans ReSharper

NuGet browser

Avec ReSharper, vous pouvez rechercher des types et des espaces de nom dans la galerie du pack NuGet, puis installer les packs qui correspondent à votre recherche, le tout sans quitter Visual Studio. Vous pouvez tout faire depuis la fenêtre NuGet Browser (ReSharper | Windows | NuGet Browser).

Vous pouvez même démarrer la recherche directement depuis l'éditeur : appuyez sur Alt+Entrée sur n'importe quel type ou espace de nom non résolu, puis sélectionnez Find on nuget.org pour localiser et installer le pack NuGet manquant.

Refactorisation Adjust Namespaces

Adjust Namespaces

Certaines refactorisations de code peuvent être appliquées dans la portée d'un projet, un dossier de la solution ou toute la solution.

Par exemple, la refactorisation Adjust Namespaces vous aide à synchroniser les espaces de nom avec la structure des dossiers de n'importe quelle portée aussi grande que toute votre solution. C'est-à-dire que si, dans un certain fichier de code, un espace de nom ne correspond pas à l'emplacement du fichier dans la structure du projet, il est renommé pour s'accorder à l'emplacement du fichier. Toutes les directives utilisées et liées aux espaces de nom modifiés sont mises à jour en fonction.

Suppression des références inutilisées

Remove Unused References

Une autre refactorisation au niveau des projets, Remove Unused References, vous aide à détecter et supprimer les références redondantes de vos projets pour nettoyer votre solution.

Vous avez également la possibilité de marquer les références comme utilisées dans l'exécution, ce qui est important si vous utilisez des frameworks d'injection de dépendances.

En marquant toutes les références implicitement chargées, vous pouvez exécuter en toute sécurité les commandes Optimize References et Remove Unused References sans casser des références requises lors de l'exécution.

Trouver du code référencé avec ReSharper

Find Referenced/Dependent Code

Find Dependant Code vous permet de trouver du code dans un projet sélectionné. Find Referenced Code fonctionne à l'inverse et vous permet de trouver toute référence sortante rencontrée au sein d'une certaine portée (qui peut être aussi réduite qu'une méthode ou aussi vaste qu'un projet).

Les résultats de recherche des deux fonctionnalités sont affichés dans la fenêtre Find Results. Si une seule utilisation est trouvée, le caret est déplacé à l'endroit correspondant.

Pour trouver du code dépendant ou référencé, sélectionnez un nœud dans le Solution Explorer, ou positionnez le caret sur un conteneur de l'éditeur de text et choisissez ReSharper | Find | Find Code Dependent on Module ou ReSharper | Find | Find Symbols External to Scope.

Explorateur d'assemblies

Explorateur d'assemblies

Cette simple fenêtre vous aide à ouvrir les assembly compilés et à utiliser les commandes de navigation et de recherche pour les parcourir comme si vous travailliez sur le code source. Le développement d'un nœud d'assembly liste les espaces de noms au sein de l'assembly, pouvant être encore plus développé aux types et membres de types, ainsi qu'aux références d'assembly.

Si un certain assembly vous intéresse particulièrement, Assembly Explorer vous aide à l'exporter vers un projet Visual Studio pour que vous puissiez parcourir le code source, le build, l'exécuter et le déboguer.

Collapse All dans Solution Explorer

ReSharper aide Visual Studio au niveau de la gestion des statuts des nœuds dans Solution Explorer. Quand vous réduisez un projet ou un autre nœud de haut niveau dans Solution Explorer, Visual Studio de base ne réduit pas les nœuds qu'il contient. Par conséquent, quand vous développez plus tard le projet, vous découvrez une structure sporadiquement développée.

Avec ReSharper, vous pouvez simplement cliquer droit sur un nœud dans Solution Explorer et sélectionner Collapse All dans le menu contextuel. Le nœud sélectionné sera alors réduit, ainsi que tous ses nœuds enfants.

Collapse All est un parfait complément à une autre petit fonctionnalité de ReSharper : Locate in Solution Explorer. Par exemple, vous pouvez commencer par réduire un projet, puis utiliser Locate in Solution Explorer pour développer seulement les nœuds dont vous avez besoin.

Locate in Solution Explorer

Cette fonctionnalité de navigation pratique, disponible via Maj+Alt+L, vous permet de mettre en valeur dans Solution Explorer le nœud correspondant à n'importe quel fichier actuellement ouvert dans l'éditeur de texte. ReSharper met en valeur le nœud et parcourt automatiquement Solution Explorer, ce qui vous permet de voir le nœud en question.

Cette fonctionnalité est particulièrement pratique quand vous travaillez sur une énorme solution de plusieurs milliers de fichiers, ou sur une zone d'écran limitée qui vous force à réduire au maximum la taille de la fenêtre de Solution Explorer. De plus, la fonctionnalité s'accorde très bien avec Collapse All in Solution Explorer.

Enregistrement des paramètres ReSharper dans diverses couches de paramètres

Stockage distribué des paramètres de ReSharper

Les paramètres de ReSharper sont enregistrés selon un modèle de stockage distribué. Cela signifie que tout paramètre ou groupe de paramètres peut être enregistré séparément et que ReSharper les combinera et les appliquera tous pendant son exécution.

Les avantages de ce modèle sont la possibilité d'avoir différents paramètres pour différentes solutions, le partage facile des paramètres, l'importation et l'exportation des paramètres, etc. Cette fonctionnalité est particulièrement pratique pour partager les paramètres qui devraient être les mêmes au sein d'une équipe : les paramètres de style de code, les modèles de code, les schémas de recherche et remplacement structurel.

Par défaut, vous disposez de trois couches de paramètres : pour toutes les solutions de l'ordinateur local, pour la solution en cours, et pour les paramètres de solution partagés. Vous pouvez facilement créer, gérer et partager de nouvelles couches, comme par exemple une pour les paramètres propres à toute l'entreprise.

Remarque sur les raccourcis

Tous les raccourcis clavier indiqués sur cette page sont disponibles dans la configuration clavier "Visual Studio" par défaut de ReSharper . Pour en savoir plus sur les deux configurations clavier de ReSharper, consultez la Documentation ReSharper.