2010-10-31 20 views
1

J'ai reçu une solution .Net C# héritée avec de nombreux projets de bibliothèque de classes pour examiner, redéfinir et réutiliser. Cette solution n'est utilisée nulle part et se trouve dans le junkyard de code. La solution compile correctement cependant.Comment marquer et supprimer le code indésirable (méthodes, propriétés) d'un projet .net (C#)

Il existe 4 méthodes principales, nécessaires à partir de la bibliothèque de classes principale. Je veux juste conserver toutes les classes, méthodes, propriétés suivantes utilisées par ces 4 méthodes de tous les autres projets dans la solution et enlever tous les autres codes qui sont pour moi indésirables. Actuellement, je vais par le traçage manuel à partir de ces 4 méthodes principales dans la fonction "Call Hierarchy" de Visual Studio 2010.

Existe-t-il un processus automatisé pour identifier rapidement les codes liés à mes méthodes principales et les extraire vers une solution flambant neuve (qui, je l'espère, se construit avec succès) afin que je puisse voir le code nécessaire par mes quatre méthodes principales.

Merci.

Répondre

0

Je trouve que ReSharper est très utile pour détecter du code inaccessible ou inutilisé, donc je vais certainement essayer. Vous pouvez télécharger une version démo à partir du http://www.jetbrains.com/resharper/.

Il peut ne pas tout faire pour vous, et trouver du code inutilisé sur plusieurs classes (en d'autres termes, des méthodes publiques qui ne sont pas appelées) n'est pas si facile, mais c'est un bon début. En lien avec cela, je vous conseille également d'avoir un bon ensemble de tests unitaires en place avant d'entreprendre tout refactoring, de sorte que vous pouvez facilement repérer si/quand vous cassez les fonctionnalités.

+0

Actuellement, aucun code n'est inaccessible ou n'est utilisé. C'est juste pour que je souhaite extraire tout le code pertinent juste pour mes quatre principales méthodes comme décrit ci-dessus. –

+0

Vous l'avez décrit comme "indésirable", des excuses pour avoir mal interprété. Au fur et à mesure que vous supprimez du code, vous constaterez que d'autres codes peuvent devenir inaccessibles et peuvent également être supprimés. Et à tous ceux qui ont été dépréciés, merci pour cela. C'était une réponse parfaitement raisonnable, donc je ne vois pas pourquoi je reçois un -1. –

+0

J'ai enlevé le courrier indésirable du titre. Selon votre compréhension, votre réponse était agréable. Je ne dégraderais pas votre réponse pour cela. –

3

Les outils statiques sont utiles - essayez NDepend - mais les appels dynamiques signifient que n'importe quelle partie de votre base de code peut être accessible par ces méthodes. Essayez d'exécuter un outil de couverture de code tel que NCover avec une suite complète de tests unitaires, et peut-être aussi des tests manuels, puis analysez la sortie de l'outil.