Stylecop è stato sostituito da FXcop? Quale prodotto dovremmo utilizzare con Visual Studio 2008?Stylecop vs FXcop
risposta
Stylecop è uno strumento di analisi di stile che funziona a livello di codice sorgente. Esiste principalmente per fornire un unico stile comune che i progetti gestiti possano utilizzare per rimanere coerenti all'interno del più ampio mondo del software gestito. Prende decisioni riguardanti lo stile principalmente per evitare guerre sante (dopotutto, lo stile è quasi sempre una cosa intrinsecamente soggettiva). Non credo di aver mai incontrato qualcuno a cui piacessero tutte le regole di StyleCop, ma questo è ok. Significa che StyleCop è generalmente un buon compromesso tra la vasta gamma di linee guida di stile esistenti. (Se le regole di stylecop fossero altamente personalizzabili, oltre a abilitarle/disabilitarle, vanificherebbe l'intero scopo dello strumento.)
FxCop, d'altra parte, è uno strumento di analisi statico che funziona sul livello della gestione montaggio. Può essere dato indicazioni tramite attributi perché può vedere attributi sugli elementi del codice, ad esempio. Rileva problemi che possono essere visti a livello "binario" (per così dire) rispetto al 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 vantaggio reale per il tuo codice.
(. AKA, corro con entrambi :))
Un paio di esempi delle cose che si potrebbe rilevare vs. cose l'altro potrebbe rilevare:
violazioni StyleCop potrebbero includere avvisi relativi alla : Spazio bianco, formattazione, documentazione del metodo pubblico tramite xml-commenti, ordine di definizione del metodo all'interno di una classe.
Le violazioni di FxCop possono includere avvertenze relative a: globalizzazione, accoppiamento stretto, complessità ciclomatica, potenziali dereferenze nulle.
Sì, le risposte precedenti che confrontano le due sono errate su tutti i fronti. StyleCop e FxCop eseguono due compiti molto diversi, e vale la pena indagare sul valore che ognuno fornisce sul codice base e sul perché dovresti eseguirli. – Jedidja
Accetto che non tutte le regole StyleCop sono buone, ma come dici tu quelle che non vuoi possono essere disabilitate. Stiamo usando StyleCop - dopo aver disabilitato le semplici e stupide regole ci sta dando un buon valore - a basso costo ..! Consigliato. (nota che l'abbiamo odiato a prima vista ..) – stiank81
@ stiank81: Sì, penso che _everybody_ odia StyleCop all'inizio. Dopo un po 'di tempo, però, i benefici si affermano davvero e si rivela uno strumento molto utile per mantenere la coerenza nella fonte. :) –
stylecop funziona con il codice sorgente C#. fxcop guarda il tuo codice compilato da qualsiasi lingua .net.
Quindi, se usi Stylecop, FXCop può aggiungere qualche valore? –
In realtà, è meglio usare FxCop. –
Almeno per ora, finché non diventa più configurabile. :) –
StyleCop esegue l'analisi del codice sorgente non è molto configurabile. Non fa esattamente la stessa cosa di FxCop, che analizza il codice compilato.
articoli di Wikipedia su questi forniscono buoni riassunti delle differenze:
FxCop fa analisi statica del codice di assembly di codice gestito. Pensa a questo come alla ricerca di problemi che potrebbero causare problemi in fase di esecuzione o che influenzeranno il modo in cui lo sviluppatore ritiene che il codice verrà eseguito (codice non raggiungibile).
StyleCop analizza la struttura del codice da un punto di vista del testo. Pensa a questo come a problemi che influiranno sullo sviluppo e sulla progettazione (Formattazione, convenzioni di denominazione, documentazione)
Sono entrambi strumenti MOLTO preziosi e dovresti usarli entrambi ma si concentrano su problemi diversi.
Un'alternativa o un buon complemento per FxCop/StyleCop sarebbe quello di utilizzare lo strumento commerciale NDepend.Con questo strumento è possibile scrivere Code Rule su LINQ Query(namely CQLinq). Disclaimer: io sono uno degli sviluppatori del tool
Più di 200 code rules sono proposti di default, questi includono disegno, architettura, codice di qualità, codice di evoluzione, convenzioni di denominazione, codice morto, utilizzo NET Fx ...
CQLinq è dedicato a scrivere le regole codice che può essere verified live in Visual Studio o che può essere verified during build process and reported in an HTML/javascript report.
La forza di CQLinq sopra FxCop o StyleCop, è che è semplice per scrivere una regola di codice, e ottenere immediatamente risultati. Le strutture sono proposte per sfogliare gli elementi di codice abbinati. Concretamente, è così:
dup? http://stackoverflow.com/questions/580168/visual-studio-code-analysis-vs-stylecop-fxcop –