Skip to content

Comparison with alternatives

How CodeCharter positions itself against Roslyn analyzers, SonarQube, NDepend, and Qodana.

The matrix below lists the capabilities CodeCharter brings and shows how the most common .NET code quality tools compare. Every row is something CodeCharter does; the other columns reflect each tool's real, current behaviour.

Feature matrix

Legend: ✓ = supported, partial = limited or indirect support, ✗ = not supported.

Feature CodeCharter Roslyn analyzers SonarQube / Cloud NDepend Qodana
Source never leaves your environment self-hosted only ✓ (results go to Qodana Cloud)
No server or cloud backend to operate ✗ (Cloud account; Self-Hosted is a server)
Standalone CLI you run on demand ✗ (runs inside the build) ✗ (scanner needs a server)
Custom rules in a text DSL — no C# project, build, or NuGet ✗ (analyzer project + NuGet) ✗ (Roslyn import or templates) ✓ (CQLinq) ✗ (FlexInspect / structural search)
Browser-based rule editor with live validation and online spec check
Spec-test custom rules against hit/miss cases — local, CI, and browser, with run history
Architecture and layering rules in the rule language partial partial
Coupling and OOP metrics (instability, abstractness, cohesion) in the model partial
Baseline gate that only fails on new findings
Author, version, and share rule profiles centrally ✓ (Cloud)
Versioned, signed rule profiles with offline / air-gapped bundles
SARIF, JSON, and GitHub-annotation output partial (SARIF via build ErrorLog) partial (SARIF import; own report)
MCP server so AI coding assistants enforce your rules
Central audit log of rule, profile, and API-key activity, exportable as CSV ✓ (Enterprise) partial (Cloud usage/license reporting)
Opt-in usage insights with no source code and no PII ✓ (server dashboards) ✓ (dashboards) ✓ (Cloud dashboards)
Per-team license (monthly or yearly), no per-seat tracking free / OSS per lines of code per seat per contributor (from 3)

When CodeCharter is the right choice

When you want to enforce custom rules without maintaining C# analyzer projects. CodeCharter rules live in a text file, with no build or NuGet lifecycle.

When you want to test your rules like code. Every rule can carry hit/miss spec cases that run locally, in CI, and in the browser, so a rule change that stops matching the right code fails fast.

When you want to author rules without leaving the browser. The portal editor validates the DSL live and runs an online spec check before you publish.

When you want to enforce architecture and layering in the build. Coupling and dependencies are part of the model, and layering rules are written directly in the DSL.

When you share rules across teams and CI but still need air-gapped builds. Profiles are versioned and signed, and can be consumed as offline bundles.

When you don't want to operate another server. Analysis runs locally, source code never leaves your environment, and there is no dashboard, database, or license server for you to host or operate.

When you want pull-request gates scoped to changed lines. With --diff or --git-ref, both the reported findings and the fail gate apply only to the lines a change touches, and the GitHub Action can publish the results as annotations on the pull request.

When you want rule support in the editor. The VS Code extension brings completions, diagnostics, and spec runs for .cgr rule files into the editor and can analyze the open workspace.

When you want per-team licensing instead of per-seat. CodeCharter is licensed per team, monthly or yearly, with no per-seat tracking or reporting.

Everything on this page can be evaluated with a free 7-day trial that starts automatically on registration — no payment details required.

How it fits together

CodeCharter does not replace every tool above. A practical stack for a typical .NET team:

  • EditorConfig for style settings in the editor.
  • Microsoft.CodeAnalysis.NetAnalyzers as the Roslyn baseline for language and style.
  • CodeCharter for custom conventions, architecture and layering, complexity thresholds, and everything that goes beyond standard rule sets.

For the narrow case of layering assertions inside your unit test suite, libraries such as ArchUnitNET and NetArchTest let you express dependency rules as C# tests. They cover the test-library angle; CodeCharter adds a standalone analyzer, a shared rule language, spec testing, and CI gating on top of it.