Condividi tramite


Creare diagrammi delle dipendenze dal codice

Per visualizzare l'architettura logica di alto livello del sistema software, creare un diagramma delle dipendenze in Visual Studio. Per assicurarsi che il codice rimanga coerente con questa progettazione, convalidare il codice con un diagramma delle dipendenze. È possibile creare diagrammi di dipendenza per progetti Visual C# e Visual Basic. Per vedere quali edizioni di Visual Studio supportano questa funzionalità, vedere Supporto dell'edizione per gli strumenti di architettura e modellazione.

Creare un diagramma delle dipendenze

Un diagramma delle dipendenze consente di organizzare gli elementi della soluzione di Visual Studio in gruppi logici e astratti denominati livelli. È possibile utilizzare i livelli per descrivere le attività principali che tali elementi eseguono oppure i componenti principali del sistema.

Ogni livello può contenere altri livelli che descrivono attività più dettagliate. È anche possibile specificare le dipendenze previste o esistenti tra i livelli. Queste dipendenze, rappresentate come frecce, mostrano i livelli che usano o possono usare la funzionalità rappresentata da altri livelli. Per gestire controllo a livello di architettura nel codice, mostrare le dipendenze desiderate nel diagramma, quindi convalidare il codice in base al diagramma.

Video: Convalidare le dipendenze dell'architettura in tempo reale

Creare un diagramma delle dipendenze

Prima di creare un diagramma delle dipendenze, assicurarsi che la soluzione abbia un progetto di modellazione.

Importante

Non aggiungere, trascinare o copiare un diagramma delle dipendenze esistente da un progetto di modellazione a un altro progetto di modellazione o in un'altra posizione nella soluzione. In questo modo i riferimenti del diagramma originale verranno mantenuti, anche se si modifica il diagramma. In caso contrario, il funzionamento della convalida dei livelli non sarà corretto e potrebbero verificarsi altri problemi, quali la mancanza di elementi o altri errori quando si tenta di aprire il diagramma.

Aggiungere invece un nuovo diagramma delle dipendenze al progetto di modellazione. copiare gli elementi dal diagramma di origine al nuovo diagramma Salvare entrambi, il progetto di modellazione e il nuovo diagramma delle dipendenze.

Aggiungere un nuovo diagramma delle dipendenze a un progetto di modellazione

Nota

I diagrammi di dipendenza per i progetti .NET Core sono supportati a partire da Visual Studio 2019 versione 16.2.

  1. Scegliere Nuovo diagramma dipendenze dal menu Architettura.

  2. In Modelli scegliere diagramma delle dipendenze.

  3. Assegnare un nome al diagramma.

  4. In Aggiungi al progetto di modellazione passare a e selezionare un progetto di modellazione esistente nella soluzione.

    oppure

    Scegliere Crea un nuovo progetto di modellazione per aggiungere un nuovo progetto di modellazione alla soluzione.

    Nota

    Il diagramma delle dipendenze deve esistere all'interno di un progetto di modellazione. È tuttavia possibile collegarlo a elementi in qualsiasi punto della soluzione.

  5. Assicurarsi di salvare entrambi, il progetto di modellazione e il diagramma delle dipendenze.

Trascinare e rilasciare, o copiare e incollare, da una mappa codice

  1. Generare una mappa codice per la soluzione usando il menu Architettura .

  2. È consigliabile applicare un filtro Mappa codice per rimuovere le cartelle delle soluzioni e "Asset di test" se si vogliono applicare solo le dipendenze nel codice prodotto.

  3. Nella mappa codice generata rimuovere il nodo "Esterno" o espanderlo per visualizzare gli assembly esterni, a seconda che si voglia applicare le dipendenze dello spazio dei nomi. Eliminare assembly non necessari dalla mappa codice.

  4. Creare un nuovo diagramma delle dipendenze per la soluzione usando il menu Architettura .

  5. Selezionare tutti i nodi nella mappa del codice (usare CTRL + A oppure usare la selezione della banda di gomma premendo MAIUSCprima di fare clic, trascinare e rilasciare).

  6. Trascinare e rilasciare o copiare e incollare gli elementi selezionati nel nuovo diagramma di convalida delle dipendenze.

  7. Viene visualizzata l'architettura dell'app corrente. Decidere cosa si vuole che l'architettura sia e modificare di conseguenza il diagramma delle dipendenze.

Diagramma delle dipendenze generato da una mappa codice

Creare livelli da artefatti

È possibile creare livelli da elementi presenti in una soluzione di Visual Studio, ad esempio progetti, file di codice, spazi dei nomi, classi e metodi. In questo modo vengono creati automaticamente collegamenti tra livelli ed elementi, che vengono inclusi nel processo di convalida dei livelli.

