Condividi tramite


Diagrammi livello: linee guida

In Visual Studio Ultimate è possibile descrivere l'architettura dell'applicazione ad alto livello creando diagrammi livello. Per assicurarsi che il codice rimanga coerente con la progettazione, convalidare il codice con un diagramma livello in Visual Studio Ultimate o Visual Studio Premium. È anche possibile includere la convalida dei livelli nel processo di compilazione. Vedere il video di Channel 9 su come progettare e convalidare l'architettura con i diagrammi livello

Informazioni sul diagramma livello

Analogamente a un diagramma architettura tradizionale, un diagramma livello identifica i componenti principali o le unità funzionali della progettazione e le relative interdipendenze. Ogni nodo del diagramma, denominato livello, rappresenta un gruppo logico di spazi dei nomi, progetti o altri elementi. È possibile tracciare le dipendenze che devono esistere nella progettazione. A differenza di un diagramma architettura tradizionale, è possibile verificare che le dipendenze effettive nel codice sorgente siano conformi alle dipendenze desiderate specificate. Includendo la convalida nel normale processo di compilazione in Team Foundation Server, sarà possibile assicurare che il codice programma continui ad essere coerente con l'architettura del sistema anche in caso di modifiche future. Vedere Diagrammi livello: riferimento.

Come progettare o aggiornare l'applicazione con diagrammi livello

I passaggi seguenti offrono una panoramica di come usare i diagrammi livello nel processo di sviluppo. Le sezioni successive in questo argomento descrivono in modo più dettagliato ogni passaggio. Se si sviluppa una nuova progettazione, omettere i passaggi relativi al codice esistente.

Nota

I passaggi sono visualizzati in ordine approssimativo.Potrebbe essere necessario sovrapporre alcune attività, riordinarle per adattarle alla situazione specifica ed eseguirle di nuovo all'inizio di ogni iterazione nel progetto.

  1. Creare un diagramma livello per l'intera applicazione o per un livello nell'applicazione.

  2. Definire livelli per rappresentare aree funzionali primarie o componenti dell'applicazione. Assegnare a questi livelli nomi conformi alla relativa funzione, ad esempio "Presentazione" o "Servizi". Se è disponibile una soluzione Visual Studio, sarà possibile associare ogni livello a una raccolta di elementi, ad esempio progetti, spazi dei nomi, file e così via.

  3. Individuare le dipendenze esistenti tra livelli.

  4. Modificare i livelli e le dipendenze per visualizzare la progettazione aggiornata che si vuole rispecchiare nel codice.

  5. Progettare nuove aree dell'applicazione tramite la creazione di livelli per rappresentare i blocchi di architettura principali o i componenti e tramite la definizione di dipendenze per mostrare in che modo ogni livello usa gli altri livelli.

  6. Modificare il layout e l'aspetto del diagramma per semplificarne l'analisi con i colleghi.

  7. Convalidare il codice rispetto al diagramma livello, per evidenziare i conflitti tra il codice e l'architettura necessaria.

  8. Aggiornare il codice per conformità alla nuova architettura. Sviluppare in modo iterativo ed effettuare il refactoring del codice fino a ottenere una convalida senza conflitti.

  9. Includere la convalida dei livelli nel processo di compilazione per assicurare che il codice sia sempre conforme alla progettazione.

Creare un diagramma livello

Un diagramma livello deve essere creato in un progetto di modello. È possibile aggiungere un nuovo diagramma livello a un progetto di modello esistente, creare un nuovo progetto di modello per il diagramma livello oppure copiare un diagramma livello esistente nello stesso progetto di modello.

Importante

Non aggiungere, trascinare o copiare alcun diagramma livello esistente da un progetto di modello a un altro né a un altro percorso nella soluzione.Un diagramma livello copiato in questo modo includerà gli stessi riferimenti del diagramma originale, anche se si modifica il diagramma.Ciò impedirà il corretto funzionamento della convalida dei livelli e potrebbe provocare altri problemi, ad esempio la mancanza di elementi o altri errori durante il tentativo di apertura del diagramma.

Vedere Creare diagrammi livello dal codice.

Definire i livelli per rappresentare aree funzionali o componenti

I livelli rappresentano gruppi logici di elementi, ad esempio progetti, file di codice, spazi dei nomi, classi e metodi. È possibile creare livelli da elementi da progetti Visual C# .NET e Visual Basic .NET oppure collegare specifiche o piani a un livello collegando documenti, quali file di Word o presentazioni di PowerPoint. Ogni livello viene visualizzato come un rettangolo nel diagramma e viene indicato il numero di elementi collegati a ogni livello. Un livello può contenere livelli annidati che descrivono attività più specifiche.

