¿Qué herramientas hay disponibles para el análisis estático contra el código C #? Sé sobre FxCop y StyleCop. ¿Hay otros? Me he encontrado con NStatic antes, pero ha estado en desarrollo durante lo que parece una eternidad: se ve muy elegante por lo poco que he visto de él, por lo que sería bueno si alguna vez viera la luz del día.
En esta misma línea (este es principalmente mi interés para el análisis estático), las herramientas para probar código para problemas de subprocesos múltiples (puntos muertos, condiciones de carrera, etc.) también parecen un poco escasas. Typemock Racer acaba de aparecer, así que lo miraré. ¿Algo más allá de esto?
Se agradecen las opiniones de la vida real sobre las herramientas que ha utilizado.
c#
code-analysis
static-analysis
Paul Mrozowski
fuente
fuente
Respuestas:
Herramientas de detección de violación de código:
Fxcop , excelente herramienta de Microsoft. Verifique el cumplimiento de las pautas de .NET Framework.
Edición de octubre de 2010: ya no está disponible como descarga independiente. Ahora está incluido en el SDK de Windows y después de la instalación se puede encontrar en Archivos de programa \ Microsoft SDKs \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe
Edición de febrero de 2018 : esta funcionalidad ahora se ha integrado en Visual Studio 2012 y posterior como análisis de código
Clocksharp , basado en el análisis de código fuente (a C # 2.0)
Mono.Gendarme , similar a Fxcop pero con una licencia de código abierto (basada en Mono.Cecil )
Smokey , similar a Fxcop y Gendarme, basado en Mono.Cecil . Ya no está en desarrollo, el desarrollador principal trabaja con el equipo de Gendarme ahora.
Coverity Prevent ™ para C # , producto comercial
PRQA QA · C # , producto comercial
PVS-Studio , producto comercial
CAT.NET , complemento de estudio visual que ayuda a identificar fallas de seguridad Editar noviembre de 2019: Link está muerto.
CodeIt.Right
Especificaciones#
Pex
SonarQube , FOSS y opciones comerciales para admitir la escritura de códigos más limpios y seguros.
Herramientas métricas de calidad:
Comprobación de herramientas de estilo:
Detección de duplicación:
Herramientas generales de refactorización
fuente
La herramienta NDepend se cita como herramientas métricas de calidad, pero también es una herramienta de detección de violación de código . Descargo de responsabilidad: soy uno de los desarrolladores de la herramienta
Con NDepend, se puede escribir una regla de código sobre consultas LINQ (lo que llamamos CQLinq) . Se proponen más de 200 reglas de código CQLinq de forma predeterminada. La fortaleza de CQLinq es que es sencillo escribir una regla de código y obtener resultados inmediatos . Se proponen instalaciones para examinar elementos de código coincidentes. Por ejemplo:
Además de eso, NDepend viene con muchos otros análisis estáticos como características. Éstos incluyen:
fuente
fuente
¿Has visto CAT.NET ?
De la propaganda
Usé una versión beta temprana y parecía haber aparecido algunas cosas que valía la pena mirar.
fuente
Además de la excelente lista de madgnome, agregaría un detector de código duplicado que se basa en la línea de comando (pero es gratis):
http://sourceforge.net/projects/duplo/
fuente
Klocwork tiene una herramienta de análisis estático para C #: http://www.klocwork.com
fuente
Me parecen muy útiles los complementos de Matriz de estructura de dependencia y métricas de código para Reflector.
fuente
Optimyth Software acaba de lanzar un servicio de análisis estático en la nube www.checkinginthecloud.com . Simplemente cargue su código de forma segura, ejecute el análisis y obtenga los resultados. Sin problemas
Admite varios idiomas, incluido C #. Puede encontrar más información en wwww.optimyth.com
fuente
Axivion Bauhaus Suite es una herramienta de análisis estático que funciona con C # (además de C, C ++ y Java).
Proporciona las siguientes capacidades:
Estas características se pueden ejecutar de forma puntual o como parte de un proceso de integración continua. Los problemas se pueden resaltar por proyecto o por desarrollador cuando el sistema se integra con un sistema de control de código fuente.
fuente