È possibile collegare livelli a elementi che non supportano la convalida, ad esempio documenti di Word o presentazioni di PowerPoint. In questo modo è possibile associare un livello a specifiche o piani. È anche possibile collegare livelli a file di progetti condivisi tra più applicazioni, ma il processo di convalida non includerà tali livelli, che vengano visualizzati con nomi generici come "Livello 1" e "Livello 2".

Per verificare se un elemento collegato supporta la convalida, aprire Esplora layer ed esaminare la proprietà Supports Validation dell'elemento. Vedere Gestione dei collegamenti agli artefatti.

Per seguire le operazioni di seguito riportate
Creare un livello per un solo elemento
  1. Trascinare l'elemento nel diagramma delle dipendenze da queste origini:
    Nel diagramma viene visualizzato un livello collegato all'elemento.
  2. Rinominare il livello per riflettere le responsabilità del codice o degli artefatti associati.

Importante: il trascinamento di file binari nel diagramma delle dipendenze non aggiunge automaticamente i riferimenti al progetto di modellazione. Aggiungere manualmente i file binari da convalidare al progetto di modellazione. Per aggiungere file binari al progetto di modellazione
  1. In Esplora soluzioni aprire il menu di scelta rapida per il progetto di modellazione e quindi scegliere Aggiungi elemento esistente.
  2. Nella finestra di dialogo Aggiungi elemento esistente passare ai file binari, selezionarli e quindi scegliere OK. I file binari verranno visualizzati nel progetto di modellazione.
  3. In Esplora soluzioni scegliere un file binario aggiunto e quindi premere F4 per aprire la finestra Proprietà.
  4. In ogni file binario impostare la proprietà Azione di compilazione su Validate.
Creare un solo livello per tutti gli artefatti selezionati Trascinare tutti gli artefatti nel diagramma delle dipendenze contemporaneamente.

Nel diagramma viene visualizzato un livello collegato a tutti gli elementi.
Creare un livello per ogni elemento selezionato Tenere premuto MAIUSC mentre si trascinano tutti gli artefatti nel diagramma delle dipendenze contemporaneamente.
Nota: se si usa il tasto MAIUSC per selezionare un intervallo di elementi, rilasciare la chiave dopo aver selezionato gli artefatti. Premerlo e tenerlo premuto nuovamente quando si trascinano gli elementi nel diagramma.

Per ogni elemento nel diagramma viene visualizzato un livello collegato a ciascun elemento.
Aggiungere un artefatto a un livello Trascinare l'elemento sul livello.
Creare un nuovo livello non collegato Nella casella degli strumenti espandere la sezione Diagramma delle dipendenze e quindi trascinare un livello nel diagramma delle dipendenze.

Per aggiungere più livelli, fare doppio clic sullo strumento. Al termine, scegliere lo strumento Puntatore o premere ESC.

- oppure -

Aprire il menu di scelta rapida per il diagramma delle dipendenze, scegliere Aggiungi e quindi scegliere Livello.
Creare livelli annidati Trascinare un livello esistente su un altro livello.

- oppure -

Aprire il menu di scelta rapida per un livello, scegliere Aggiungi e quindi scegliere Livello.
Creare un nuovo livello contenente due o più livelli esistenti Selezionare i livelli, aprire il menu di scelta rapida per la selezione e quindi scegliere Gruppo.
Modificare il colore di un livello Impostare la relativa proprietà Color sul colore desiderato.
Specificare che gli artefatti associati a un livello non devono appartenere agli spazi dei nomi specificati Digitare gli spazi dei nomi nella proprietà Spazi dei nomi non consentiti del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli artefatti associati a un livello non possono dipendere dagli spazi dei nomi specificati Digitare gli spazi dei nomi nella proprietà Dipendenze spazio dei nomi non consentito del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli artefatti associati a un livello non devono appartenere a uno degli spazi dei nomi specificati Digitare lo spazio dei nomi nella proprietà Required Namespaces del layer. Usare un punto e virgola (;) per separare gli spazi dei nomi.

Il numero raffigurato sul livello indica il numero di elementi a esso collegati. Tuttavia, quando si legge questo numero, tenere presente quanto segue:

  • Se un livello è collegato a un artefatto che contiene altri artefatti, ma il livello non è collegato direttamente agli altri artefatti, il numero include solo l'artefatto collegato. Tuttavia, gli altri elementi vengono inclusi per l'analisi durante la convalida dei livelli.

    Ad esempio, se un livello è collegato a un solo spazio dei nomi, il numero degli elementi collegati sarà 1, anche se lo spazio dei nomi contiene classi. Se il livello è collegato anche a ciascuna classe dello spazio dei nomi, il numero includerà le classi collegate.

  • Se un livello contiene altri livelli collegati agli artefatti, anche il livello contenitore è collegato a tali artefatti, anche se il numero nel livello contenitore non include tali artefatti.

