2008-09-16 4 views

Antwort

1

FXCop ist ein guter Anfang für die Codierung Probleme/Fehler, StyleCop gut Stil für die Codierung (natürlich), aber wenn keiner der beiden letztgenannten Arbeit dann Sie, dann können Sie entweder schreiben einen Parser selbst oder die VBCodeProvider Klasse im Einsatz. Net Framework

16

Anstatt Ihren eigenen statischen Code-Analysator zu schreiben, empfehle ich Ihnen, FxCop zu verwenden: und stattdessen benutzerdefinierte FxCop-Regeln für Ihre Bedürfnisse schreiben. Es wird Ihnen viel Zeit sparen. http://www.binarycoder.net/fxcop/

0

Beginnen Sie mit FxCop. Wenn Sie nicht das tun können, was Sie dort versuchen, versuchen Sie etwas wie NStatic oder NDepend.

4

Ich würde vorschlagen, dass Sie Monos Gendarme verwenden. Es ist ein sehr nettes Werkzeug mit vielen eingebauten Regeln. Es erzeugt auch nette HTML-Berichte.

0

Die besten Optionen sind die Verwendung von FxCop oder StyleCop und das Schreiben von benutzerdefinierten Regeln, falls erforderlich.

0

Verwenden Sie FxCop, dies ist kein Projekt, das Sie persönlich übernehmen möchten. Die beteiligten Parsing/lexikalischen Regeln und die möglichen Fänge wären verrückt. Die einzige Art und Weise, wie ich mir vorstellen könnte, es zu tun, während ich ein Minimum an geistiger Gesundheit beibehalte, wäre die Verwendung von Lisp dank der extremen Ausdruckskraft, aber wiederum, am besten, um FxCop zu verwenden.

Wenn Sie aus irgendeinem (dogmatischen?) Grund ein benutzerdefiniertes Inhouse-Tool schreiben müssen, würde ich empfehlen, ein Lisp-Programm zu schreiben, das nur grundlegende Regeln überprüft. Versuchen Sie nicht, es umfassend zu machen, wir reden über die Art von Grenze, mit der KI-Forscher in Bezug auf die Analysefähigkeiten einer Software arbeiten. Verwenden Sie Lisp, um die möglichen offensichtlichen Täter ausfindig zu machen oder einfach nur zu fangen, was auch immer es ist, wenn es darum geht, in Bezug auf nicht-konformen Code zu fangen, und dann einem kurzen Scan des menschlichen Auges zu unterziehen. Ich empfehle dringend, Makros zu missbrauchen, wenn Sie Lisp verwenden, um den Parser zu schreiben.

2

Wenn Sie mehr Architektureinblick benötigen, verwenden Sie NDepend. Dieses Tool hört nicht auf, mich zu überraschen. Es kann so viel mehr als FxCop tun. Es ist zwar kommerziell, aber hat eine kostenlose Testversion

0

Ich stimme mit einem der Plakate, dass es eine ziemlich schwierige Aufgaben wäre, aber anstatt mit Lisp würde ich mit F # starten, genau wie Microsoft für ihre dritte Partei Windows-Treiber-Analyse-Tool:

http://arstechnica.com/journals/microsoft.ars/2005/11/10/1796

F # Aktien Lisp der Ausdruckskraft (ok, fast) und arbeitet auf CLR wie VB.NET, was die ganze Sache einfacher machen würde.