È in genere consigliabile assegnare a questi livelli nomi conformi alla relativa funzione, ad esempio "Presentazione" o "Servizi". Se gli elementi sono strettamente interdipendenti, posizionarli nello stesso livello. Se gli elementi possono essere aggiornati separatamente o possono essere usati in applicazioni distinte, posizionarli in livelli diversi. Per informazioni sui modelli di livello, visitare il sito Modelli e procedure all'indirizzo https://go.microsoft.com/fwlink/?LinkId=145794.

Suggerimento

Alcuni tipi di elementi possono essere collegati ai livelli ma non supportano la convalida rispetto al diagramma livello.Per verificare se gli elementi supportano la convalida, aprire Esplora livello per esaminare la proprietà Convalida supporti del collegamento dell'elemento.Vedere Individuare le dipendenze esistenti tra livelli.

Quando si aggiorna un'applicazione poco nota, è consigliabile usare i grafici di dipendenza per semplificare la visualizzazione e la comprensione del codice. Questi grafici permettono di individuare cluster e dipendenze nel codice. È inoltre possibile usare Esplora architettura per esplorare spazi dei nomi e classi, che spesso corrispondono correttamente ai livelli esistenti. Ciò può semplificare l'assegnazione di elementi ai livelli. È quindi possibile usare diagrammi livello per aggiornare il codice.

Per altre informazioni, vedere i seguenti argomenti:

Individuare le dipendenze esistenti tra livelli

È 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. Per individuare le dipendenze esistenti, è possibile decompilarle.

Nota

Non è possibile decompilare dipendenze per determinati tipi di elementi.Ad esempio, non è possibile decompilare dipendenze da e verso un livello collegato a un file di testo.Per verificare quali elementi sono associati a dipendenze che possono essere decompilate , fare clic con il pulsante destro del mouse su uno o più livelli, quindi scegliere Visualizza collegamenti.In Esplora livello esaminare la colonna Supporta la convalida.Le dipendenze non verranno decompilate per elementi per i quali in questa colonna è indicato False.

Per decompilare le dipendenze esistenti tra i livelli

  • Selezionare un livello o più livelli, fare clic con il pulsante destro del mouse su un livello selezionato, quindi scegliere Genera dipendenze.

In genere vengono visualizzate alcune dipendenze che non dovrebbero esistere. È possibile modificare queste dipendenze per allinearle con la progettazione desiderata.

Modificare livelli e dipendenze per visualizzare la progettazione desiderata

Per descrivere le modifiche da apportare al sistema o all'architettura desiderata, eseguire i passaggi seguenti per modificare il diagramma livello. È anche possibile prendere in considerazione alcune modifiche relative al refactoring per migliorare la struttura del codice prima di estenderlo. Vedere Migliorare la struttura del codice.

Per

Eseguire questi passaggi

Eliminare una dipendenza che non dovrebbe essere presente

Fare clic sulla dipendenza, quindi premere CANC.

Modificare o limitare la direzione di una dipendenza

Impostare la proprietà Direzione.

Creare nuove dipendenze

Usare gli strumenti Dipendenza e Dipendenza bidirezionale.

Per disegnare più dipendenze, fare doppio clic sullo strumento. Al termine, fare clic sullo strumento Puntatore o premere ESC.

Specificare che gli elementi associati a un livello non possono dipendere dagli spazi dei nomi specificati

Digitare gli spazi dei nomi nella proprietà Forbidden Namespace Dependencies 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à Forbidden Namespaces del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.

Specificare che gli elementi associati a un livello non devono appartenere a uno degli spazi dei nomi specificati

Digitare lo spazio dei nomi nella proprietà Required Namespaces del livello. Usare un punto e virgola (;) per separare gli spazi dei nomi.

Miglioramento della struttura del codice

Le modifiche relative al refactoring sono miglioramenti che non influiscono sul comportamento dell'applicazione, ma contribuiscono a rendere il codice più semplice da modificare ed estendere nel futuro. Il codice ben strutturato è progettato in modo da facilitarne l'astrazione in un diagramma livello.

Ad esempio, se si crea un livello per ogni spazio dei nomi nel codice e quindi si decompilano le dipendenze, dovrebbe essere presente un insieme minimo di dipendenze unidirezionali tra i livelli. Se si crea un diagramma più dettagliato usando classi o metodi come livelli, il risultato dovrebbe avere le stesse caratteristiche.

In caso contrario, la modifica del codice risulterà più difficile e il codice sarà meno idoneo alla convalida tramite i diagrammi livello.

Progettare nuove aree dell'applicazione

