Quali strumenti sono disponibili per l’analisi statica rispetto al codice C #? Conosco FxCop e StyleCop. Ce ne sono altri? Ho incontrato NStatic in passato, ma è stato in sviluppo per quello che sembra per sempre – è piuttosto carino da quel poco che ho visto, quindi sarebbe bello se potesse mai vedere la luce del giorno.
Sulla stessa linea (questo è principalmente il mio interesse per l’analisi statica), anche gli strumenti per testare il codice per problemi di multithreading (deadlock, condizioni di gara, ecc.) Sembrano un po ‘scarsi. Typemock Racer è appena spuntato, quindi lo vedrò. Qualcosa al di là di questo?
Le opinioni di vita reale sugli strumenti che hai utilizzato sono apprezzate.
Strumenti di rilevamento della violazione del codice:
Fxcop , ottimo strumento di Microsoft. Verificare la conformità con le linee guida del framework .net.
Modifica ottobre 2010: non più disponibile come download indipendente. Ora è incluso in Windows SDK e dopo l’installazione può essere trovato in Programmi \ Microsoft SDK \ Windows \ [v7.1] \ Bin \ FXCop \ FxCopSetup.exe
Modifica febbraio 2018 : questa funzionalità è stata ora integrata in Visual Studio 2012 e successivamente come analisi del codice
Strumenti metrici di qualità:
Controllo degli strumenti di stile:
Rilevamento della duplicazione:
Strumenti generali di refactoring
Lo strumento NDepend è quotato come Quality Metric Tools ma è anche uno strumento di rilevamento della violazione del codice . Disclaimer: sono uno degli sviluppatori dello strumento
Con NDepend, si può scrivere la regola del codice su LINQ Queries (ciò che chiamiamo CQLinq) . Più di 200 regole di codice CQLinq sono proposte di default. Il punto di forza di CQLinq è che è semplice scrivere una regola di codice e ottenere risultati immediati . Le strutture sono proposte per sfogliare gli elementi di codice abbinati. Per esempio:
Inoltre, NDepend viene fornito con molte altre funzioni di analisi statica . Questi includono:
Hai visto CAT.NET ?
Dal blurb –
CAT.NET è uno strumento di analisi del codice binario che consente di identificare varianti comuni di alcune vulnerabilità prevalenti che possono dare origine a comuni vettori di attacco come Cross-Site Scripting (XSS), SQL Injection e XPath Injection.
Ho usato una beta precoce e sembra che sia venuto fuori un paio di cose che vale la pena guardare.
A parte l’eccellente elenco di madgnome, aggiungerei un rilevatore di codice duplicato basato sulla linea di comando (ma è gratuito):
Klocwork ha uno strumento di analisi statica per C #: http://www.klocwork.com
Trovo molto utili i componenti aggiuntivi di Code Metrics e Dependency Structure Matrix per Reflector.
Optimyth Software ha appena lanciato un servizio di analisi statica nel cloud http://www.checkinginthecloud.com . Carica in modo sicuro il tuo codice esegui l’analisi e ottieni i risultati. Nessun problema.
Supporta diverse lingue tra cui C # maggiori informazioni possono essere trovate su wwww.optimyth.com
Axivion Bauhaus Suite è uno strumento di analisi statica che funziona con C # (così come C, C ++ e Java).
Fornisce le seguenti funzionalità:
Queste funzionalità possono essere eseguite su base una tantum o come parte di un processo di integrazione continua. I problemi possono essere evidenziati in base al progetto o per base di sviluppatori quando il sistema è integrato con un sistema di controllo del codice sorgente.