Pergunta

Quais ferramentas estão lá, disponíveis para análise estática contra o código do C#?O que eu sei sobre o FxCop e StyleCop.Há outros?Eu tenho NStatic antes, mas que está em desenvolvimento para o que parece uma eternidade - ele está olhando muito liso do pouco que eu vi, então seria legal se ele nunca iria ver a luz do dia.

Nessa mesma linha (isto é, principalmente, o meu interesse para a análise estática), ferramentas para testes de código para problemas de multithreading (deadlocks, condições de corrida, etc.) também parecem um pouco escassos.Typemock Racer só apareceu então eu vou estar olhando.Qualquer coisa além disso?

Na vida Real, as opiniões sobre as ferramentas que você usou são apreciados.

Foi útil?

Solução

Violação do código de Ferramentas de detecção:

  • O Fxcop, excelente ferramenta pela Microsoft.Verificar o cumprimento .net framework diretrizes.

    Edição De Outubro De 2010: Não está mais disponível como um autônomo de download.Ele agora está incluído no O Windows SDK e depois da instalação podem ser encontradas em Arquivos de Programa\Microsoft SDKs\Windows\ [v7.1] \Bin\FXCop\FxCopSetup.exe

    Edição De Fevereiro De 2018:Esta funcionalidade foi integrada no Visual Studio 2012 e, mais tarde, como Análise De Código

  • Clocksharp, baseado no código fonte de análise (para o C# 2.0)
  • Mono.Policial, semelhante para o Fxcop, mas com uma licença opensource (com base no Mono.Cecil)
  • Smokey, semelhante para o Fxcop e Policial, com base no Mono.Cecil.Não está mais em desenvolvimento, o principal desenvolvedor trabalha com Gendarme equipe agora.
  • Coverity Evitar™ para C#, comercial do produto
  • PRQA QA·C#, comercial do produto
  • PVS-Studio, comercial do produto
  • CAT.NET , visual studio suplemento que ajuda a identificação de falhas de segurança
  • CodeIt.Direito
  • Spec#
  • Pex

Qualidade Métrica De Ferramentas:

  • NDepend, grande ferramenta visual.Útil para métricas de código, regras, diff, o acoplamento e a dependência de estudos.
  • Nitriq, de higiene, pode facilmente gravar suas próprias métricas/restrições, bons efeitos visuais. Edição De Fevereiro De 2018: links para download, agora, mortos.
  • RSM ao Quadrado, baseado no código fonte de análise
  • C# Métricas, usando uma completa análise do C#
  • SourceMonitor, uma ferramenta antiga que, ocasionalmente, recebe atualizações
  • Métricas De Código, um Refletor suplemento
  • Vil, ferramenta de idade que não suporta .NET 2.0. Edição De Janeiro De 2018: Link morto agora

Verificação De Estilo De Ferramentas:

  • StyleCop, Ferramenta da Microsoft ( executado a partir de dentro do Visual Studio ou integrado a um projeto de MSBuild).Também disponível como uma extensão para o Visual Studio 2015 e C#6.0
  • Agente Smith, estilo do código de validação do plugin para ReSharper

Detecção De Duplicação:

  • Símia, baseado no código-fonte.Funciona com muitos idiomas.
  • CloneDR, detecta com parâmetros de clones apenas no idioma limites (também lida com muitos outros idiomas que não o C#)
  • Clone Detective o Visual Studio plugin.(Ele usa ConQAT internamente)
  • Atomiq, baseado no código-fonte, a abundância de línguas, legal "roda" visualização

Geral de ferramentas de Refatoração

  • ReSharper - Majoritariamente legal C# análise de código e de refatoração de recursos

Outras dicas

A ferramenta NDepend é citado como Qualidade Métrica De Ferramentas mas ele é muito bonito também Violação do código de detecção de ferramenta. Isenção de responsabilidade:Eu sou um dos desenvolvedores da ferramenta

Com NDepend, pode-se escrever Regra de código através de Consultas LINQ (que chamamos de CQLinq).Mais de 200 CQLinq regras do código são propostas por padrão.A força de CQLinq é que é muito simples escrever uma regra de código de, e chegar imediatamente resultados.As instalações são propostas para navegar de correspondência de elementos de código.Por exemplo:

CQLinq code rule

Além de que, NDepend vem com muitos outros análise estática como recursos.Estes incluem:

  • Policial é uma fonte aberta baseados em regras estáticas analyzer (semelhante para o FXCop, mas encontra um monte de problemas diferentes).
  • Clone Detective é um ótimo plug-in para o Visual Studio que encontra o código duplicado.
  • Falando também de Mono, acho que o ato de compilar com o Mono compilador (se o seu código é independente de plataforma o suficiente para fazer isso, um objetivo que você pode querer se esforçar para qualquer jeito) encontra toneladas de não referenciados variáveis e outros Avisos de que o Visual Studio deixa de lado (mesmo com o aviso de nível de conjunto de 4).

Você tem visto CAT.NET?

A partir da sinopse -

CAT.NET é uma ferramenta de análise de código binário que ajuda a identificar variantes comuns de certos predominante vulnerabilidades que podem dar origem a ataques comuns vetores, tais como Cross-Site Scripting (XSS), SQL Injection e XPath Injeção.

Eu usei uma versão beta e pareceu transformar-se algumas coisas que vale a pena olhar.

Além da excelente lista de madgnome, eu gostaria de acrescentar um código duplicado detector, que é baseado fora de linha de comando (mas é gratuito):

http://sourceforge.net/projects/duplo/

Klocwork tem uma ferramenta de análise estática para C#: http://www.klocwork.com

Eu acho o Métricas De Código e Estrutura De Dependência De Matriz add-ins para o Refletor muito útil.

Optimyth Software acaba de lançar uma análise estática do serviço em nuvem www.checkinginthecloud.com.Apenas segura de carregar seu código de executar a análise e obter os resultados.Sem aborrecimentos.

Ele suporta várias linguagens, incluindo C# mais informações podem ser encontradas em wwww.optimyth.com

Axivion Bauhaus Suite é uma ferramenta de análise estática que funciona com C# (assim como C, C++ e Java).

Ele oferece os seguintes recursos:

  • Arquitetura de Software de Visualização (incluindo dependências)
  • Execução de arquitectura e.g. regrascamadas, subsistemas, chamando regras
  • Clone de Detecção de realce de copiar e colar (e código modificado)
  • Morto Código De Detecção De
  • Ciclo De Detecção
  • Métricas De Software
  • Código De Verificações De Estilo

Esses recursos podem ser executados em uma base individual ou como parte de um Contínuo processo de Integração.Questões podem ser destacadas em uma base por projecto ou por desenvolvedor quando o sistema está integrado com o controle de código fonte do sistema.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top