2008-08-25 14 views

Antwort

13

Verwenden Sie das Attribut [SuppressMessage] großzügig, um damit zu beginnen. Zumindest am Anfang. Sobald Sie die Anzahl über das Attribut auf 0 gesetzt haben, legen Sie eine Regel fest, nach der neue Checkins keine FxCop-Verstöße einführen dürfen.

Visual Studio 2008 verfügt über eine nützliche Codeanalysefunktion, mit der Sie sicherstellen können, dass die Codeanalyse bei jedem Build ausgeführt wird und Sie Warnungen als Fehler behandeln können. Das könnte die Dinge ein wenig verlangsamen, daher empfehle ich, einen Continuous Integration Server (wie CruiseControl.NET) einzurichten und bei jedem Check-in eine Code-Analyse durchzuführen.

Sobald Sie es unter Kontrolle bekommen und keine neuen Verstöße bei jedem Check-in einführen, beginnen Sie ganze Klassen von FxCop-Verstößen gleichzeitig anzugehen, mit dem Ziel, die von Ihnen verwendeten SuppressMessageAttributes zu entfernen.

Um zu verfolgen, welche Sie wirklich behalten möchten, fügen Sie den zu unterdrückenden Elementen immer einen Korrekturwert hinzu.

3

Schreiben Sie Ihren Code im Vorübergehen neu!

Im Ernst, eine alte Codebasis wird Hunderte von Fehlern haben - aber deshalb haben wir Anfänger/Praktikanten Programmierer. Das Korrigieren von FxCop-Verstößen ist eine gute Möglichkeit, einen Überblick über die Codebasis zu erhalten und auch zu lernen, wie man konformen .NET-Code schreibt.

Also nur in den sauren Apfel beißen, viel Koffein trinken und es in ein paar Tagen schaffen!

0

NDepend looks like es könnte tun, was Sie wollen, aber ich bin mir nicht sicher, ob es in eine automatisierte CruiseControl.Net-Build integriert werden kann, und den Build fehlschlagen, wenn der Code die Anforderungen nicht erfüllt (was ist was ich gerne würde).

Irgendwelche anderen Ideen?

-1

Eine Alternative zu FxCop wäre das Tool NDepend. Dieses Tool ermöglicht das Schreiben von Code-Regeln über C# LINQ-Abfragen (was wir CQLinq nennen). Haftungsausschluss: ich bin einer der Entwickler dieses Tools

Mehr als 200 code rules werden standardmäßig vorgeschlagen. Das Anpassen vorhandener Regeln oder das Erstellen eigener Regeln ist dank der bekannten C# LINQ-Syntax problemlos möglich.

Um die Anzahl der falsch-positive gering zu halten, bietet CQLinq die einzigartigen Fähigkeiten zu definieren, was die Menge JustMyCode durch spezielle Code-Abfragen ist mit notmycode vorangestellt. Weitere Erläuterungen zu dieser Funktion finden Sie unter here.Hier sind zum Beispiel zwei notmycode Standardabfragen:

Damit die Zahl der falsch-positive niedrig, mit CQLinq können Sie auch Regeln konzentrieren führen nur auf Code hinzugefügt oder Code refaktoriert, da ein defined baseline in the past. Siehe die folgende Regel, dass Methoden erkennen zu komplex hinzugefügt oder überarbeitet, da die Basislinie:

warnif count > 0 
from m in Methods 
where m.CyclomaticComplexity > 20 && 
     m.WasAdded() || m.CodeWasChanged() 
select new { m, m.CyclomaticComplexity } 

schließlich feststellen, dass mit NDepend Coderegeln live in Visual Studio und Bauprozess Zeit überprüft werden können, in einem generated HTML+javascript report.