Vergleich mit Alternativen
Die folgende Matrix zeigt, welche Eigenschaften CodeGuard mitbringt und wie das im Vergleich zu den verbreiteten .NET-Code-Quality-Werkzeugen aussieht.
Eigenschaften-Matrix
| Eigenschaft | CodeGuard | Roslyn-Analyzer | SonarQube | NDepend |
|---|---|---|---|---|
| Source-Code bleibt lokal | ✓ | ✓ | je nach Hosting | ✓ |
| 100+ eingebaute Regeln out-of-the-box | ✓ | nein (Pakete einzeln einbinden) | ✓ | ✓ |
| Eigene Regeln ohne Build- oder NuGet-Lifecycle | ✓ | nein | nein | ✓ (CQLinq) |
| Coupling- und Architektur-Metriken im Schema | ✓ | nein | teilweise | ✓ |
| OOP-Metriken (Abstractness, Instability, Cohesion) | ✓ | nein | teilweise | ✓ |
| Multi-Plattform-CLI ohne installiertes SDK | ✓ | nein | nein | nein |
| SARIF-Output für GitHub Code Scanning und GitLab SAST | ✓ | nein | ✓ | nein |
| GitHub-Annotations als PR-Inline-Kommentare | ✓ | nein | ✓ | nein |
| Determinismus garantiert | ✓ | ✓ | ✓ | ✓ |
| Kein Self-Hosted-Server nötig | ✓ | ✓ | nein | ✓ |
| Per-Team-Lizenz statt Per-Seat | ✓ | OSS | LOC-basiert | Per-Seat |
Wann CodeGuard die richtige Wahl ist
Wenn ihr eigene Regeln durchsetzen wollt ohne C#-Analyzer-Projekte zu pflegen. CodeGuard-Regeln stehen in einer Textdatei, ohne Build-Lifecycle.
Wenn ihr Architektur und Layering im Build erzwingen wollt. Coupling und Abhängigkeiten sind im Schema verfügbar, Layering-Regeln formuliert ihr direkt.
Wenn ihr keinen Cloud-Service nutzen wollt. Die Analyse läuft lokal, Source-Code verlässt eure Umgebung nicht.
Wenn ihr keinen weiteren Server betreiben wollt. Kein Dashboard, keine Datenbank, keine Lizenz-Verwaltung im eigenen Betrieb.
Wenn ihr Team-Lizenzen euer Buchhaltungs-Overhead-Limit überschreitet. CodeGuard lizenziert pro Team und Jahr, ohne Per-Seat-Reporting.
Wie es zusammenspielt
CodeGuard ersetzt nicht jedes der genannten Werkzeuge. Ein praxisnaher Stack für ein typisches .NET-Team:
- EditorConfig für Stil-Settings im Editor.
- Microsoft.CodeAnalysis.NetAnalyzers als Roslyn-Basis-Set.
- CodeGuard für eigene Konventionen, Architektur, Komplexitäts-Schwellen und alle Regeln, die über Standard-Sets hinausgehen.
EditorConfig und Roslyn-Analyzer kümmern sich um Sprache und Stil, CodeGuard um team-spezifische Substanz.