2011-02-04 16 views
5

Ho un metodo C# complesso che contiene un insieme di istruzioni if ​​che determinano i diritti di accesso per un utente.Visualizzazione di una logica del metodo C#

Sto cercando un modo per visualizzare questa logica in, per esempio, un diagramma del flusso di lavoro o qualcosa di simile.

Questo sta usando .NET 3.5 e Visual Studio 2010.

Quali sono disponibili che possono fare questo strumenti (preferibilmente liberamente disponibili)?

NB: Ho trovato molti strumenti per visualizzare le chiamate ai metodi (ad es. Gerarchia di chiamate), questo non è quello che sto cercando. Sto cercando uno strumento per visualizzare la logica.

Grazie

EDIT: Come parte della mia ricerca ho trovato Flowchart4C# ma è di $ 200 per comprare a titolo definitivo e il processo non mi permette di confermare che fa quello che voglio a! (< 5 dichiarazioni condizionali).

+0

Giusto per essere chiari, si sta guardando per uno strumento automatico giusto? –

+6

Sembra che tu possa voler rifattorizzare questo enorme metodo in modo che la parte principale sia letta come un semplice inglese. – Marco

+1

Non ci proverei. Innanzitutto, scrivere test unitari che coprano i percorsi e verificare il comportamento corrente. In secondo luogo, utilizzare strumenti automatici di refactoring per chiarire il codice estraendo metodi, ecc. – TrueWill

risposta

3
+0

Grazie a @Marco - Ho trovato le clausole di protezione più rilevanti: ho serie di compiti assegnati ai tipi di utente fluido. – Russell

+0

Domanda: Rifare la logica in metodi separati è un modo per negare la necessità di una mappa. La mia funzione è critica dal punto di vista delle prestazioni (essendo un controllo di sicurezza ogni volta che viene effettuata una richiesta Web) la suddivisione in più metodi danneggia le prestazioni? – Russell

+1

Mi piacerebbe che il compilatore ottimizzasse le chiamate di funzione. A meno che non ci sia molta copia dei dati nei parametri di passaggio, preferirei prima il codice leggibile e, se necessario, mi preoccuperei delle prestazioni. – Marco

1

Non automatico: utilizzare dia (Windows, Linux: ha modelli di diagramma di flusso) o Inkscape (Windows, Linux, Mac: grafica vettoriale).

Automatico: Refactor prima, quindi automatizzare.

+0

Grazie a @Leonidas - Sono d'accordo che Dia è un ottimo strumento gratuito.:) Sto lavorando per mapparlo automaticamente idealmente. – Russell

Problemi correlati