I got a message on LinkedIn from Patrick Smacchia, who is the CEO and Lead Developer of NDepend with an amazing offer. It’s a free professional license for NDepend. I tried the tool for a few weeks and found some interesting features in it that could save my time and improve my code quality.


NDepend  is a great tool  for measuring the quality of software development for a .Net projects. On a real project it can be useful for follow the metrics, violated rules… The possibility of editing the queries rules is a plus for this tool.


There is a trial version for 14 days, we can get it here and there is a Visual Studio Extension that can be find here

This tool will analyze the dll output from the project and at the end it allow to show different metrics, graphics, diagrams and rules. Here are what the analyze of NDepend can tell us:


  Application Metric: This section gives you an idea of the topology of your application.

  •   Assembly Metric: This section gives you an idea of the size of each assembly within your application in   terms of #IL instructions and others metrics.
  •   VisualNDepend View: This section illustrates the size of your assemblies, namespaces, types and methods in terms of #IL instructions. You can browse this view dynamically by clicking the Launch Visual NDepend on this Project icon in the NDepend.Project UI.
  •   Assembly AAbstractness vs. Instability: This section illustrate the AAbstractnessInstability principle explained in the assemblies metrics section.
  •   Assembly Dependencies: This section shows all dependencies between assemblies of your application in a table.
  •   Assembly Dependency Diagram: This section shows all dependencies between assemblies of your application in a diagram
  •   Assembly build order: This section gives you one of the possible build order for your assemblies. If a cycle exists in your assemblies dependencies graph, this section will report it.
  •   NDepend information and warnings: This sections gives you advices about your code:
    • It warns you when an assembly depends on a less stable assembly than itself.
    • It warns you when the visibility of a type or of a member is not optimal (in the context of the analysed application).
    • It warns you when a type or a member is not used (in the context of the analysed application).
  • CQLinq Queries and Rules: This section reports default CQLinq rules which have been violated. More about CQLinq here.
  • Type Metrics: This section recaps type metrics in a table. A link to the documentation is provided for each metric.


About João Sousa
Senior Software Engineer in .Net (Microsoft Certified MTCS and MCPD). .NET Microsoft MVP 2015

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: