Product Features

NDepend is a .NET tool that provides deep insight into code bases. The tool empowers developers, architects and executives to make intelligent decisions on projects. The community name it the "Swiss Army Knife" for .NET programmers.

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

Smart Technical Debt Estimation


Nowadays, the technical-debt metaphor has been widely adopted by the software industry. It was coined by Ward Cunningham in 1992.

This reference article by Martin Fowler describes the technical-debt metaphor in great detail. To quote M.Fowler:

In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. We can choose to continue paying the interest, or we can pay down the principal by refactoring the quick and dirty design into the better design. Although it costs to pay down the principal, we gain by reduced interest payments in the future.

As from NDepend v2017.1.0, NDepend estimates the technical-debt of a code base. The tool proposes many unique features to handle the technical-debt the right way:

  • Smart Technical-Debt Estimation: The technical-debt is estimated from C# LINQ formulas embedded inside each rule source code. This makes the the estimations both smart and easily customizable to your needs.
    warnif count > 0 
    from m in Methods
    where m.CyclomaticComplexity > 10
    select new { 
       
    m,
       
    m.CyclomaticComplexity,
       
    Debt = (3*(m.CyclomaticComplexity -10)).ToMinutes().ToDebt(),
       
    AnnualInterest = (m.PercentageCoverage == 100 ? 10 : 120).ToMinutes().ToAnnualInterest()
    }
  • Quality Since Baseline: Recent code smells introduced since a baseline, that should be fixed before committing any code to source control, are highlighted in Visual Studio. They can then be fixed even before reaching the source server.
  • Debt Exploration: Not only are C# LINQ queries against the NDepend.API used to write code rules and technical-debt estimations, but such queries can be used to explore the technical-debt. For example the query below will return new issues since baseline ordered by decreasing debt-estimation.
    from i in Issues
    where i.WasAdded() && i.Severity.EqualsAny(Severity.Blocker, Severity.Critical)
    orderby i.Debt.Value descending
    select new { i, i.Debt }>

    The user doesn't have to write these debt-exploration-queries since they are generated by clicking values and menus in the Dashboard:

    NDepend Debt Exploration from Dashboard
  • Fastest tool on the market: Because developer time is invaluable, we made NDepend fast, very fast: the technical debt can be re-estimated after each compilation in Visual Studio in just a few seconds, even for hundreds of rules passed on a very large code base. And, as we know it is also important, without any noticeable IDE slow down.
  • 100% customizable: Not only every facets of the debt estimation are customizable, but also the debt presentation is customizable too. Debt values can be estimated through money-amount instead of person-time and all thresholds can be adjusted in a few clicks through the NDepend Project Properties panel.

    NDepend Technical Debt Settings
  • Benefits:

  • Frictionless integration of serious Code Quality control in the development process.
  • Over time developers get educated about rules to follow, and the right decisions are taken early.
  • Since quality is checked automatically and continuously with a strong focus on recent changes, both in Visual Studio and in the DevOps, the team builds better code.
  • Executives can control the return on investment made on quality.

Related Links::

Technical-Debt documentation.

C# LINQ Queries and Technical-Debt