2008-09-01 12 views
174

¿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 por lo que parece una eternidad: se ve bastante astuto por lo poco que he visto de él, así que sería bueno si alguna vez viera la luz del día.¿Qué herramientas de análisis estático están disponibles para C#?

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 subprocesamiento múltiple (interbloqueos, condiciones de carrera, etc.) también parecen un poco escasas. Typemock Racer acaba de aparecer, así que voy a mirar eso. ¿Algo más allá de esto?

Se aprecian las opiniones reales sobre las herramientas que ha utilizado.

+0

@IraBaxter he comenzado un [discusión acerca de esta cuestión en Meta] (http://meta.stackexchange.com/questions/229248/ should-an-old-popular-c-static-analysis-tools-question-be-deleted-for-locked), y los invito a expresar sus argumentos sobre por qué esta pregunta no debería eliminarse, si así lo desean. –

Respuesta

305

Código herramientas de detección de violación:

  • Fxcop, excelente herramienta de Microsoft. Verifique el cumplimiento con las pautas de .net framework.

    Edición octubre de 2010: Ya no está disponible como una descarga independiente. Ahora se incluye en el Windows SDK y después de la instalación se pueden encontrar en Archivos de programa \ Microsoft SDKs \ Windows \ [v7.1] \ bin \ FXCop \ FxCopSetup.exe

    edición de febrero de 2018: Esta funcionalidad ha sido ahora integrado en Visual Studio 2012 y más tarde como Code Analysis

  • Clocksharp, basado en el análisis de código fuente (en C# 2.0)
  • Mono.Gendarme, similar a FXCop pero con una licencia de código abierto (basado en Mono.Cecil)
  • Smokey, sim similar a Fxcop y Gendarme, basado en Mono.Cecil. Ya no está en desarrollo, el desarrollador principal trabaja ahora con el equipo de Gendarme.
  • Coverity Prevent™ for C#, producto comercial
  • PRQA QA·C#, producto comercial
  • PVS-Studio, producto comercial
  • CAT.NET, complemento de Visual Studio que ayuda a la identificación de fallas de seguridad
  • CodeIt.Right
  • Spec#
  • Pex

Herramientas de Calidad Sistema Internacional:

  • NDepend, gran herramienta visual. Útil para métricas de código, reglas, diff, acoplamiento y estudios de dependencia.
  • Nitriq, gratis, puede escribir fácilmente sus propias métricas/restricciones, visualizaciones agradables. Editar febrero de 2018: enlaces de descarga ahora muertos.
  • RSM Squared, basado en el análisis de código fuente
  • C# Metrics, mediante un análisis sintáctico completo de C#
  • SourceMonitor, una vieja herramienta que de vez en cuando se pone actualizaciones
  • Code Metrics, un complemento en
  • Vil, herramienta Reflector de edad eso no es compatible con .NET 2.0. edición de enero de 2018: Enlace muerto

herramientas de comprobación de estilo:

  • StyleCop, herramienta de Microsoft (ejecutar desde dentro de Visual Studio o integrado en un proyecto de MSBuild). También disponible as an extension para Visual Studio 2015 y C# 6.0
  • Agent Smith, la validación de código de estilo plug-in para ReSharper

detección de duplicación:

  • Simian, basado en el código fuente. Funciona con muchos idiomas
  • CloneDR, detecta clones parametrizados solamente en los límites del lenguaje (también maneja muchos idiomas distintos del C#)
  • Clone Detective un complemento de Visual Studio.(Utiliza ConQAT internamente)
  • Atomiq, basado en el código fuente, un montón de idiomas, fresco "rueda" visualización
herramientas

general refactoración

  • ReSharper - Análisis Majorly fresca código C# y características de refactorización
+4

Consulte la página de MSDN sobre FxCop: http://msdn.microsoft.com/en-us/library/bb429476%28VS.80%29.aspx "FxCop es una aplicación que analiza conjuntos de códigos administrados (código que apunta a .NET Tiempo de ejecución de lenguaje común de Framework) e informa sobre los ensamblados, como posibles mejoras de diseño, localización, rendimiento y seguridad ". –

+0

El enlace de FxCop se ha eliminado del sitio de Microsoft. Aquí está la "descarga" FxCop 10.0: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=917023f6-d5b7-41bb-bbc0-411a7d66cf3c – ulrichb

+0

¿Es este Simian: http: //www.harukizaemon .com/simian/index.html? (tienes un enlace roto). También parece ser solo .NET 1.1. – Theraot

1
  • Gendarme es un analizador estático basado en reglas de fuente abierta (similar a FXCop, pero encuentra muchos problemas diferentes).
  • Clone Detective es un buen complemento para Visual Studio que encuentra código duplicado.
  • Hablando también de Mono, encuentro que el acto de compilar con el compilador Mono (si su código es lo suficientemente independiente de la plataforma para hacer eso, un objetivo que tal vez quiera esforzarse) encuentra toneladas de variables sin referencia y otras Advertencias que Visual Studio falla por completo (incluso con el nivel de advertencia establecido en 4).
6

La herramienta NDepend es citado Herramientas de Calidad métricas pero es más o menos también una detección violación herramienta Código. Descargo de responsabilidad: soy uno de los desarrolladores de la herramienta

Con NDepend, uno puede escribir Code Rule over LINQ Queries (what we call CQLinq). Más de 200 CQLinq code rules se proponen por defecto. La fuerza de CQLinq es que es sencillo escribir una regla de código, y obtener inmediatamente resultados. Se proponen instalaciones para buscar elementos de código coincidentes. Por ejemplo:

CQLinq code rule

Además de eso, NDepend viene con muchos otros análisis estático como características. Estos incluyen:

+1

Hubo un corte temporal de codebetter.com ¡ahora funciona! –

1

Ha visto CAT.NET?

De la propaganda -

CAT.NET es una herramienta de análisis de código binario que ayuda a identificar las variantes comunes de ciertas vulnerabilidades prevalecientes que pueden dar lugar a ataque común vectores tales como Cross-Site Scripting (XSS), inyección de SQL y XPath Inyección.

Utilicé una versión beta inicial y pareció aparecer algunas cosas que vale la pena mirar.

0

Axivion Bauhaus Suite es una herramienta de análisis estático que funciona con C# (así como con C, C++ y Java).

Se proporciona las siguientes capacidades:

  • Arquitectura de Software de visualización (dependencias inlcuyendo)
  • Cumplimiento de las normas de arquitectura por ejemplo estratificación, subsistemas, reglas de llamada
  • Detección Clon - destacando copia y (código y modificado) pegado
  • Código Muerto Detección
  • ciclo de detección
  • Software Metrics
  • Estilo código comprueba

Estos las características se pueden ejecutar de forma puntual o como parte de un proceso de integración continua. Los problemas pueden destacarse por proyecto o por desarrollador cuando el sistema está integrado con un sistema de control de código fuente.

0

Klocwork tiene una herramienta de análisis estático para C#: http://www.klocwork.com

+0

Nuestra compañía compró eso. En el rango de $ 30K para nosotros –

0

Optimyth 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 molestias.

Es compatible con varios idiomas, incluyendo C# más información se puede encontrar en wwww.optimyth.com

Cuestiones relacionadas