Procedura: esplorare il codice con grafici di dipendenze
In Visual Studio Ultimate è possibile utilizzare grafici di dipendenze per ottenere maggiori informazioni sull'organizzazione e sulle relazioni presenti nel codice esistente. Questi grafici rappresentano le strutture come nodi e le relazioni come collegamenti, indicati mediante frecce tra i nodi. Per generare un grafico, vedere Procedura: generare grafici di dipendenze per il codice .NET.
Nell'esempio seguente viene illustrata la modalità di rappresentazione di strutture e relazioni come nodi e collegamenti all'interno del grafico:
Nodi e collegamenti in un grafico
Nell'esempio seguente viene illustrata la modalità di rappresentazione di strutture e relazioni di contenimento come gruppi all'interno del grafico:
Nodi raggruppati in un grafico
Attenzione |
---|
In un grafico vengono visualizzate solo le dipendenze relative a codice compilato correttamente. Componenti e relativo contenuto non saranno visualizzati se per tali componenti si verificano errori di compilazione. Assicurarsi quindi che un componente venga effettivamente compilato e disponga di dipendenze prima di prendere decisioni a livello di architettura in base al grafico. |
In questo argomento
Esplorare dipendenze nel grafico
Individuare aree di complessità
Esplorare dipendenze nel grafico
Le dipendenze nel grafico sono rappresentate dai seguenti tipi di collegamenti:
Un collegamento singolo rappresenta una singola dipendenza tra due nodi.
Un collegamento di aggregazione rappresenta tutte le dipendenze rivolte nella stessa direzione tra due gruppi.
Un collegamento tra gruppi è semplicemente un collegamento tra due nodi appartenenti a gruppi diversi.
Nota
Per impostazione predefinita, nel grafico vengono illustrati collegamenti tra gruppi solo per nodi selezionati. Per visualizzare sempre questi collegamenti, sulla barra degli strumenti del grafico fare clic sull'elenco a discesa accanto al pulsante Cambia la modalità di visualizzazione dei collegamenti tra gruppi nel grafico, quindi fare clic su Mostra tutti i collegamenti tra gruppi. Se la barra degli strumenti del grafico non è visibile, scegliere Barre degli strumenti dal menu Visualizza, quindi fare clic su Grafico diretto.
Utilizzare le attività seguenti per esplorare le dipendenze che interessano:
Per |
Si seguano le seguenti istruzioni |
---|---|
Visualizzare un elenco di dipendenze rappresentate da un collegamento |
|
Trovare un nodo in base al nome Utilizzare questo metodo per effettuare la ricerca in più livelli di nodi raggruppati. |
|
Trovare l'origine o la destinazione di un collegamento Utilizzare questo metodo quando è presente un numero eccessivo di collegamenti per poter visualizzare facilmente l'origine o la destinazione di un collegamento specifico. |
|
Esaminare le dipendenze tra nodi in gruppi diversi |
|
Esaminare le dipendenze di un collegamento di aggregazione
Nota
Funziona solo quando ogni estremità del collegamento è connessa a un assembly.Se non sono presenti informazioni sull'assembly, non è possibile creare un grafico.
|
|
Individuare aree di complessità
Utilizzare un grafico di dipendenze per identificare aree di codice che possono essere migliorate. In un grafico di dipendenze ben formato verrà visualizzato un numero minimo di dipendenze. Ad esempio, è possibile:
Trovare codice con cicli o dipendenze circolari.
Esaminare queste aree per vedere se è possibile semplificarle. Considerare se è possibile interrompere questi cicli.
Trovare codice con troppe dipendenze.
Esaminare queste aree per vedere se eseguono troppe funzioni o determinare l'impatto della modifica di queste aree. Per rendere il codice più facile da gestire, modificare, testare e riutilizzare, considerare la possibilità di effettuare il refactoring di queste aree in modo da definirle più chiaramente o la possibilità di unire codice che esegua funzioni simili.
Trovare codice privo di dipendenze.
Esaminare queste aree per vedere se sono necessarie o se è opportuno rimuovere questo codice.
Per facilitare l'esecuzione di queste attività, è possibile eseguire analizzatori specifici su questi grafici. Una volta applicati, tali analizzatori rimarranno in esecuzione. Se si modifica il grafico, gli eventuali analizzatori applicati rielaboreranno automaticamente il grafico aggiornato. Per interrompere l'esecuzione di un analizzatore, fare clic con il pulsante destro del mouse sull'analizzatore desiderato nella casella Legenda, quindi scegliere Elimina.
Nota
Se si dispone di un grafico molto grande, l'esecuzione di un analizzatore potrebbe provocare un'eccezione di memoria insufficiente. In tal caso, modificare il grafico per ridurne l'ambito o generarne un più piccolo, quindi eseguire l'analizzatore.
Per individuare aree di complessità nel codice
Assicurarsi che il layout del grafico sia impostato su layout con struttura ad albero o layout con cluster rapidi.
Per ulteriori informazioni, vedere Procedura: esplorare documenti grafico e spostarsi tra di essi.
Fare clic con il pulsante destro del mouse sul grafico, scegliere Analizzatori quindi fare clic su una delle opzioni seguenti:
Analyzer
Per identificare nodi che
Riferimento circolare
Dispongono di dipendenze circolari reciproche
NotaLe dipendenze circolari nel gruppo Generics non vengono visualizzate nel grafico quando si espande il gruppo.Trova hub
Si trovano nel primo 25% dei nodi a elevata connettività
Per selezionare questi nodi e nascondere tutti gli altri nel grafico
Fare clic con il pulsante destro del mouse sul grafico, quindi scegliere Mostra selezione avanzata.
Nella casella Selezione espandere Proprietà, quindi Hub.
In Hub fare clic Vero.
Viene selezionato il primo 25% dei nodi con la più elevata connettività.
Fare clic con il pulsante destro del mouse sul grafico, scegliere Selezione, quindi fare clic su Nascondi non selezionati.
Nel grafico vengono nascosti i nodi non selezionati e i nuovi nodi vengono identificati come hub dall'analizzatore.
È inoltre possibile identificare aree ad alta densità di dipendenze passando dal layout del grafico alla visualizzazione della matrice di dipendenze. Per ulteriori informazioni sulla visualizzazione della matrice di dipendenze, vedere Procedura: esplorare documenti grafico e spostarsi tra di essi.
Nodi senza riferimenti
Non dispongono di riferimenti da altri nodi.
AttenzioneVerificare ognuno di questi casi prima di presupporre che il codice non sia utilizzato.Determinate dipendenze, ad esempio le dipendenze XAML e quelle in fase di esecuzione, non possono essere trovate in modo statico nel codice.
Vedere anche
Concetti
Procedura: generare grafici di dipendenze per il codice .NET
Altre risorse
Procedura: esplorare documenti grafico e spostarsi tra di essi