NDepend

Uses your system voice; voice and rate in settings.

Snapshot

≈ 3 min read

Names in other languages

  • caNDepend
  • DeutschNDepend
  • EnglishNDepend
  • EspañolNDepend
  • FrançaisNDepend
  • ItalianoNDepend
  • PortuguêsNDepend
  • RomânăNDepend

Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.

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.

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== The main features of NDepend are: Interactive Web Reports about all Aspects of .NET Code Quality and Security Sample Reports Here. Reports can be built on any platform: Windows, Linux and MacOS [Roslyn Analyzers Issues Import https://www.ndepend.com/docs/reporting-roslyn-analyzers-issues] Quality Gates CI/CD Integration with Azure DevOps, GitHub Action, Bamboo, Jenkins, TeamCity, AppVeyor Dependency Visualization (using dependency graphs, and dependency matrix) Smart Technical Debt Estimation Declarative code rule over C# LINQ query (CQLinq). Software Metrics (NDepend currently supports more than 100 code metrics: Cyclomatic complexity; Afferent and Efferent Coupling; Relational Cohesion; Google page rank of .NET types; Percentage of code covered by tests, etc.) Code Coverage data import from Visual Studio coverage, dotCover, OpenCover, NCover, NCrunch. All results are compared against a baseline allowing the user to focus on newly identified issues. Integration with Visual Studio 2022, 2019, 2017, 2015, 2013, 2012, 2010, or can run as a standalone through VisualNDepend.exe, side by side with JetBrains Rider or Visual Studio Code. ==Code rules through LINQ queries (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: // Base class should not use derivatives warnif count > 0 from baseClass in JustMyCodeTypes where baseClass.IsClass && baseClass.NbChildren > 0 // 0 select new { baseClass, derivedClassesUsed } Avoid making complex methods even more complex (source code cyclomatic complexity): // Avoid making complex methods even more complex (source code cyclomatic complexity) 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== Design Structure Matrix List of tools for static code analysis Software visualization ==External links== ===NDepend reviewed by the .NET community=== Stack Overflow discussion: use of NDepend Johannes Rest on NDepend From Chaos to Clarity: Managing .NET Complexity with NDepend Benjamin Wolf on NDepend Exiting The Zone Of Pain: Static Analysis with NDepend.aspx (Scott Hanselman Program Manager, Microsoft) discusses NDepend Abhishek Sur on NDepend

Text derived from https://en.wikipedia.org/w/index.php?oldid=1284365539 under CC BY-SA 4.0; modifications have been made.

Sources cited in this revision

No external citation was extracted for this revision. That is a statement about the source, not a claim that none exists.