Que Ferramentas de análise estática estão disponíveis para C#? [fechado]

quais as ferramentas disponíveis para a análise estática contra o código C#? Sei sobre o FxCop e o StyleCop. Há mais? Já me cruzei com a Nstática antes, mas tem estado em desenvolvimento para o que parece ser para sempre - está a parecer bastante escorregadio do pouco que vi dela, por isso seria bom se alguma vez visse a luz do dia.

[[1]] ao longo destas mesmas linhas (este é principalmente o meu interesse para a análise estática), ferramentas para testar o código para questões de multithreading (deadlocks, race condições, etc.) também parecem um pouco escassos. O piloto de Typemock acabou de aparecer, por isso vou ver isso. Alguma coisa para além disto?

As opiniões da vida real sobre as ferramentas que usou são apreciadas.

Author: Kris Erickson, 2008-09-02

9 answers

Ferramentas de detecção de violações de código:

Ferramentas Métricas De Qualidade:

  • NDepend , grande ferramenta visual. Útil para métricas de código, regras, diferenças, acoplamento e dependência estudo.
  • Nitriq , livre, pode facilmente escrever as suas próprias métricas / restrições, belas visualizações. Editar fevereiro de 2018: transferir as ligações agora mortas.
  • RSM ao quadrado , baseado na análise de código-fonte
  • C# métricas , usando uma análise completa de C#
  • SourceMonitor , uma ferramenta antiga que ocasionalmente recebe actualizações {[[23]}
  • métricas de código , a Reflector add-in
  • Vil , ferramenta antiga isso não suporta o.NET 2.0. Editar janeiro de 2018: Ligação Agora morta

A Verificar As Ferramentas De Estilo:

  • StyleCop , ferramenta Microsoft (executado a partir do interior do Visual Studio ou integrado num projecto MSBuild). Also available as an extension for Visual Studio 2015 and C#6.0
  • Agente Smith , plugin de validação de códigos para Refarper

Duplicação Detecção:

  • Simiano , baseado no código-fonte. Trabalha com muitas línguas.
  • CloneDR , detecta clones parametrizados apenas nos limites da linguagem (também lida com muitas outras línguas além de C#)
  • Detective Clone um plugin de estúdio Visual. [Ele usa ConQAT internamente]
  • Atomiq , baseado no código-fonte, muitas línguas, visualização "roda" fixe

Refactoring Geral ferramentas

 318
Author: Julien Hoarau, 2018-02-21 17:39:21

A ferramenta NDepend é citada como As ferramentas métricas de qualidade mas é também uma ferramenta de detecção de violação de código. Aviso: eu sou um dos desenvolvedores da ferramenta

Com o NDepend, pode-se escrever a Regra do Código sobre as consultas LINQ (o que chamamos de CQLinq). Mais de 200 regras de código cqlinq são propostas por defeito. A força do CQLinq é que é simples escrever uma regra de código, e obter imediatamente resultado. As instalações são propostas para navegar por elementos de código correspondentes. Por exemplo:

CQLinq code rule

Além disso, NDepend vem com muitos outros análise estática como características. Estes incluem:

 8
Author: Patrick from NDepend team, 2017-06-12 13:28:09
  • o Gendarme é um analisador estático baseado em regras de código aberto (semelhante ao FXCop, mas encontra muitos problemas diferentes).
  • O Detective Clone é um bom plug-in para o Visual Studio que encontra código duplicado.
  • Por falar em Mono, acho que o acto de compilar com o compilador Mono (se o seu código for suficientemente independente para o fazer, um objectivo que poderá querer alcançar de qualquer forma) encontra toneladas de variáveis não referenciadas e outros avisos que o Visual Studio falha completamente (mesmo com o nível de aviso definido para 4).
 2
Author: Kris Erickson, 2008-09-02 17:11:07

Já viste CAT.NET?

Do borrão-

CAT.NET é uma ferramenta binária de análise de código isso ajuda a identificar variantes comuns de certas vulnerabilidades prevalecentes isso pode dar origem a um ataque comum. Vectores como a programação transversal (XSS), Injecção de SQL e XPath Injeccao.

Usei um beta precoce e parece que encontrei algumas coisas que vale a pena ver.
 2
Author: markdevilliers, 2011-09-24 17:37:29

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

Http://sourceforge.net/projects/duplo/

 1
Author: torial, 2009-04-19 02:07:51

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

 0
Author: Alen, 2010-05-01 02:13:52

Acho que as métricas de código e matriz de estrutura de dependências são muito úteis.

 0
Author: Hamish Smith, 2011-04-13 05:47:13

A Optimyth Software acaba de lançar um serviço de análise estática na nuvem www.checkinginthecloud.com basta enviar o seu código de forma segura, executar a análise e obter os resultados. Sem chatices.

Suporta várias línguas, incluindo C# mais informações podem ser encontradas em wwww.optimyth.com

 0
Author: Javier Salado, 2011-10-07 13:22:41

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

Fornece as seguintes capacidades:

  • visualização da arquitectura do Software (incluindo dependências)
  • Aplicação das regras de Arquitectura, por exemplo, camadas, subsistemas, regras de Invocação [[9]]
  • Detecção De Clones-realce de cópia e colagem (e código modificado)
  • Detecção De Código Morto
  • Detecção De Ciclos
  • Software Metrics
  • Verificações De Códigos

Estas características podem ser executadas numa base pontual ou como parte de um processo de Integração Contínua. As questões podem ser destacadas por projeto ou por desenvolvedor quando o sistema está integrado com um sistema de controle de código fonte.

 0
Author: Mark Dalgarno, 2017-07-06 13:56:10