NDepend
DeveloperNDepend
Stable release
2025.1
Operating systemWindows
TypeSoftware quality
LicenseCommercial, Proprietary
Websitendepend.com

NDepend is a static analysis tool for C# and .NET code to manage code quality and security. The tool proposes a large number of features, from CI/CD Web Reporting to Quality Gate and Dependencies Visualization. For that reason, the community refers to it as the "Swiss Army Knife" for .NET Developers.

Features

edit
NDepend Report Source Files List
NDepend Report Source Files List
NDepend Dependency Graph


The main features of NDepend are:

Code rules through LINQ queries (CQLinq)

edit
NDepend Code Querying CQLinq

Live code queries and code rules through LINQ queries is the backbone of NDepend, all features use it extensively. Here are some sample code queries:

  • Base class should not use derivatives:
 // <Name>Base class should not use derivatives</Name>
 warnif count > 0 
 from baseClass in JustMyCodeTypes
 where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
 let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
 where derivedClassesUsed.Count() > 0
 select new { baseClass, derivedClassesUsed }
 // <Name>Avoid making complex methods even more complex (source code cyclomatic complexity)</Name>
 warnif count > 0 
 from m in JustMyCodeMethods where
  !m.IsAbstract &&
   m.IsPresentInBothBuilds() &&
   m.CodeWasChanged()
 let oldCC = m.OlderVersion().CyclomaticComplexity
 where oldCC > 6 && m.CyclomaticComplexity > oldCC 
 select new { m,
     oldCC, 
     newCC = m.CyclomaticComplexity, 
     oldLoc = m.OlderVersion().NbLinesOfCode,
     newLoc = m.NbLinesOfCode,
 }

Additionally, the tool provides a live CQLinq query editor with code completion and embedded documentation.

See also

edit
edit

NDepend reviewed by the .NET community

edit

📚 Artikel Terkait di Wikipedia

List of tools for static code analysis

Retrieved 2022-04-13. "UNIX is free!". lemis.com. 2002-01-24. "NDepend what's new". ndepend.com. Retrieved 15 June 2022. "PMD - Browse /pmd/5.0.0". SourceForge

Call graph

Python, R, Raku, Ruby, Rust, Scala, Swift, TCL, and TypeScript. .NET NDepend:is a static analysis tool for .NET code. This tool supports a large number

Software visualization

capability, and that Fujaba can also identify design patterns. Imagix 4D NDepend Sourcetrail Application discovery and understanding Software maintenance