Stylecop ist ein Tool zur Stilanalyse, das auf Quellcodeebene arbeitet. Es besteht hauptsächlich darin, einen einzigen gemeinsamen Stil bereitzustellen, mit dem verwaltete Projekte in der größeren Welt der verwalteten Software konsistent bleiben können. Es trifft Entscheidungen in Bezug auf den Stil in erster Linie, um heilige Kriege zu vermeiden (schließlich ist Stil fast immer eine inhärent subjektive Sache). Ich glaube nicht , dass ich jemals jemanden, der alle StyleCop Regeln gemocht getroffen habe, aber das ist ok . Dies bedeutet, dass StyleCop ein allgemein guter Kompromiss zwischen den zahlreichen vorhandenen Stilrichtlinien ist. (Wenn die Regeln von stylecop in hohem Maße anpassbar wären und nicht nur aktiviert / deaktiviert würden, würde dies den gesamten Zweck des Tools zunichte machen.)
FxCop hingegen ist ein statisches Analysetool, das auf der Ebene der verwalteten Assembly arbeitet. Es kann Anweisungen über Attribute erhalten, da es Attribute auf Codeelementen sehen kann, z. Es erkennt Probleme, die auf der "binären" Ebene (sozusagen) im Gegensatz zur syntaktischen Ebene auftreten.
Um Ihre Frage zu beantworten, ersetzt StyleCop FxCop nicht und FxCop ersetzt Stylecop nicht. Es handelt sich um zwei verschiedene Tools mit zwei unterschiedlichen Zwecken, die beide einen echten Vorteil für Ihren Code bieten können.
(AKA, ich laufe mit beiden. :))
Ein paar Beispiele für Dinge, die man erkennen könnte, im Vergleich zu Dingen, die der andere erkennen könnte:
StyleCop-Verstöße können Warnungen enthalten, die sich auf Folgendes beziehen: Leerzeichen, Formatierung, Dokumentation öffentlicher Methoden über XML-Kommentare, Reihenfolge der Methodendefinition innerhalb einer Klasse.
Zu den Verstößen gegen FxCop können Warnungen gehören, die sich auf Folgendes beziehen: Globalisierung, enge Kopplung, zyklomatische Komplexität, mögliche Null-Dereferenzen.
Ja, die vorherigen Antworten zum Vergleich der beiden sind in jeder Hinsicht falsch. StyleCop und FxCop führen zwei sehr unterschiedliche Aufgaben aus. Es lohnt sich, den Wert zu untersuchen, den jede auf Ihrer Codebasis bietet, und warum Sie sie ausführen sollten.
Jedidja
3
Stimmen Sie zu, dass nicht alle StyleCop-Regeln gut sind, aber wie Sie sagen, können diejenigen, die Sie nicht möchten, deaktiviert werden. Wir verwenden StyleCop - nachdem wir die einfachen dummen Regeln deaktiviert haben, bietet es uns einen guten Wert - zu geringen Kosten ..! Empfohlen. (Beachten Sie, dass wir es auf den ersten Blick hassten ..)
stiank81
@ stiank81: Ja, ich denke, jeder hasst StyleCop zuerst. Nach kurzer Zeit zeigen sich die Vorteile jedoch wirklich und es erweist sich als ein sehr nützliches Werkzeug zur Aufrechterhaltung der Konsistenz in der Quelle. :)
Greg D
1
tolle Antwort, wonach ich gesucht habe :)
GibboK
16
stylecop funktioniert mit Ihrem C # -Quellcode. fxcop betrachtet Ihren kompilierten Code aus einer beliebigen .net-Sprache.
Kann FXCop also einen Wert hinzufügen, wenn Sie Stylecop verwenden?
JL.
Wirklich, Sie sind besser dran, wenn Sie FxCop verwenden.
Andrew Rollings
Zumindest für den Moment, bis es konfigurierbarer wird. :)
Andrew Rollings
1
Es ist unwahrscheinlich, dass Stylecop wesentlich konfigurierbarer wird. Ein weitaus wichtigeres Merkmal für Stylecop ist die automatische Korrektur von Stilverletzungen.
Greg D
Wir verwenden Resharper, um Code automatisch an die Stylecop-Regeln anzupassen. Das allein macht es den Kaufpreis wert. Darüber hinaus erhalten Sie alle weiteren Vorteile.
Keine Rückerstattung Keine Rückgabe
11
Eine Alternative oder eine gute Ergänzung zu FxCop / StyleCop wäre die Verwendung des kommerziellen Tools NDepend . Mit diesem Tool kann man Code-Regeln über LINQ-Abfragen (nämlich CQLinq) schreiben . Haftungsausschluss: Ich bin einer der Entwickler des Tools
Standardmäßig werden mehr als 200 Coderegeln vorgeschlagen, darunter Design , Architektur , Codequalität , Codeentwicklung , Namenskonventionen , toter Code , Verwendung von .NET Fx ...
Die Stärke von CQLinq gegenüber FxCop oder StyleCop besteht darin, dass es einfach ist, eine Coderegel zu schreiben und sofort Ergebnisse zu erhalten. Es werden Einrichtungen zum Durchsuchen übereinstimmender Codeelemente vorgeschlagen. Konkret sieht das so aus:
FXCop führt eine statische Code-Analyse Ihrer verwalteten Code-Assemblys durch. Stellen Sie sich vor, Sie finden Probleme, die zur Laufzeit Probleme verursachen oder die Auswirkungen des Entwicklers auf den Code haben (nicht erreichbarer Code).
StyleCop analysiert die Struktur Ihres Codes aus Textsicht. Stellen Sie sich dies als Probleme vor, die sich auf Ihre Entwicklungs- und Entwurfserfahrung auswirken (Formatierung, Namenskonventionen, Dokumentation).
Sie sind beide SEHR wertvolle Werkzeuge und Sie sollten beide verwenden, aber sie konzentrieren sich auf verschiedene Probleme.
StyleCop führt eine Quellcode-Analyse durch, die nicht sehr konfigurierbar ist. Es macht nicht wirklich dasselbe wie FxCop, das den kompilierten Code analysiert.
Die Wikipedia-Artikel zu diesen bieten gute Zusammenfassungen der Unterschiede:
Antworten:
Stylecop ist ein Tool zur Stilanalyse, das auf Quellcodeebene arbeitet. Es besteht hauptsächlich darin, einen einzigen gemeinsamen Stil bereitzustellen, mit dem verwaltete Projekte in der größeren Welt der verwalteten Software konsistent bleiben können. Es trifft Entscheidungen in Bezug auf den Stil in erster Linie, um heilige Kriege zu vermeiden (schließlich ist Stil fast immer eine inhärent subjektive Sache). Ich glaube nicht , dass ich jemals jemanden, der alle StyleCop Regeln gemocht getroffen habe, aber das ist ok . Dies bedeutet, dass StyleCop ein allgemein guter Kompromiss zwischen den zahlreichen vorhandenen Stilrichtlinien ist. (Wenn die Regeln von stylecop in hohem Maße anpassbar wären und nicht nur aktiviert / deaktiviert würden, würde dies den gesamten Zweck des Tools zunichte machen.)
FxCop hingegen ist ein statisches Analysetool, das auf der Ebene der verwalteten Assembly arbeitet. Es kann Anweisungen über Attribute erhalten, da es Attribute auf Codeelementen sehen kann, z. Es erkennt Probleme, die auf der "binären" Ebene (sozusagen) im Gegensatz zur syntaktischen Ebene auftreten.
Um Ihre Frage zu beantworten, ersetzt StyleCop FxCop nicht und FxCop ersetzt Stylecop nicht. Es handelt sich um zwei verschiedene Tools mit zwei unterschiedlichen Zwecken, die beide einen echten Vorteil für Ihren Code bieten können.
(AKA, ich laufe mit beiden. :))
Ein paar Beispiele für Dinge, die man erkennen könnte, im Vergleich zu Dingen, die der andere erkennen könnte:
StyleCop-Verstöße können Warnungen enthalten, die sich auf Folgendes beziehen: Leerzeichen, Formatierung, Dokumentation öffentlicher Methoden über XML-Kommentare, Reihenfolge der Methodendefinition innerhalb einer Klasse.
Zu den Verstößen gegen FxCop können Warnungen gehören, die sich auf Folgendes beziehen: Globalisierung, enge Kopplung, zyklomatische Komplexität, mögliche Null-Dereferenzen.
quelle
stylecop funktioniert mit Ihrem C # -Quellcode. fxcop betrachtet Ihren kompilierten Code aus einer beliebigen .net-Sprache.
quelle
Eine Alternative oder eine gute Ergänzung zu FxCop / StyleCop wäre die Verwendung des kommerziellen Tools NDepend . Mit diesem Tool kann man Code-Regeln über LINQ-Abfragen (nämlich CQLinq) schreiben . Haftungsausschluss: Ich bin einer der Entwickler des Tools
Standardmäßig werden mehr als 200 Coderegeln vorgeschlagen, darunter Design , Architektur , Codequalität , Codeentwicklung , Namenskonventionen , toter Code , Verwendung von .NET Fx ...
CQLinq dient zum Schreiben von Coderegeln, die live in Visual Studio oder während des Erstellungsprozesses überprüft und in einem HTML / Javascript-Bericht gemeldet werden können .
Die Stärke von CQLinq gegenüber FxCop oder StyleCop besteht darin, dass es einfach ist, eine Coderegel zu schreiben und sofort Ergebnisse zu erhalten. Es werden Einrichtungen zum Durchsuchen übereinstimmender Codeelemente vorgeschlagen. Konkret sieht das so aus:
quelle
FXCop führt eine statische Code-Analyse Ihrer verwalteten Code-Assemblys durch. Stellen Sie sich vor, Sie finden Probleme, die zur Laufzeit Probleme verursachen oder die Auswirkungen des Entwicklers auf den Code haben (nicht erreichbarer Code).
StyleCop analysiert die Struktur Ihres Codes aus Textsicht. Stellen Sie sich dies als Probleme vor, die sich auf Ihre Entwicklungs- und Entwurfserfahrung auswirken (Formatierung, Namenskonventionen, Dokumentation).
Sie sind beide SEHR wertvolle Werkzeuge und Sie sollten beide verwenden, aber sie konzentrieren sich auf verschiedene Probleme.
quelle
StyleCop führt eine Quellcode-Analyse durch, die nicht sehr konfigurierbar ist. Es macht nicht wirklich dasselbe wie FxCop, das den kompilierten Code analysiert.
Die Wikipedia-Artikel zu diesen bieten gute Zusammenfassungen der Unterschiede:
http://en.wikipedia.org/wiki/StyleCop
http://en.wikipedia.org/wiki/FxCop
quelle