Gestire i collegamenti tra livelli e artefatti

  1. Nel diagramma delle dipendenze aprire il menu di scelta rapida per il livello e quindi scegliere Visualizza collegamenti.

    Esplora layer mostra i collegamenti all'artefatto per il livello selezionato.

  2. Usare le seguenti attività per gestire tali collegamenti:

Per In Esplora livelli
Eliminare il collegamento tra il livello e un elemento Aprire il menu di scelta rapida per il collegamento all'artefatto e quindi scegliere Elimina.
Spostare il collegamento da un livello a un altro Trascinare il collegamento dell'elemento in un livello esistente del diagramma.

- oppure -

1. Aprire il menu di scelta rapida per il collegamento dell'artefatto e quindi scegliere Taglia.
2. Nel diagramma delle dipendenze aprire il menu di scelta rapida per il livello e quindi scegliere Incolla.
Copiare il collegamento da un livello a un altro 1. Aprire il menu di scelta rapida per il collegamento dell'artefatto e quindi scegliere Copia.
2. Nel diagramma delle dipendenze aprire il menu di scelta rapida per il livello e quindi scegliere Incolla.
Creare un nuovo livello da un collegamento dell'elemento esistente Trascinare il collegamento dell'artefatto in un'area vuota del diagramma.
Verificare che un artefatto collegato supporti la convalida rispetto al diagramma delle dipendenze. Esaminare la colonna Supporta convalida per il collegamento artefatto.

Dipendenze esistenti di reverse engineer

È presente una dipendenza quando un elemento associato a un livello dispone di un riferimento a un elemento associato a un altro livello. Ad esempio, una classe di un livello dichiara una variabile che dispone di una classe in un altro livello. È possibile decompilare dipendenze esistenti per elementi collegati a livelli nel diagramma.

Nota

Non è possibile decompilare le dipendenze per determinati tipi di artefatti. Ad esempio, non è possibile decompilare dipendenze da e verso un livello collegato a un file di testo. Per visualizzare gli elementi con dipendenze che è possibile decompilare, aprire il menu di scelta rapida per uno o più livelli e quindi scegliere Visualizza collegamenti. In Esplora layer esaminare la colonna Supporta convalida . Le dipendenze non verranno decodificate per gli artefatti per i quali questa colonna mostra False.

  • Selezionare uno o più livelli, aprire il menu di scelta rapida per un livello selezionato e quindi scegliere Genera dipendenze.

    Se vengono visualizzate alcune dipendenze che non devono esistere, è possibile modificare queste dipendenze per allinearle alla progettazione prevista.

Modificare livelli e dipendenze per visualizzare la progettazione prevista

Per descrivere le modifiche che si prevede di apportare al sistema o all'architettura desiderata, modificare il diagramma delle dipendenze:

Per Eseguire questi passaggi
Modificare o limitare la direzione di una dipendenza Impostarne la proprietà Direction .
Creare nuove dipendenze Usare gli strumenti Dipendenze e Dipendenze bidirezionali.

Per disegnare più dipendenze, fare doppio clic sullo strumento. Al termine, scegliere lo strumento Puntatore o premere ESC.
Specificare che gli artefatti associati a un livello non possono dipendere dagli spazi dei nomi specificati Digitare gli spazi dei nomi nella proprietà Dipendenze spazio dei nomi non consentito del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli elementi associati a un livello non devono appartenere agli spazi dei nomi specificati Digitare gli spazi dei nomi nella proprietà Spazi dei nomi non consentiti del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli artefatti associati a un livello non devono appartenere a uno degli spazi dei nomi specificati Digitare lo spazio dei nomi nella proprietà Required Namespaces del layer. Usare un punto e virgola (;) per separare gli spazi dei nomi.

Modificare la modalità di visualizzazione degli elementi nel diagramma

È possibile modificare la dimensione, la forma, il colore e la posizione dei livelli o il colore delle dipendenze modificandone le proprietà.

Individuare modelli e dipendenze da una mappa del codice

Durante la creazione di diagrammi di dipendenza, è anche possibile creare mappe del codice. Questi diagrammi consentono di individuare i motivi e le dipendenze durante l'esplorazione del codice. Usare Esplora soluzioni, Visualizzazione classi o Visualizzatore oggetti per esplorare assembly, spazi dei nomi e classi, che spesso corrispondono ai livelli esistenti. Per altre informazioni sulle mappe codice, vedere: