2010-01-25 4 views
25

vedi anche VB.NET Static Code AnaylsisCosa StyleCop come strumenti ci sono per VB.NET

Nel bene e nel peggiore ora abbiamo un documento di codifica VB.NET standard che si basa su uno standard di codifica C#, come imposto dal StyleCop.

Per esempio

  • il numero di spazi si dovrebbe mettere in ogni lato di un segno “+”, ecc
  • tutte le istanze Utenti (campi e metodi!) Devono essere accesso come “me.fieldName”
  • tutti i membri condivisi devono essere accessibili come “className.fieldName”

mentre io tendo a pensare:

Se è in un documento dei requisiti che dovrebbe essere controllare da un sistema automatico

Sto cercando strumenti (idealmente gratuito) che verifica la presenza di quel breve delle norme in materia di codice VB.NET, come questi sono problemi di stile che non sono inclusi nell'output compilato, FxCop non è utile.

(Preferirei corrispondere piuttosto al fatto che verifichiamo solo elementi importanti come il codice duplicato e la singola ragionevolezza per ogni classe (quindi non più di migliaia di classi di linee!), Ma poiché è necessario attenermi al documento standard di codifica che desidero avere uno strumento per aiutarmi a fare così.)

vedi anche Enforcing using the class name whenever a shared member is accessed.

Circa la generosità.
Sto cercando un elenco di strumenti di controllo del codice VB.NET, con un breve riassunto di ciò che ogni strumento può fare e le sue limitazioni. Se gli strumenti non sono gratuiti, includi alcuni ideali di costo.


Qualcuno ha esperienza con CodeRush/Refactor! oppure ReSharper con VB.NET per verificare questo tipo di problemi di stile di codifica?

risposta

10

Non conosco nessun strumenti di analisi del codice sorgente libero con un buon supporto VB. Vi sono, tuttavia, almeno due strumenti commerciali che potrebbero essere adatti:

  1. submain CodeIt.Right
  2. SSW Code Auditor

Personalmente, preferisco il meccanismo regola di authoring CodeIt.Right, quindi vorrei favorire, se sono stati pianificati notevoli sviluppi delle regole personalizzate. Tuttavia, se si desidera utilizzare out-of-the box regole, navi Codice di revisione contabile, con un bel po 'di più le regole di stile di codice rispetto CodeIt.Right, la maggior parte di cui regole incorporate bersaglio il IL compilato (come FxCop).

+0

CodeIt.Right in realtà indirizza il codice sorgente non l'IL compilato (a differenza di FxCop) – sergeb

+0

@Serge: Scuse. La spelunking di My Reflector non è andata abbastanza in profondità - mi sono praticamente fermato quando ho visto come poche regole si sono occupate dello stile di codice "grezzo". Qualcosa che ho visto in quel momento mi ha fatto pensare che le regole che assomigliano alle regole FxCop fossero basate su un motore di ispezione IL, ma non riesco a immaginare cosa potrebbe essere stato ora che ho rivisitato gli assembly rilevanti ... Opzione –

6

Gli unici che conosco sono:

Microsoft's FxCop

Naturalmente, questo funziona solo su assembly compilati, in modo da non dare la stessa funzionalità StyleCop, e certamente non aiuterà con le cose come schemi di denominazione.

Tuttavia, la cosa più vicina è:

Aivosto's Project Analyzer v9.0 for Visual Basic, VB.NET and VBA

La versione completa non è libero, ma questa è la cosa più vicina a StyleCop per VB.NET che posso trovare.

Ci sono state numerose chiamate per una versione VB.NET di Microsoft StyleCop, come quelle in this thread nel sito code.msdn.microsoft.com. Lo stesso thread fornisce anche alcune informazioni utili sul perché non esiste una versione VB.NET.

+2

FxCop è utile per la denominazione, ma non per quanti spazi vengono utilizzati su ciascun lato di "=" –

0

C'è già uno strumento di stile molto buono incorporato nel compilatore VB. Si chiama Option Explicit On, mettilo nella parte superiore del file del codice sorgente o usa Strumenti + Opzioni + Progetto e Soluzioni + Default VB, Opzione Esplicita = Attivata. Se non è stato attivato in precedenza, potrebbe esserci una montagna di errori quando si compila il codice dopo averlo modificato.

Se è pulito o già acceso, considera di essere vicino al 95% alla scrittura di codice C# pulito e che la lingua non ha più importanza.

+3

Esplicito non inforza le convenzioni di denominazione, o tutti i membri condivisi devono essere accessibili come "className.fieldName" –

1

Io uso ReSharper su base giornaliera e trovo che sia corretto sia per la formattazione del codice sia per la risoluzione dei problemi di denominazione. Permette di configurare la modalità di denominazione deve essere applicata, come i problemi vengono visualizzati (suggerimento, suggerimento, allarme, ecc) e fornisce un formattatore di codice precisa (spazio, paranthesis, interruzioni di linea, questa qualificazione, ecc).

Nota che non so se può essere eseguito in modalità batch.

+1

in che modo funziona con VB.NET? –

+0

Ho trovato ReSharper gira troppo lentamente durante la scrittura di VB.NET per essere utile –

0

L'opzione di svolta esplicita per impostazione predefinita è sempre una buona idea e dovrebbe essere una pratica standard. Direi che dovrebbe essere attivato di default in VS out of the box. Ma non si avvicina ad applicare le regole fuori dagli schemi che StyleCop fa per C#, né ti consente di creare le tue regole.

L'intera ragione dell'esistenza di StyleCop è dovuta al fatto che FxCop funziona solo sugli assembly compilati, lasciando i progetti Web fuori al freddo per uno strumento simile. Con StyleCop, gli sviluppatori Web ottengono la stessa grande applicazione delle regole e una stretta integrazione VS. È un ottimo strumento per qualsiasi sviluppatore C#.

È sfortunato che sia solo in grado di C#, una versione VB soddisferà una grande comunità che viene lasciata volere qualcosa di simile.

+2

L'analisi che fornisce StyleCop è * molto * diverso da FxCop. StyleCop analizza lo stile del codice sorgente estetico mentre FxCop ispeziona l'albero del codice sorgente per vedere se si stanno facendo cose cattive come chiamare metodi virtuali da costruttori. Entrambi sono molto utili a pieno titolo. –