2010-04-02 6 views
2

Je travaille dans une bibliothèque de classes et il existe d'autres projets source associés à la même solution. Y a-t-il un moyen pour moi d'empêcher les outils de refactoring VS de traverser ces autres projets, sans les supprimer de la solution, tout en gardant le même résultat?Puis-je arrêter Visual Studio de refactoring en dehors du projet en cours?

La raison pour laquelle je demande est parce que je sais souvent que le symbole changé n'existe pas dans les autres projets et le refactoring prend beaucoup de temps à regarder tous les projets dans la solution. Surtout s'il y a un projet de site Web lourd dans la solution.

Répondre

0

(a manqué d'espace dans un commentaire, donc j'écris une réponse complète à la place ...)

@ Dan: Je pense que la nécessité sous-jacente est assez fréquent: nous voulons refactoring (et tout autre ordinateur opération) pour apparaître instantanément *. Chaque fois que nous constatons un retard notable, nous souhaitons que les choses soient plus rapides et nous commençons à chercher des moyens d'y arriver. L'une des raisons pour lesquelles les refactorings intégrés pour C# peuvent être lents est que nous avons délibérément choisi l'exactitude plutôt que la performance. Nous savions que certains de nos utilisateurs seraient lourdement touchés par le TDD, et ils seraient capables de détecter et de récupérer une erreur dans un refactoring automatisé, mais beaucoup d'utilisateurs seraient à la merci de notre implémentation. Nous avons pensé que si vous saviez que nous pourrions avoir un problème de refactoring, vous deviendrez suspicieux et cesserez d'utiliser l'outil. Nous prenons donc le temps de faire une validation détaillée du refactoring. (Il y a d'autres raisons, et il est possible de faire un refactoring rapide et fiable, mais l'expédition est aussi une fonctionnalité.)

Dans ce cas, @jdk veut dire à Visual Studio "hey, ne vous inquiétez pas pour ces autres projets, je vais accepter le risque de manquer quelque chose d'important ". Je n'ai pas vraiment de moyen de le faire, j'en ai peur.

Vous n'avez pas indiqué quelle version de Visual Studio vous utilisez. Je suis à peu près certain que l'équipe a continué à améliorer les performances des outils, alors vous pouvez consulter le VS 2010 RC (http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx) et voir si les choses vont mieux.

Certains outils de refactoring tiers sont plus rapides. Je n'ai pas regardé de près, mais je suis sûr que certains adoptent une approche simple pour la performance, et font des erreurs dans certains cas, alors que d'autres sont plus fiables. Choisir soigneusement.

* Chaque fois que quelqu'un me demandait "est-ce assez rapide?" J'ai demandé en retour "un utilisateur remarquerait-il un retard?" Si oui, ils voudraient plus vite. Tout retard est décevant, tout comme une fonctionnalité manquante ou un bug. Notre travail consiste à décider quand c'est le bon moment pour faire plus de changements et quand expédier.

0

N'utilisant pas l'outil de refactoring par défaut, non. Vous devrez créer une nouvelle solution qui ne contiendra qu'un seul projet (ce que vous pouvez faire en ouvrant directement le fichier proj), exécuter le renommer dans ce contexte, puis revenir à votre solution multi-projets originale.

+0

J'avais "peur" de cela. J'espérais une solution plus gérable. Par exemple, il serait bien que VS ait des «ensembles de refactoring». Le programmeur ajouterait plusieurs projets de choix à un ensemble, et pourrait choisir un ensemble pour toute tâche de refactoring initiée. –

+0

Je pense que c'est un besoin assez inhabituel. Généralement, les gens sont intéressés à essayer d'obtenir toutes les références, sans essayer de * laisser * les références brisées. Même Resharper, qui a probablement les meilleures fonctions de refactoring de n'importe quel outil de développement .NET, ne supporte pas ce genre de "refactoriel partiel". –

+0

Incidemment, puisque votre plainte principale était la vitesse, vous devriez essayer Resharper. Si vous activez l'analyse syntaxique complète, elle crée un index de symboles à l'échelle de la solution très complet qui lui permet de refactoriser très rapidement, sans avoir à utiliser la recherche complète utilisée par la commande VS Refactor.Inconvénient est que c'est un plugin commercial assez cher. –

Questions connexes