Articulo de referencia

NDepend

NDepend es una herramienta de análisis estático para código C# y .NET que permite gestionar la calidad y la seguridad del código. Ofrece una gran cantidad de funciones, desde in...

NDepend es una herramienta de análisis estático para código C# y .NET que permite gestionar la calidad y la seguridad del código. Ofrece una gran cantidad de funciones, desde informes web de CI/CD hasta la visualización de dependencias y el control de calidad. Por ello, la comunidad la conoce como la "navaja suiza" para desarrolladores .NET.

Características

Lista de archivos fuente del informe NDepend
Lista de archivos fuente del informe NDepend
Grafo de dependencias de NDepend

Las principales características de NDepend son:

  • Informes web interactivos sobre todos los aspectos de la calidad y seguridad del código .NET. Ejemplos de informes aquí . Los informes se pueden crear en cualquier plataforma: Windows , Linux y macOS.
  • [Importación de problemas de Roslyn Analyzers https://www.ndepend.com/docs/reporting-roslyn-analyzers-issues ]
  • Puertas de calidad
  • Integración de CI/CD con Azure DevOps , GitHub Actions , Bamboo , Jenkins , TeamCity y AppVeyor.
  • Visualización de dependencias (mediante gráficos de dependencias y matrices de dependencias )
  • Estimación inteligente de la deuda técnica
  • Regla de código declarativa sobre consultas LINQ de C# (CQLinq) .
  • Métricas de software (NDepend actualmente admite más de 100 métricas de código: complejidad ciclomática ; acoplamiento aferente y eferente ; cohesión relacional ; posicionamiento en los resultados de búsqueda de Google para tipos .NET; porcentaje de código cubierto por pruebas, etc.)
  • Importación de datos de cobertura de código desde Visual Studio coverage, dotCover, OpenCover, NCover, NCrunch.
  • Todos los resultados se comparan con una línea de base, lo que permite al usuario centrarse en los problemas recién identificados.
  • Integración con Visual Studio 2022, 2019, 2017, 2015, 2013, 2012, 2010, o puede ejecutarse de forma independiente a través de VisualNDepend.exe, junto con JetBrains Rider o Visual Studio Code .

Reglas de código mediante consultas LINQ (CQLinq)

Consulta de código NDepend CQLinq

Las consultas de código en tiempo real y las reglas de código mediante consultas LINQ son la base de NDepend; todas sus funcionalidades las utilizan ampliamente. A continuación, se muestran algunos ejemplos de consultas de código:

  • La clase base no debe usar clases derivadas:
// <Name>La clase base no debería usar derivados</Name> advertir si count > 0 de baseClass en JustMyCodeTypes donde baseClass . IsClass && baseClass . NbChildren > 0 // <-- ¡para optimización! let derivedClassesUsed = baseClass . DerivedTypes . UsedBy ( baseClass ) donde derivedClassesUsed . Count () > 0 seleccionar nuevo { baseClass , derivedClassesUsed }
// <Name>Evite hacer que los métodos complejos sean aún más complejos (complejidad ciclomática del código fuente)</Name> warnif count > 0 from m in JustMyCodeMethods where ! m . IsAbstract && m . IsPresentInBothBuilds () && m . CodeWasChanged () let oldCC = m . OlderVersion (). CyclomaticComplexity where oldCC > 6 && m . CyclomaticComplexity > oldCC select new { m , oldCC , newCC = m . CyclomaticComplexity , oldLoc = m . OlderVersion (). NbLinesOfCode , newLoc = m . NbLinesOfCode , }

Además, la herramienta proporciona un editor de consultas CQLinq en tiempo real con autocompletado de código y documentación integrada.

Véase también

  • Sitio web oficial

NDepend revisado por la comunidad .NET

  • Debate en Stack Overflow: uso de NDepend
  • Johannes descansa en NDepend
  • Del caos a la claridad: Gestionando la complejidad de .NET con NDepend
  • Benjamin Wolf en NDepend
  • Saliendo de la zona de dolor: Análisis estático con NDepend.aspx (Scott Hanselman, gerente de programa de Microsoft) analiza NDepend.
  • Abhishek Sur en NDepend