Product Features

NDepend is a "Swiss Army Knife" for .NET and .NET Core project teams. With its wide range of features, it gives deep insight into code bases and empowers developers, architects and executives to make intelligent decisions on projects.

Easily Manage Large Projects

Most companies have large systems that work together, often in mysterious ways. NDepend's in-depth reporting and toolset can help your company enforce its own coding standards and maintain complex projects.

Code Rule and Code Query

Hundreds of default code rules to check against best practices. Support for Code Query over C# LINQ (CQLinq) to easily customize rules and query code.

Powerful Dependency Graph and Matrix

Explore how the code is actually structured and shed light on architectural flaws thanks to the most powerful code dependency graph and dependency matrix available in the tool industry.

Smart Technical Debt Estimation

For each issue, the cost to fix and the severity are estimated through smart and customizable C# formulas. Thus estimations proposed are realistic.

Continuous Code Quality

A unique approach to continuously keep the technical debt under control and reimburse it with time.

Quality Gates

Quality Gates are C# LINQ (CQLinq) queries that implement PASS/FAIL criteria to code quality.

Monitor the Health of Your Application

NDepend allows your team to accurately gauge the overall health of your application, no matter how complex it is.

Trend Monitoring

Get Trend Charts about pretty much any code metrics to master the evolution of your application.

Code Diff since Baseline

Compare two versions of a code base and its issues set, and browse diff and changes in any way you can think of.

Reduce Friction Between Your Developer Teams

NDepend's reporting and analysis helps architects and developers to communicate and reduce confusion.

Continuous Integration Reporting

Integrate NDepend analysis into your build process and get highly customized and detailed reports to see progression and prevent code quality degradation.

Working with Legacy Code is Now Easier

By mapping out the structure of the project, it is much easier to see how components and dependencies are connected.

Real-World Proof

Full Visual Studio and Azure DevOps integration, super fast and lightweight analysis, integration within all CI/DevOps systems, NDepend is conceived for real-world programmers.

See how NDepend can change the way your company creates software.
Click below to download your 14 day trial

Download free trial.

Or you can see how to get started with NDepend and explore its in-depth documentation.

Get Started

Detect Dependency Cycles

Exploring Dependency Cycles with the NDepend Dependency Matrix (5 minutes)

The easiest way to keep a code base clean is to avoid dependency cycles between its components. Components are useful to partition a huge amount of code into smaller and understandable pieces. If a dependency cycle involves N components, these N components represent a single super-component. Indeed, the benefits of having N smaller components are lost: any component can be potentially broken by a change in any of the others components, you cannot unit test a component in isolation from the N-1 other ones and finally, all N components must be versioned and deployed all together.

Whether you consider that your components are classes, namespaces, assemblies or a mix in between, NDepend detects dependency cycles between them. It can also help you to find the right way to get rid of a particular dependency cycle. Once dependency cycles have been removed, NDepend can continuously check your code base to warn you as soon as a cycle is accidentally created.

Generating a graph from the Dependency Structure Matrix of a dependency cycle between some namespaces of mscorlib

Related Links::
Case Study: 2 Simple Principles to achieve High Code Maintainability
Exhibit Monolithic Portions of Code
Cycle Graph
Pinpoints Dependency Cycle with the Dependency Matrix
Code Rule : Avoid namespaces mutually dependent
Code Rule : Avoid namespaces dependency cycles