fxcop stylecop

Stylecop vs FXcop



(5)

¿Stylecop ha reemplazado a FXcop? ¿Qué producto deberíamos usar con Visual Studio 2008?


FXCop realiza análisis de código estático de los conjuntos de códigos administrados. Piense en ello como en encontrar problemas que causarán problemas en el tiempo de ejecución o que afectarán la forma en que el desarrollador cree que se ejecutará el código (código inalcanzable).

StyleCop analiza la estructura de su código desde un punto de vista de texto. Piense en esto como problemas que afectarán su experiencia de desarrollo y diseño (Formato, convenciones de nombres, documentación)

Son herramientas MUY valiosas y debes usar ambas, pero se enfocan en diferentes problemas.



Stylecop es una herramienta de análisis de estilo que funciona en el nivel del código fuente. Existe principalmente para proporcionar un único estilo común que los proyectos administrados pueden usar para mantener la coherencia dentro del mundo más amplio del software administrado. Toma decisiones con respecto al estilo principalmente para evitar guerras santas (después de todo, el estilo es casi siempre una cosa intrínsecamente subjetiva). No creo que haya conocido a alguien a quien le gustaran todas las reglas de StyleCop, pero está bien . Significa que StyleCop es generalmente un buen compromiso entre el amplio conjunto de pautas de estilo que existen. (Si las reglas de stylecop fueran altamente personalizables, más allá de simplemente habilitarlas / deshabilitarlas, sería una derrota para todo el propósito de la herramienta).

FxCop, por otro lado, es una herramienta de análisis estático que funciona en el nivel del ensamblaje administrado. Se le pueden dar instrucciones a través de atributos porque puede ver atributos en elementos de código, por ej. Detecta problemas que se pueden ver en el nivel "binario" (por así decirlo) en oposición al nivel sintáctico.

Para responder a su pregunta, StyleCop no reemplaza a FxCop, y FxCop no reemplaza a stylecop. Son dos herramientas diferentes con dos propósitos diferentes que pueden proporcionar un beneficio real para su código.

(AKA, corro con ambos. :))

Un par de ejemplos de las cosas que uno podría detectar contra las cosas que el otro podría detectar:

Las infracciones de StyleCop pueden incluir advertencias relacionadas con: espacio en blanco, formato, documentación de método público a través de xml-comments, orden de definición del método dentro de una clase.

Las infracciones de FxCop pueden incluir advertencias relacionadas con: Globalización, acoplamiento estricto, complejidad ciclomática, posibles desreferencias nulas.


Una alternativa o un buen complemento para FxCop / StyleCop sería usar la herramienta comercial NDepend . Con esta herramienta, uno puede escribir Code Rule sobre LINQ Queries (es decir, CQLinq) . Descargo de responsabilidad: soy uno de los desarrolladores de la herramienta

Se proponen por defecto más de 200 reglas de código , que incluyen diseño , arquitectura , calidad de código , evolución de código , convenciones de nomenclatura , código muerto , uso de .NET Fx ...

CQLinq está dedicado a escribir reglas de código que pueden verificarse en vivo en Visual Studio , o que pueden verificarse durante el proceso de compilación e informarse en un informe HTML / javascript .

La fuerza de CQLinq sobre FxCop o StyleCop es que es fácil escribir una regla de código y obtener resultados inmediatos . Se proponen instalaciones para buscar elementos de código coincidentes. Concretamente, esto se ve así:


stylecop funciona en tu código fuente C #. fxcop mira tu código compilado desde cualquier idioma .net.