Stylecop ha sostituito FXcop? Quale prodotto dovremmo usare con Visual Studio 2008?
Risposte:
Stylecop è uno strumento di analisi dello stile che funziona a livello di codice sorgente. Esiste principalmente per fornire un unico stile comune che i progetti gestiti possono utilizzare per rimanere coerenti nel più ampio mondo del software gestito. Prende decisioni riguardanti lo stile principalmente per evitare le guerre sante (dopo tutto, lo stile è quasi sempre una cosa intrinsecamente soggettiva). Non credo di aver mai incontrato qualcuno a cui sono piaciute tutte le regole di StyleCop, ma va bene così . Significa che StyleCop è generalmente un buon compromesso tra la vasta serie di linee guida di stile esistenti. (Se le regole di stylecop fossero altamente personalizzabili, oltre alla semplice abilitazione / disabilitazione, vanificherebbe l'intero scopo dello strumento.)
FxCop, d'altra parte, è uno strumento di analisi statica che funziona a livello di assembly gestito. Può ricevere indicazioni tramite attributi perché può vedere attributi su elementi di codice, ad es. Rileva problemi che possono essere visti a livello "binario" (per così dire) in contrapposizione a livello sintattico.
Per rispondere alla tua domanda, StyleCop non sostituisce FxCop e FxCop non sostituisce stylecop. Sono due strumenti diversi con due scopi diversi che possono entrambi fornire un reale vantaggio per il tuo codice.
(AKA, corro con entrambi. :))
Un paio di esempi di cose che uno potrebbe rilevare rispetto a cose che l'altro potrebbe rilevare:
Le violazioni di StyleCop potrebbero includere avvisi relativi a: spazi vuoti, formattazione, documentazione di metodi pubblici tramite commenti xml, ordine di definizione del metodo all'interno di una classe.
Le violazioni di FxCop potrebbero includere avvertimenti relativi a: globalizzazione, accoppiamento stretto, complessità ciclomatica, potenziali dereferenze nulle.
stylecop funziona sul tuo codice sorgente C #. fxcop esamina il codice compilato da qualsiasi linguaggio .net.
Un'alternativa o un buon complemento a FxCop / StyleCop sarebbe utilizzare lo strumento commerciale NDepend . Con questo strumento è possibile scrivere la regola del codice su query LINQ (ovvero CQLinq) . Disclaimer: sono uno degli sviluppatori dello strumento
Più di 200 le regole del codice sono proposti di default, questi includono il design , l'architettura , la qualità del codice , l'evoluzione del codice , le convenzioni di denominazione , codice morto , l'uso NET Fx ...
CQLinq è dedicato alla scrittura di regole del codice che possono essere verificate in tempo reale in Visual Studio o che possono essere verificate durante il processo di compilazione e riportate in un report HTML / javascript .
La forza di CQLinq rispetto a FxCop o StyleCop, è che è semplice scrivere una regola del codice e ottenere risultati immediati . Vengono proposte funzionalità per esplorare gli elementi del codice abbinato. In concreto questo sembra così:
FXCop esegue l'analisi statica del codice degli assembly di codice gestiti. Consideralo come trovare problemi che causeranno problemi in fase di esecuzione o che influenzeranno il modo in cui lo sviluppatore ritiene che verrà eseguito il codice (codice non raggiungibile).
StyleCop analizza la struttura del tuo codice dal punto di vista del testo. Considerali come problemi che influenzeranno la tua esperienza di sviluppo e progettazione (formattazione, convenzioni di denominazione, documentazione)
Sono entrambi strumenti MOLTO preziosi e dovresti usarli entrambi, ma si concentrano su problemi diversi.
StyleCop esegue l'analisi del codice sorgente non è molto configurabile. In realtà non fa la stessa cosa di FxCop, che analizza il codice compilato.
Gli articoli di wikipedia su questi forniscono buoni riassunti delle differenze: