Respuestas:
Stylecop es una herramienta de análisis de estilo que funciona a nivel de código fuente. Existe principalmente para proporcionar un estilo común único que los proyectos administrados pueden utilizar 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 algo inherentemente subjetivo). No creo que haya conocido a alguien a quien le gusten todas las reglas de StyleCop, pero está bien . Significa que StyleCop es en general 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, frustraría todo el propósito de la herramienta).
FxCop, por otro lado, es una herramienta de análisis estático que funciona a nivel del ensamblaje administrado. Se le pueden dar direcciones a través de atributos porque puede ver atributos en elementos de código, por ejemplo. Detecta problemas que se pueden ver en el nivel "binario" (por así decirlo) en contraposició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.
(También conocido como, corro con ambos. :))
Un par de ejemplos de cosas que uno podría detectar frente a cosas que el otro podría detectar:
Las violaciones de StyleCop pueden incluir advertencias relacionadas con: espacios en blanco, formato, documentación de método público a través de comentarios xml, orden de definición de método dentro de una clase.
Las violaciones de FxCop pueden incluir advertencias relacionadas con: Globalización, acoplamiento estrecho, complejidad ciclomática, posibles desreferencias nulas.
stylecop funciona en su código fuente C #. fxcop mira su código compilado desde cualquier lenguaje .net.
Una alternativa o un buen complemento a FxCop / StyleCop sería utilizar la herramienta comercial NDepend . Con esta herramienta se puede escribir una regla de código sobre consultas LINQ (es decir, CQLinq) . Descargo de responsabilidad: soy uno de los desarrolladores de la herramienta
Más de 200 reglas del código son propuestos por defecto, estos incluyen el diseño , la arquitectura , la calidad del código , la evolución de código , convenciones de nombres , código muerto , el uso de .NET Fx ...
CQLinq se dedica a escribir reglas de código que se pueden verificar en vivo en Visual Studio , o que se pueden verificar durante el proceso de compilación y reportar en un informe HTML / javascript .
La fuerza de CQLinq sobre FxCop o StyleCop es que es sencillo escribir una regla de código y obtener resultados de inmediato . Se proponen instalaciones para buscar elementos de código coincidentes. Concretamente esto se ve así:
FXCop realiza análisis de código estático de sus ensamblados de código administrado. Piense en ello como encontrar problemas que causarán problemas en 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 el punto de vista del texto. Piense en esto como problemas que afectarán su experiencia de desarrollo y diseño (formato, convenciones de nomenclatura, documentación)
Ambas son herramientas MUY valiosas y debe usar ambas, pero se enfocan en diferentes problemas.
StyleCop realiza análisis de código fuente no es muy configurable. Realmente no hace lo mismo que FxCop, que analiza el código compilado.
Los artículos de Wikipedia sobre estos proporcionan buenos resúmenes de las diferencias: