Hola a todos, hace un tiempo he venido trabajando con NDepend, y realmente me ha gustado bastante, así que hoy quiero hacer un pequeña introducción sobre dicha herramienta, basicamente NDepend permite tiene tres áreas principales:

Características NDependCaracterísticas NDepend

Para iniciar con NDepend, se tiene disponible un trial que pueden descargar en http://www.ndepend.com/download, una vez descargado e instalado tenemos dos diferentes opciones para usarlo, una es con el IDE propio y la otra directamente desde Visual Studio ya que una de sus características es la integración con nuestro IDE favorito.

Para el ejemplo, simplemente he creado una aplicación utilizando ASPNET Boilerplate, dicha plantilla tiene la siguiente estructura:

ndependproyecto

Ahora, en el menú NDepend seleccionamos la opción de Attach new NDepend Project to current VS Solution para poder utilizarlo en la solución que tenemos abierta:

ndepend1

Una vez seleccionada la opción anterior, se abre una ventana modal en la cual se muestran los assemblies que se van a analizar, además de poder filtrar entre otras cosas, para este caso vamos a dejar los 5 assemblies que tenemos y vamos a dar clic en Analiyze, no olvidar revisar que el check de Build Report este marcado:

ndepend2

Una vez que NDepend ha finalizado el análisis, tenemos diferentes opciones para ver el resultado, la primera de ellas es que tenemos acceso a un reporte Web que se abre automáticamente en el browser, en donde podemos navegar por las diferentes categorías que se han analizado y en cada una de ellas ver el resultado del análisis:

ndepend3

ndepend4

ndepend5

Adicionalmente, desde Visual Studio tenemos acceso a un dashboard en el cual tenemos un resumen del análisis, además de la facilidad de poder navegar sobre cada uno de los factores analizados:

ndepend6

Por ejemplo, si revisamos las 12 reglas violadas:

ndepend7

Realmente NDepend es una gran herramienta que nos va a ayudar en el proceso de mejoramiento de nuestro código, en próximas ocasiones seguiremos viendo otras características.

Saludos!