Respostas:
O Stylecop é uma ferramenta de análise de estilo que funciona no nível do código-fonte. Ele existe principalmente para fornecer um único estilo comum que projetos gerenciados podem usar para permanecer consistentes dentro do mundo maior de software gerenciado. Ele toma decisões com relação ao estilo principalmente para evitar guerras santas (afinal, o estilo é quase sempre uma coisa inerentemente subjetiva). Acho que nunca conheci alguém que gostou de todas as regras do StyleCop, mas tudo bem . Isso significa que o StyleCop é geralmente um bom compromisso entre o vasto conjunto de diretrizes de estilo que existe. (Se as regras do stylecop fossem altamente personalizáveis, além de simplesmente ativá-las / desativá-las, isso anularia todo o propósito da ferramenta.)
O FxCop, por outro lado, é uma ferramenta de análise estática que funciona no nível da montagem gerenciada. Ele pode receber instruções por meio de atributos porque pode ver atributos em elementos de código, por exemplo. Ele detecta problemas que podem ser vistos no nível "binário" (por assim dizer) em oposição ao nível sintático.
Para responder à sua pergunta, o StyleCop não substitui o FxCop, e o FxCop não substitui o stylecop. São duas ferramentas diferentes com duas finalidades diferentes que podem fornecer um benefício real para o seu código.
(AKA, eu corro com ambos. :))
Alguns exemplos das coisas que um pode detectar versus coisas que o outro pode detectar:
As violações de StyleCop podem incluir avisos relacionados a: espaço em branco, formatação, documentação de método público por meio de comentários xml, ordem de definição de método em uma classe.
As violações do FxCop podem incluir avisos relacionados a: Globalização, acoplamento estreito, complexidade ciclomática, potenciais desreferências nulas.
stylecop funciona em seu código-fonte C #. fxcop examina seu código compilado em qualquer linguagem .net.
Uma alternativa ou um bom complemento ao FxCop / StyleCop seria utilizar a ferramenta comercial NDepend . Com essa ferramenta, é possível escrever regras de código sobre consultas LINQ (ou seja, CQLinq) . Isenção de responsabilidade: eu sou um dos desenvolvedores da ferramenta
Mais de 200 regras de código são propostos por padrão, que incluem projeto , arquitetura , a qualidade do código , a evolução do código , convenções de nomenclatura , código morto , o uso .NET Fx ...
CQLinq é dedicado a escrever regras de código que podem ser verificadas ao vivo no Visual Studio ou que podem ser verificadas durante o processo de compilação e relatadas em um relatório HTML / javascript .
A força do CQLinq em relação ao FxCop ou StyleCop é que é simples escrever uma regra de código e obter resultados imediatamente . As instalações são propostas para navegar pelos elementos de código correspondentes. Concretamente, é assim:
FXCop faz análise de código estático de seus assemblies de código gerenciado. Pense nisso como encontrar problemas que causarão problemas em tempo de execução ou que afetarão como o desenvolvedor acredita que o código será executado (código inacessível).
O StyleCop analisa a estrutura do seu código do ponto de vista do texto. Pense nisso como problemas que afetarão seu desenvolvimento e experiência de design (formatação, convenções de nomenclatura, documentação)
Ambos são ferramentas MUITO valiosas e você deve usar os dois, mas eles se concentram em problemas diferentes.
StyleCop executa a análise do código-fonte não é muito configurável. Ele realmente não faz a mesma coisa que FxCop, que analisa o código compilado.
Os artigos da Wikipedia sobre isso fornecem bons resumos das diferenças: