Domanda

Qualcuno ha qualche esperienza di introdurre FxCop al codice legacy? Vorremmo avere la nostra generazione non riuscire se chiunque introduce codice che viola le regole. Ma per il momento, questo è impossibile, in quanto il codice legacy ha oltre 9000 violazioni.

L'unico modo per eliminare gli errori che conosco è attraverso l'attributo SuppressMessage, ma che funziona solo su metodi, e il GeneratedCodeAttribute. Quest'ultima potrebbe essere utilizzato per le classi e spazi dei nomi (se ricordo bene), ma non deve essere utilizzato per il codice non generato (vedi qui ).

In questo momento, ci prendiamo un po 'di tempo ogni giorno per rimuovere le violazioni, ma quelli nuovi continuano ad essere introdotte, perché la nostra generazione non fallirà.

Tutte le idee?

È stato utile?

Soluzione

Sono stato in una situazione simile. Ho iniziato a utilizzare FxCop su un progetto esistente di qualche tempo fa, e aveva un bel paio di errori all'inizio. Quello che ho fatto è stato quello di spegnere tutte le regole, poi girare su un gruppo alla volta, risoluzione degli errori come sono andato.

I gruppi di sicurezza e prestazioni sono un buon punto di partenza - hanno aiutato a trovare problemi non ero a conoscenza prima. Alcune delle regole sono soggettivi, e non possono applicare pienamente al progetto, se non del tutto. Ad esempio, se internazionalizzazione non è un problema, quindi lasciare il gruppo spento. Se ci sono norme specifiche che non si applicano a voi, come regole di denominazione, poi spegnerli.

Se si riesce a cancellare una serie di errori per una certa regola, è possibile impostare la costruzione di fallire se che le regole viene violata in futuro. Quindi, non nuovi errori si insinuino.

Se si tratta di un progetto di una certa dimensione, basta andare una regola alla volta, rivedere della regola per significatività / rilevanza, e sia correggere gli errori o girare la regola fuori se essa non si applica.

Altri suggerimenti

Inizia chiedendo questo: Siete disposti e in grado di modificare il codice legacy per conformarsi alle regole FxCop? O, per dirla in modo diverso:? E 'questo il modo migliore per trascorrere il vostro tempo

Se si è disposti a spendere tempo e fatica, avviare con la scelta della piccola manciata di regole a trovare più importante per la qualità complessiva e implementare quelli. Se questo è utile è possibile aggiungere alcune regole, correggere il codice e così via.

Nella mia esperienza non c'è nessun grande approccio bang per le norme di attuazione FxCop e simili. L'unico modo possibile è quello di prendere piccoli pezzi alla volta.

È possibile aggiungere eccezioni per i vecchi violazioni in un progetto FxCop. In questo modo non sarà necessario aggiungere tutti gli attributi per il codice esistente, e si otterrà avvertimenti su tutte le nuove violazioni.

Per fare questo creare un progetto nella GUI FxCop, analisi correre con le regole, quindi nei risultati Visualizza Selezionare violazione si desidera ignorare per ora. Tasto destro del mouse e scegliere "Escludi". avvertenze selezionate si sposteranno a "esclusi nel progetto" scheda. Quando si è pronti a tornare e correggerli, selezionare e fare clic su "Segna come attiva".

Queste esclusioni sono memorizzate nel file .FxCop.

Ancora, mi consiglia di introdurre regole a poco a poco, per smussare la curva di apprendimento per tutti.

Come circa il seguente approccio:

  1. Esegui FxCop con tutte le norme in materia che sono rilevanti per il progetto
  2. Salvare i risultati come una linea di base
  3. Sviluppare nuovo codice
  4. Esegui FxCop
  5. Rimuovi tutti i risultati dalla linea di base

questo si tradurrà sui controlli FxCop sul nuovo codice ....

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