Patrick Smacchia introduced NDepend in 2007. NDepend is a Visual Studio tool that makes it easy to manage complex .NET code base. The primary motive of NDepend is to allow the Architect to get clear idea about cross dependencies between objects, level of association between them and to find the condition of code easily.

What does NDepend provide?

1- A large number of software metrics (Cyclomatic Complexity, Afferent and Efferent Coupling, Relational cohesion, Google page rank of your types, Percentage of Code covered by tests, etc.)
2- Dependency graphs
3- Dependency matrix
4- Declarative code query
5- Integration with Cruise Control and Team City
6- Code constraints directly in your source code using .NET attributes
7- Compare 2 versions of an assembly: what types were added, removed, etc.

What is Dependency Cycle?

Avoiding dependency cycle between components is the primary principle of strong Software Design. If a component A depends on B, B depends on C and C again depends on A, the component A cannot be tested or developed independently without B and C. Thus A, B and C forms an indivisible unit.

Dependency Structure Matrix (DSM)
DSM is used to get the knowledge on by which extent a namespace is dependent to another. NDepend’s DSM relies on a simple 3 coloring scheme for DSM cell: Blue, Green and Black. When hovering a row or a column with the mouse, the Context-Sensitive Help explains the meaning of this coloring scheme:

NDepend’s DSM comes with the following options:

1- It has numerous facilities to dig into dependency exploration (a parent column/row can be opened, cells can be expanded…)
2- It can deal with squared symmetric DSM and rectangular non-symmetric DSM
3- Horizontal and Vertical headers can be bound, to constantly have a squared symmetric matrix
4- It comes with the option Indirect usage, where cell shows direct and indirect usage
5- The vertical header can contains tier code elements

Copyright © All Rights Reserved - C# Learners