Quando si inizia a sviluppare un nuovo progetto o una nuova area in un nuovo progetto, è possibile tracciare livelli e dipendenze per semplificare l'identificazione dei componenti principali prima di iniziare a sviluppare il codice.

  • Mostrare i modelli di architettura identificabili nel diagramma livello, se possibile. Ad esempio, un diagramma livello che descrive un'applicazione desktop può includere livelli quali Presentazione, Logica di dominio e Archivio dati. Un diagramma livello che riguarda una singola funzionalità in un'applicazione può includere livelli quali Modello, Visualizzazione e Controller. Per altre informazioni su questi modelli, vedere Modelli e procedure: architettura dell'applicazione.

    Se si creano spesso modelli di questo tipo, creare uno strumento personalizzato. Vedere Procedura: definire un elemento personalizzato della Casella degli strumenti di modellazione.

  • Creare un elemento di codice per ogni livello, ad esempio per ogni spazio dei nomi, classe o componente. In questo modo sarà più semplice seguire il codice e collegare gli elementi di codice ai livelli. Non appena si crea ogni elemento, collegarlo al livello appropriato.

  • Non è necessario collegare la maggior parte delle classi e altri elementi ai livelli, poiché si trovano in elementi più grandi quali spazi dei nomi che sono già stati collegati ai livelli.

  • Creare un nuovo diagramma per una nuova funzionalità. In genere, saranno presenti uno o più diagrammi livello che descrivono l'intera applicazione. Se si progetta una nuova funzionalità nell'applicazione, non apportare aggiunte o modifiche ai diagrammi esistenti. Creare invece un diagramma personalizzato che rispecchia nuove parti del codice. I livelli nel nuovo diagramma possono includere livelli relativi a presentazione, logica di dominio e database per la nuova funzionalità.

    Quando si compila l'applicazione, il codice verrà convalidato rispetto al diagramma complessivo e al diagramma più dettagliato relativo alle funzionalità.

Modificare il layout per la presentazione e la discussione

Per semplificare l'identificazione di livelli e dipendenze o per esaminarli con i membri del team, modificare l'aspetto e il layout del diagramma nei modi seguenti:

  • Modificare le dimensioni, le forme e le posizioni dei livelli.

  • Cambiare i colori dei livelli e le dipendenze.

    • Selezionare uno o più livelli o dipendenze, fare clic con il pulsante destro del mouse e quindi scegliere Proprietà. Nella finestra Proprietà modificare la proprietà Colore.

Convalidare il codice rispetto al diagramma

Dopo avere modificato il diagramma, sarà possibile convalidarlo manualmente rispetto al codice in qualsiasi momento oppure automaticamente ogni volta che si esegue una compilazione locale o Team Foundation Build. 

Vedere:

Aggiornare il codice per conformità alla nuova architettura

In genere, alla prima convalida del codice rispetto a un diagramma livello aggiornato vengono visualizzati errori. Gli errori possono avere cause diverse:

  • Un elemento viene assegnato al livello errato. In questo caso, spostare l'elemento.

  • Un elemento, ad esempio una classe, usa un'altra classe in un modo che causa conflitti con l'architettura. In questo caso, eseguire il refactoring del codice per rimuovere la dipendenza.

Per risolvere gli errori, aggiornare il codice finché non verranno più visualizzati errori di convalida. Si tratta in genere di un processo iterativo. Per altre informazioni su questi errori, vedere Convalidare il codice con diagrammi livello.

Nota

Quando si sviluppa codice o se ne effettua il refactoring, è possibile che siano presenti nuovi elementi da collegare al diagramma livello.È tuttavia possibile che ciò non sia necessario, ad esempio se sono presenti livelli che rappresentano spazi dei nomi esistenti e il nuovo codice aggiunge altri elementi a questi spazi dei nomi.

Durante il processo di sviluppo, potrebbe essere necessario eliminare alcuni conflitti segnalati durante la convalida. Ad esempio, è possibile eliminare gli errori che sono già stati corretti o che non sono attinenti allo scenario in questione. Quando si elimina un errore, è buona norma registrare un elemento di lavoro in Team Foundation. Per eseguire questa attività, vedere Convalidare il codice con diagrammi livello.

Includere la convalida dei livelli nel processo di compilazione

Per assicurare che eventuali modifiche future al codice siano conformi ai diagrammi livello, includere la convalida dei livelli nel processo di compilazione standard della soluzione. Quando altri membri del team compilano la soluzione, eventuali differenze tra le dipendenze nel codice e il diagramma livello verranno segnalate come errori di compilazione. Per altre informazioni sull'inclusione della convalida dei livelli nel processo di compilazione, vedere Convalidare il codice con diagrammi livello.

Vedere anche

Concetti

Diagrammi livello: riferimento

Creare diagrammi livello dal codice