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.9 answers
Ferramentas de detecção de violações de código:
-
Fxcop , excelente ferramenta da Microsoft. Verifique o cumprimento das diretrizes do framework.net.
Editar outubro de 2010: já não está disponível como download independente. Ele está agora incluído no Windows SDK e após a instalação pode ser encontrado em arquivos de programa\Microsoft SDKs\Windows\ [v7.1] \Bin\FxCop\FxCopSetup.exe
Editar fevereiro de 2018 : Esta funcionalidade já foi integrado no Visual Studio 2012 e mais tarde como Análise de código
- Clocksharp , baseado na análise de código fonte (para C# 2.0)
- Mono.Gendarme , semelhante ao Fxcop, mas com uma licença de "opensource" (baseada em Mono.Cecil)
- Smokey , semelhante ao Fxcop e ao Gendarme, à base de Mono.Cecil . Não mais em desenvolvimento, o desenvolvedor principal trabalha com a equipe Gendarme agora.
- cobertura preventiva™ para C # , produto comercial
- PRQA QA * C#, produto comercial
- PVS-Studio , produto comercial
-
CAT.NET visual studio addin que ajuda a identificar falhas de segurança
- CodeIt.Certo.
- Spec#
- Pex
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
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:
Além disso, NDepend vem com muitos outros análise estática como características. Estes incluem:
- Estimativa Inteligente Da Dívida Técnica
- Gráfico De Dependências
- Matriz De Dependência
- capacidades de diferenças de código
- NDepend.API que lhe permite escrever a sua própria ferramenta de análise estática. Com O Fim Do Mundo.conjunto nós até mesmo desenvolvemos uma ferramenta para detectar código duplicado (detalhes neste post no blog: um algoritmo Original para encontrar. net Código Duplicate ).
- 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).
Já viste CAT.NET?
Do borrão-
Usei um beta precoce e parece que encontrei algumas coisas que vale a pena ver.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.
Além da excelente lista de madgnome, eu acrescentaria um detector de código duplicado que é baseado fora da linha de comando (mas é livre):
O Klocwork tem uma ferramenta de análise estática para C#: http://www.klocwork.com
Acho que as métricas de código e matriz de estrutura de dependências são muito úteis.
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
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.