Domanda

StyleCop ha sostituito FxCop? Quale prodotto dovremmo essere utilizzare con Visual Studio 2008?

È stato utile?

Soluzione

StyleCop è uno strumento di analisi stile che funziona a livello di codice sorgente. Essa esiste principalmente per fornire un unico stile comune che gestiti i progetti possono utilizzare per rimanere coerenti all'interno del più ampio mondo del software gestito. Esso prende le decisioni in materia di stile in primo luogo per evitare guerre sante (dopo tutto, lo stile è quasi sempre una cosa intrinsecamente soggettiva). Io non credo di aver mai incontrato qualcuno che è piaciuto tutto di regole di StyleCop, ma questo è OK . Ciò significa che StyleCop è un generale buon compromesso fra la vasta serie di linee guida di stile che esistono. (Se le regole del StyleCop erano altamente personalizzabile, oltre la semplice abilitazione / disabilitazione di loro, sarebbe sconfiggere l'intero scopo dello strumento.)

FxCop, d'altro canto, è uno strumento di analisi statica che funziona a livello del gruppo gestito. Può essere somministrato tramite indicazioni attributi perché può vedere attributi su elementi di codice, per esempio .. Si rileva i problemi che possono essere visti nel livello "binario" (per così dire) rispetto al livello sintattico.

Per rispondere alla tua domanda, StyleCop non sostituiscono FxCop, e FxCop non sostituiscono StyleCop. Sono due strumenti diversi con due scopi diversi che possono sia fornire un reale beneficio per il 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 a:. Spazi bianchi, la formattazione, la documentazione Metodo pubblico tramite XML-commenti, ordine di definizione di un metodo all'interno di una classe

violazioni FxCop potrebbero includere avvertimento relativo a:. La globalizzazione, accoppiamento stretto, la complessità ciclomatica, potenziali dereferenziazioni nulli

Altri suggerimenti

StyleCop funziona sul vostro codice sorgente C #. FxCop guarda il tuo codice compilato da qualsiasi linguaggio .NET.

In alternativa o un buon complemento per FxCop / StyleCop potrebbe essere quella di utilizzare lo strumento commerciale NDepend . Con questo strumento si possono scrivere codice Regna su LINQ Query (vale a dire CQLinq) . Disclaimer: io sono uno degli sviluppatori dello strumento

regole di codice 200 vengono proposti per default, questi includono progettazione , architettura , la qualità del codice , codice evoluzione , convenzioni di denominazione , codice morto , utilizzo NET Fx ...

CQLinq è dedicato a scrivere le regole di codice che può essere verificato dal vivo in Visual Studio , o che può essere href="http://www.ndepend.com/Doc_CI_Report.aspx#CQLRule" verificato durante il processo di compilazione e riportato in un HTML / JavaScript rapporto .

La forza di CQLinq sopra FxCop o StyleCop, è che è semplice per scrivere una regola codice , e ottenere immediatamente risultati. Le strutture sono proposti per sfogliare elementi di codice abbinati. Concretamente questo sembra che:

regola code CQLinq

FxCop fa analisi statica del codice di assembly di codice gestito. Pensate a come trovare i problemi che causeranno problemi in fase di esecuzione o che interesserà come lo sviluppatore ritiene che il codice verrà eseguito (codice irraggiungibile).

StyleCop analizza la struttura di voi codice da un punto di vista del testo. Pensare a questo come questioni che interesseranno il vostro sviluppo e di esperienza di progettazione (formattazione, convenzioni di denominazione, documentazione)

Sono entrambi strumenti molto utili e si dovrebbe utilizzare sia ma lo fanno concentrarsi su diversi problemi.

StyleCop esegue l'analisi del codice sorgente non è molto configurabile. Essa in realtà non fare la stessa cosa di FxCop, che analizza il codice compilato.

Gli articoli di Wikipedia su questi forniscono buoni riassunti delle differenze:

http://en.wikipedia.org/wiki/StyleCop

http://en.wikipedia.org/wiki/FxCop

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top