Creare diagrammi di dipendenza dal codice

Per visualizzare l'architettura logica di alto livello del sistema software, creare un diagramma dependency 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 i 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 Visual Studio elementi della soluzione in gruppi logici e astratti denominati layers. È possibile usare i livelli per descrivere le attività principali eseguite da questi artefatti o 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 mantenere il controllo dell'architettura del codice, visualizzare le dipendenze desiderate nel diagramma e quindi convalidare il codice rispetto 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 vengono mantenuti i riferimenti dal diagramma originale, anche se si modifica il diagramma. Ciò impedisce inoltre il corretto funzionamento della convalida dei livelli e potrebbe causare altri problemi, ad esempio elementi mancanti 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

Annotazioni

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

  1. Fare clic con il pulsante destro del mouse sul progetto di modellazione in Esplora soluzioni e selezionare Aggiungi>Nuovo elemento.

  2. Nella finestra Aggiungi nuovo elemento selezionare Diagramma di convalida delle dipendenze, immettere un nome per il diagramma nella parte inferiore della finestra e quindi selezionare Aggiungi.

Trascinare e rilasciare, o copiare e incollare, da una mappa del 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 "Risorse di test" se si vogliono imporre solo le dipendenze nel codice prodotto.

  3. Nella mappa codice generata, rimuovere il nodo "Esterno" o espanderlo per mostrare gli assembly esterni, a seconda se si desidera applicare le dipendenze dello spazio dei nomi. Eliminare assembly non necessari dalla Mappa del Codice.

  4. Aggiungere un elemento Diagramma di convalida delle dipendenze al progetto Convalida delle dipendenze nella soluzione.

  5. Selezionare tutti i nodi nella mappa del codice (usare CTRL + A oppure usare la selezione della banda di gomma premendo MAIUSC prima 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.

Screenshot che mostra un diagramma delle dipendenze generato da una mappa codice.

Creare livelli da artefatti

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

È possibile collegare livelli a elementi che non supportano la convalida, ad esempio Word documenti o presentazioni PowerPoint. In questo modo è possibile associare un livello a specifiche o piani. È anche possibile collegare i livelli ai file nei progetti condivisi tra più app, ma il processo di convalida non includerà tali livelli, che vengono 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.

To Seguire questa procedura
Creare un livello per un singolo artefatto
  1. Trascinare l'elemento nel diagramma delle dipendenze da queste origini:
    Viene visualizzato un livello nel diagramma ed è collegato all'artefatto.
  2. Rinominare il livello in modo da 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 vengono visualizzati nel progetto di modellazione.
  3. In Esplora soluzioni scegliere un file binario aggiunto e quindi premere F4 per aprire la finestra Properties.
  4. In ogni file binario impostare la proprietà Azione di compilazione su Validate.
Creare un singolo livello per tutti gli artefatti selezionati Trascinare tutti gli artefatti nel diagramma delle dipendenze contemporaneamente.

Viene visualizzato un livello nel diagramma ed è collegato a tutti gli artefatti.
Creare un livello per ogni artefatto 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. Tenere premuto di nuovo mentre trascinate gli artefatti sul diagramma.

Un livello per ogni artefatto viene visualizzato nel diagramma ed è collegato a ogni artefatto.
Aggiungere un artefatto a un livello Trascina l'oggetto nel 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.

o

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.

o

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 layer. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli artefatti associati a un layer non possono dipendere dagli spazi dei nomi specificati Digitare gli spazi dei nomi nella proprietà Dipendenze su spazi dei nomi vietati del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli artefatti associati a un livello devono appartenere a uno dei namespace 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 di un livello indica il numero di artefatti collegati al livello. 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 artefatti sono inclusi per l'analisi durante la convalida del livello.

    Ad esempio, se un livello è collegato a un singolo spazio dei nomi, il numero di artefatti collegati è 1, anche se lo spazio dei nomi contiene classi. Se il livello include anche collegamenti a ogni classe nello 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.

    Layer Explorer mostra i collegamenti agli artefatti per il livello selezionato.

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

To In Layer Explorer
Eliminare il collegamento tra il livello e un artefatto Aprire il menu di scelta rapida per il collegamento all'artefatto e quindi scegliere Elimina.
Spostare il collegamento da un livello a un altro Trascina il collegamento dell'artefatto su un livello esistente nel diagramma.

o

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 di artefatto esistente Trascinare il collegamento dell'artefatto a un'area vuota nel diagramma.
Verificare che un artefatto collegato supporti la convalida rispetto al diagramma delle dipendenze. Consultare la colonna Convalida supporti per il collegamento dell'artefatto.

Fare il reverse engineering delle dipendenze esistenti

Esiste una dipendenza ovunque un artefatto associato a un livello abbia un riferimento a un artefatto associato a un altro livello. Ad esempio, una classe in un livello dichiara una variabile con una classe in un altro livello. È possibile fare il reverse engineering delle dipendenze esistenti degli artefatti collegati ai livelli del diagramma.

Annotazioni

Non è possibile fare l'ingegneria inversa delle dipendenze per alcuni tipi di artefatti. Ad esempio, nessuna dipendenza verrà ingegnerizzata al contrario da o 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, esamina la colonna Convalida dei supporti. Le dipendenze non verranno analizzate inversamente 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:

To 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 layer non possono dipendere dagli spazi dei nomi specificati Digitare gli spazi dei nomi nella proprietà Dipendenze su spazi dei nomi vietati del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.
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 layer. Usare un punto e virgola (;) per separare gli spazi dei nomi.
Specificare che gli artefatti associati a un livello devono appartenere a uno dei namespace 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 le dimensioni, la forma, il colore e la posizione dei livelli o il colore delle dipendenze modificando le relative 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 modelli e 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 bene ai livelli esistenti. Per altre informazioni sulle mappe codici, vedere: