Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Mappare le dipendenze nel codice utilizzando grafici dipendenze

Per ottenere una panoramica visiva delle dipendenze nel codice, creare grafici di dipendenze in Visual Studio Ultimate. Informazioni sui grafici di dipendenze e sulla relativa utilità

Progetti supportati

  • Progetti di Visual Basic .NET e Visual C# .NET, incluse le applicazioni Windows Store e i file di assembly (con estensione dll o exe).

  • Progetti Visual C++, incluse le applicazioni Windows Store, con codice C o C++ (gestito o nativo), file di intestazione (h o #include) e file binari.

  • Con Visual Studio 2013 Update 2 o versioni successive:

    • Progetti X++ e file di assembly creati in moduli .NET per Microsoft Dynamics AX

    • Progetti condivisi tra più applicazioni, ad esempio Windows Store e Windows Phone

Video

  • Ottenere una panoramica della soluzione: nel menu Architettura scegliere Genera grafico dipendenze, Per soluzione.

    Viene visualizzato un grafico che mostra gli assembly di livello superiore. È ora possibile esplorare questi assembly espandendoli. Spostare il puntatore del mouse sopra un assembly, quindi scegliere il pulsante con la freccia di espansione (^) quando viene visualizzato. Eseguire la stessa operazione per gli spazi dei nomi, i tipi e i membri per continuare a esplorare il codice.

    Grafico dipendenze di primo livello di assembly

    Per visualizzare le dipendenze tra gruppi, scegliere un elemento nel grafico.

    Grafico con elementi selezionati e gruppi espansi

    Per ulteriori informazioni, vedere Ottenere una panoramica della soluzione. È inoltre possibile eseguire analizzatori per trovare problemi potenziali nel codice. Vedere Trovare problemi potenziali nel codice sui grafici dipendenze.

  • Visualizzare dipendenze specifiche nella soluzione: in Esplora soluzioni selezionare gli elementi desiderati. È possibile selezionare progetti, riferimenti ad assembly, cartelle, file, tipi e membri. Per individuare un elemento specifico, utilizzare la casella di ricerca di Esplora soluzioni.

    Nella barra degli strumenti di Esplora soluzioni scegliere Crea un nuovo documento grafico.

    oppure

    Trascinare gli elementi da Esplora soluzioni in un grafico esistente.

    Suggerimento Suggerimento

    Per creare un grafico vuoto, scegliere Nuovo dal menu File, quindi File e infine Documento grafico diretto. Per includere la gerarchia padre per gli elementi, tenere premuto il tasto CTRL quando si trascinano gli elementi.

    Viene visualizzato un grafico che mostra gli elementi selezionati. È ora possibile esplorare questi elementi espandendoli. Spostare il puntatore del mouse sopra un elemento, quindi scegliere il pulsante con la freccia di espansione (^) quando viene visualizzato.

    Nota Nota

    Quando si aggiungono elementi da un progetto condiviso in più applicazioni, ad esempio Windows Phone o Windows Store, tali elementi vengono visualizzati nella mappa insieme al progetto di applicazione attivo. Se si cambia il contesto passando a un altro progetto di applicazione e si aggiungono altri elementi dal progetto condiviso, tali elementi vengono visualizzati con il nuovo progetto di applicazione attivo. Le operazioni eseguite con un elemento nella mappa si applicano solo agli elementi che condividono lo stesso contesto.

    Per ulteriori informazioni, vedere Visualizzare dipendenze specifiche nella soluzione. È inoltre possibile eseguire analizzatori per trovare problemi potenziali nel codice. Vedere Trovare problemi potenziali nel codice sui grafici dipendenze.

I grafici di dipendenze forniscono un metodo visivo per esaminare il codice e rilevarne le dipendenze senza che sia necessario esaminare i file e le righe di codice. È possibile visualizzare elementi e relazioni come nodi e collegamenti o frecce. Si supponga ad esempio di dover eseguire una revisione del codice. Si dispone di un set di file che contengono modifiche in sospeso. È possibile visualizzare il codice e le dipendenze per tali modifiche creando un grafico di dipendenze da tali file. Vedere Visualizzare le dipendenze specifiche nella soluzione.

Per impostazione predefinita, le relazioni del contenitore vengono rappresentate come gruppi, che è possibile espandere e comprimere.

Grafico di dipendenze con nodi raggruppati

Suggerimento Suggerimento

Il pulsante Recupera di nuovo figli consente di recuperare i membri del gruppo presenti nel codice ma non visualizzati nel grafico. È stato inoltre applicato uno stile diverso ai collegamenti relativi alle chiamate in modo che sia possibile visualizzarli più facilmente. Vedere Modificare e personalizzare grafici dipendenze.

È inoltre possibile visualizzare relazioni del contenitore come collegamenti. Aprire il menu di scelta rapida del grafico, scegliere Gruppo, Disabilita raggruppamento:

Grafico di dipendenze con nodi e collegamenti

È inoltre possibile eseguire analizzatori per trovare problemi potenziali nel codice. Vedere Trovare problemi potenziali nel codice sui grafici dipendenze.

Quando si genera la prima volta un grafico di dipendenze, in Visual Studio vengono indicizzate tutte le dipendenze individuate. Questo processo può richiedere tempo, in particolare per le soluzioni di grandi dimensioni o per i grafici con molti collegamenti. Tramite l'indice vengono tuttavia migliorate le prestazioni delle operazioni successive. Se il codice viene modificato, in Visual Studio viene reindirizzato solo il codice aggiornato.

Se non si desidera attendere che il grafico completi la generazione dell'indice, è possibile annullare questo passaggio in qualsiasi momento e provare con i seguenti suggerimenti:

Sebbene Visual Studio sia in grado di funzionare con 1 GB di memoria, è consigliabile che il computer disponga di almeno 2 GB di memoria per evitare lunghi ritardi quando viene creato l'indice del codice e viene generato il grafico.

Nota Nota

In Visual Studio viene generato un grafico se almeno un progetto è compilato correttamente. Vengono visualizzate solo le dipendenze relative a codice compilato correttamente. Se si verificano errori di compilazione per determinati componenti, tali errori vengono visualizzati nel grafico. Assicurarsi quindi che un componente venga effettivamente compilato e disponga di dipendenze prima di prendere decisioni a livello di architettura in base al grafico.

La creazione di grafici o l'aggiunta di elementi a un grafico da Esplora soluzioni potrebbe richiedere più tempo quando la proprietà Copia in directory di output di un elemento di progetto è impostata su Copia sempre. Ciò potrebbe causare problemi nelle compilazioni incrementali e in Visual Studio per ricompilare il progetto ogni volta. Per aumentare le prestazioni, impostare questa proprietà su Copia se più recente o su PreserveNewest. Vedere Compilazioni incrementali.

Suggerimento Suggerimento

Per generare grafici più completi per i progetti C++, l'opzione del compilatore di informazioni di visualizzazione (/FR) deve essere impostata su tali progetti. In caso contrario, viene visualizzato un messaggio con la richiesta di impostare l'opzione. Se il messaggio viene visualizzato, è possibile impostare l'opzione solo per il grafico corrente scegliendo OK oppure impostare l'opzione e nascondere il messaggio per tutti i grafici successivi. Per visualizzare il messaggio per i grafici successivi, impostare la chiave del Registro di sistema su 0 o eliminare la chiave:

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\NativeProvider : AutoEnableSbr

Vedere /FR, /Fr (Crea file sbr).

È possibile creare un grafico di dipendenze per la soluzione intera o per assembly o file binari.

Dd409453.collapse_all(it-it,VS.120).gifOttenere una panoramica della soluzione

  1. Scegliere Genera grafico dipendenze dal menu Architettura, quindi Per soluzione.

    Viene visualizzato un grafico che mostra gli assembly di primo livello e i relativi collegamenti aggregati. Lo spessore di un collegamento di aggregazione indica quante dipendenze singole rappresenta il collegamento. Il gruppo Esterni contiene qualsiasi elemento esterno alla soluzione, incluse le dipendenze della piattaforma. Gli assembly esterni mostrano solo gli elementi utilizzati.

    Grafico dipendenze di primo livello di assembly
  2. È ora possibile esplorare questi assembly espandendoli. Spostare il puntatore del mouse sopra un assembly, quindi scegliere il pulsante con la freccia di espansione (^) quando viene visualizzato. (Tastiera: selezionare l'elemento, quindi scegliere il tasto PIÙ (+)). Eseguire la stessa operazione per gli spazi dei nomi, le classi e i membri per continuare a esplorare il codice.

  3. Per ottenere ulteriori informazioni su un elemento o un collegamento, spostare il puntatore sull'elemento finché non viene visualizzata una descrizione comando.

  4. Per esaminare gli elementi e le dipendenze rappresentate da un collegamento di aggregazione, selezionare il collegamento, quindi aprire il menu di scelta rapida. Scegliere Mostra, Collegamenti partecipanti nel diagramma corrente o Collegamenti partecipanti in un nuovo diagramma.

    In Visual Studio i gruppi vengono espansi a entrambe le estremità del collegamento e vengono mostrati solo gli elementi e le dipendenze che partecipano al collegamento. Per visualizzare gli elementi presenti nel codice, ma non in un gruppo, scegliere Recupera di nuovo figli.

Vedere:

Dd409453.collapse_all(it-it,VS.120).gifOttenere una panoramica degli assembly o dei file binari

  • Creare un grafico vuoto o aprire un grafico esistente (file con estensione dgml). Dall'esterno di Visual Studio trascinare gli assembly o i file binari nel grafico.

    Nota Nota

    È possibile trascinare assembly o binari da Esplora risorse solo se Esplora risorse e Visual Studio vengono eseguiti allo stesso livello di autorizzazione del controllo di accesso utente. Se ad esempio il controllo di accesso utente è attivato e si esegue Visual Studio come amministratore, l'operazione di trascinamento verrà bloccata da Esplora risorse. Per risolvere questo problema, assicurarsi di eseguire Visual Studio come amministratore o disattivare Controllo dell'account utente. Si noti che in Windows 8, Esplora risorse è Esplora file.

    - oppure -

    1. Nel menu Architettura scegliere Finestre, Esplora architettura.

    2. Nella prima colonna, in File system scegliere Seleziona file.

    3. Nella casella Apri individuare e selezionare gli assembly o i file binari. Scegliere Apri per aggiungerli alla colonna successiva in Esplora architettura.

    4. In Esplora architettura selezionare gli assembly o i file binari.

    5. A destra della colonna che contiene gli assembly o i file binari selezionati scegliere la colonna dell'azione compressa per espanderla.

      Suggerimento Suggerimento

      La colonna dell'azione compressa viene visualizzata come evidenziata quando si sposta il puntatore in cima alla stessa.

    6. In Comandi nella colonna dell'azione scegliere Apri per generare un grafico di dipendenze.

      Vedere Trovare codice con Esplora architettura.

Dd409453.collapse_all(it-it,VS.120).gifPer creare un grafico vuoto

  1. Per aprire un nuovo grafico vuoto senza aggiungerlo alla soluzione, scegliere Nuovo dal menu File, quindi scegliere File.

    - oppure -

    Per aggiungere un grafico vuoto alla cartella Elementi di soluzione nella soluzione, aprire il menu di scelta rapida per il nodo della soluzione di primo livello. Scegliere Aggiungi, Nuovo elemento.

  2. In Installato scegliere Generale.

  3. Nel riquadro di destra scegliere Documento grafico diretto.

    Per aggiungere un grafico vuoto a un progetto di modello, scegliere Nuovo diagramma dal menu Architettura.

È possibile creare un grafico di dipendenze per elementi specifici nella soluzione o in assembly e file binari.

Visualizzare dipendenze specifiche nella soluzione

Come visualizzare codice specifico

Come visualizzare codice specifico ed elementi padre

Dd409453.collapse_all(it-it,VS.120).gif

  1. In Esplora soluzioni selezionare gli elementi che interessano. È possibile selezionare progetti, riferimenti ad assembly, cartelle, file, tipi e membri. Per individuare un elemento specifico, utilizzare la casella di ricerca di Esplora soluzioni.

    Suggerimento Suggerimento

    Per trovare elementi con dipendenze da tipi o un membri, aprire il menu di scelta rapida per il tipo o il membro in Esplora soluzioni. Scegliere il tipo di dipendenza. In Esplora soluzioni vengono visualizzati gli elementi con associata la dipendenza specificata. Selezionare i risultati.

  2. Per rappresentare graficamente gli elementi e i relativi membri, sulla barra degli strumenti di Esplora soluzioni scegliere Crea un nuovo documento grafico.

    - oppure -

    Per includere la gerarchia padre nel grafico, aprire l'elenco Crea un nuovo documento grafico sulla barra degli strumenti di Esplora soluzioni, quindi scegliere Nuovo grafico dipendenze con predecessori.

    Suggerimento Suggerimento

    È anche possibile trascinare gli elementi nel grafico. Innanzitutto, creare un grafico vuoto o aprire un grafico esistente (file con estensione dgml). Per includere la gerarchia padre del contenitore, tenere premuto il tasto CTRL quando si trascinano gli elementi.

    Viene visualizzato un grafico che mostra gli elementi selezionati.

  3. Per esplorare gli elementi, è possibile espanderli. Spostare il puntatore del mouse sopra un elemento, quindi scegliere il pulsante con la freccia di espansione (^) quando viene visualizzato. Per espandere tutti gli elementi, aprire il menu di scelta rapida del grafico. Scegliere Gruppo, Espandi tutto.

    Nota Nota

    Questo comando non è disponibile se l'espansione di tutti i gruppi genera un grafico inutilizzabile o problemi di memoria.

  4. Per recuperare gli elementi che mancano da un gruppo, scegliere Recupera di nuovo figli nel gruppo.

  5. Per visualizzare più elementi correlati a quelli sul grafico, aprire il menu di scelta rapida per l'elemento. Scegliere Mostra e la relazione tra elementi che interessa.

    Per un assembly, scegliere:

    Assembly a cui viene fatto riferimento

    Aggiungere gli assembly a cui fa riferimento questo assembly. Gli assembly esterni vengono visualizzati nel gruppo Esterni.

    Assembly di riferimento

    Aggiungere gli assembly della soluzione che fanno riferimento a questo assembly.

    Per una classe, scegliere:

    Tipi base

    Per una classe, aggiungere la classe base e le interfacce implementate.

    Per un'interfaccia, aggiungere le interfacce di base.

    Tipi derivati

    Per una classe, aggiungere le classi derivate.

    Per un'interfaccia, aggiungere le interfacce derivate e le classi o gli struct implementati.

    Tutti i tipi di base

    Aggiungere la gerarchia di interfacce o di classi base in modo ricorsivo.

    Tutti i tipi derivati

    Per una classe, aggiungere tutte le classi derivate in modo ricorsivo.

    Per un'interfaccia, aggiungere tutte le interfacce derivate e implementare classi o struct in modo ricorsivo.

    Gerarchia di contenimento

    Aggiungere la gerarchia del contenitore padre.

    Tipi utilizzati

    Aggiungere tutte le classi e i membri utilizzati.

    Tipi Used-By

    Aggiungere tutte le classi e membri che utilizzano la classe.

    Per un metodo, scegliere:

    Gerarchia di contenimento

    Aggiungere la gerarchia del contenitore padre.

    Metodi chiamati

    Aggiungere metodi chiamati dal metodo specifico.

    Chiamato da metodi

    Aggiungere metodi che chiamano il metodo specifico.

    Metodi sottoposti a override nei tipi di base

    Per un metodo che esegue l'override di altri metodi o implementa un metodo di interfaccia, aggiungere tutti i metodi astratti o virtuali nelle classi base sottoposte a override e, se disponibile, il metodo di interfaccia implementato.

    Campi a cui si fa riferimento

    Aggiungere i campi cui questo metodo fa riferimento.

    Per un campo, scegliere:

    Gerarchia di contenimento

    Aggiungere la gerarchia del contenitore padre.

    Metodi di riferimento

    Aggiungere metodi che fanno riferimento al campo.

Vedere:

Dd409453.collapse_all(it-it,VS.120).gifVisualizzare dipendenze specifiche in assembly o file binari

  1. Nel menu Architettura scegliere Finestre, Esplora architettura.

  2. Nella prima colonna, in File system scegliere Seleziona file.

  3. Nella casella Apri individuare e selezionare gli assembly o i file binari. Scegliere Apri per aggiungerli alla colonna successiva in Esplora architettura.

  4. Nella colonna successiva selezionare gli assembly o i file binari.

    Per impostazione predefinita, nella colonna successiva vengono mostrati gli elementi contenuti dagli elementi selezionati.

    Suggerimento Suggerimento

    Per selezionare gli altri elementi correlati, espandere la colonna compressa a destra della colonna contenente le selezioni. In Navigazione nodi selezionare i tipi di elementi che interessano. In Navigazione esterna o Navigazione interna selezionare i tipi di relazioni che interessano. Vedere Trovare codice con Esplora architettura.

  5. Individuare e selezionare tutti gli elementi da inserire nel grafico.

  6. Per creare un nuovo grafico, sulla barra degli strumenti di Esplora architettura scegliere Crea un nuovo documento grafico da tutti i nodi selezionati.

    Il grafico viene creato e aperto in Visual Studio.

    - oppure -

    Per aggiungere la selezione al grafico, procedere come illustrato di seguito.

    1. Aprire il file con estensione dgml di un grafico o creare un grafico vuoto.

    2. Sulla barra degli strumenti di Esplora architettura scegliere Aggiunge tutti i nodi selezionati al documento grafico attualmente visibile.

      - oppure -

      Trascinare gli elementi da Esplora architettura nel grafico.

Per visualizzare le dipendenze tra

Eseguire questa operazione

Tutti i file di origine e i file di intestazione della soluzione

Scegliere Genera grafico dipendenze dal menu Architettura, quindi Per file di inclusione.

Grafico delle dipendenze per il codice nativo

Il file attualmente aperto e i relativi file di origine e file di intestazione

  1. Aprire un file di origine o un file di intestazione.

  2. Aprire il menu di scelta rapida in un punto qualsiasi del file. Scegliere Genera grafico dei file di inclusione.

Grafico delle dipendenze di primo livello per il file con estensione h
Nota Nota

Quando si apre una soluzione che contiene progetti Visual C++, l'aggiornamento del database di IntelliSense potrebbe richiedere del tempo. Durante questo periodo potrebbe non essere possibile creare grafici di dipendenze per l'intestazione (h) o file #include finché il database IntelliSense non ha completato l'aggiornamento. È possibile monitorare lo stato di avanzamento dell'aggiornamento nella barra di stato di Visual Studio. Per risolvere problemi o messaggi visualizzati a causa della disabilitazione di alcune impostazioni di IntelliSense, vedere Risoluzione dei problemi.

Salvare e condividere il grafico con altri utenti di Visual Studio

  • Utilizzare il menu File per salvare il grafico.

    - oppure -

    Per salvare il grafico come parte del progetto specifico, aprire il menu di scelta rapida per la superficie del grafico. Scegliere Sposta <DependencyGraphName.dgml> in e il progetto in cui si desidera salvare il grafico.

    In Visual Studio il grafico viene salvato come file con estensione dgml da condividere con altri utenti di Visual Studio Ultimate, Visual Studio Premium e Visual Studio Professional.

    Nota Nota

    Prima di condividere un grafico con coloro che utilizzano Visual Studio Premium e Visual Studio Professional, verificare di espandere tutti i gruppi, visualizzare i nodi nascosti e i collegamenti tra gruppi e recuperare tutti i nodi eliminati che si desidera che vengano visualizzati da altri nel grafico. In caso contrario, altri utenti non saranno in grado di visualizzare questi elementi.

    Si potrebbe verificare il seguente errore quando si salva un grafico che è contenuto in un progetto di modello o è stato copiato da un progetto di modello a un altro percorso:

    "Impossibile salvare fileName all'esterno della directory del progetto. Gli elementi collegati non sono supportati."

    In Visual Studio viene visualizzato l'errore, ma viene comunque creata la versione salvata. Per evitare l'errore, creare il grafico all'esterno del progetto di modello. Sarà quindi possibile salvarlo quindi nel percorso desiderato. Il semplice tentativo di copiare il file in un altro percorso della soluzione e salvarlo non produrrà alcun effetto.

Esportare il grafico come immagine in modo che sia possibile copiarlo in altre applicazioni, ad esempio in Microsoft Word o PowerPoint.

  1. Aprire il menu di scelta rapida per la superficie del grafico. Scegliere Modifica, Copia immagine.

  2. Incollare l'immagine in un'altra applicazione.

Esportare il grafico come file XPS in modo che sia possibile visualizzarlo nei visualizzatori XAML o XML come Internet Explorer

  1. Aprire il menu di scelta rapida dalla superficie del grafico. Scegliere Salva come XPS.

  2. Nella finestra di dialogo Salva con nome individuare la posizione in cui si desidera salvare il file.

  3. Assegnare un nome al grafico. Assicurarsi che la casella Salva come sia impostata su File XPS (*.xps). Scegliere Salva.

È possibile generare documenti grafici (file con estensione dgml) in modalità batch tramite lo strumento da riga di comando GraphCmd.exe. È ad esempio possibile eseguire lo strumento dopo ogni compilazione per individuare le dipendenze che sono cambiate tra le compilazioni. Questo strumento è disponibile nella cartella C:\Programmi\Microsoft Visual Studio 12.0\Common7\IDE.

Nota Nota

GraphCmd.exe supporta solo il codice .NET e genera informazioni sulle dipendenze solo per assembly o file con estensione dgml e non per il codice sorgente in file di soluzione o di progetto di Visual Studio. GraphCmd.exe viene eseguito all'esterno di Visual Studio, pertanto il supporto per le azioni nelle query DGQL è limitato.

Utilizzare la sintassi seguente per GraphCmd.exe:

GraphCmd -? -all -exceptions -input File_Name -query File_Name -exec "DGQL_Statement" -output File_Name -path alias=path

Suggerimento Suggerimento

È possibile specificare le opzioni seguenti più volte: -input, -query, -exec e -path.

Nella tabella seguente vengono descritte le opzioni di GraphCmd.exe:

-?

Consente di visualizzare la guida per GraphCmd.exe.

-all

Consente di includere tutti i risultati di query intermedi, non solo per l'ultimo set di nodi.

-exceptions

Consente di segnalare le eccezioni di query come file di documento grafico, con estensione dgml.

-input File_Name

Consente di elaborare il file con estensione dgml specificato.

Si tratta di un'opzione utile per la post-elaborazione in un file con estensione dgml di grandi dimensioni e per l'applicazione di un filtro a tale file in modo da semplificarne la visualizzazione in Visual Studio.

-query File_Name

Consente di eseguire il file con estensione dgql (DGQL, Directed Graph Query Language).

Vedere:

-exec " DGQL_Statement "

Consente di eseguire l'istruzione DGQL specificata.

Vedere Informazioni su DGQL (Directed Graph Query Language).

-output File_Name

Consente di restituire come output il file con estensione dgml specificato.

-path alias = path

Consente di specificare un nuovo alias da utilizzare nell'input e nell'output dei documenti DGML.

Di seguito è riportato un esempio.

GraphCmd -output MyGeneratedGraph.dgml -path "MyPathAlias=C:\Program Files\..."

Vedere Alias per i percorsi di utilizzo comune.

Dd409453.collapse_all(it-it,VS.120).gifAlias per i percorsi di utilizzo comune

Gli alias per i percorsi di utilizzo comune consentono di ridurre le dimensioni del file con estensione dgml e il tempo necessario per caricare o salvare il file. Per creare un alias, aggiungere una sezione <Paths></Paths> alla fine del file con estensione dgml. In questa sezione aggiungere un elemento <Path/> per definire un alias per il percorso:

<Paths>
   <Path Id="MyPathAlias" Value="C:\...\..." />
</Paths>

Per fare riferimento all'alias da un elemento nel file con estensione dgml, racchiudere il valore Id dell'elemento <Path/> con un segno di dollaro ($) e parentesi (()):

<Nodes>
   <Node Id="MyNode" Reference="$(MyPathAlias)MyDocument.txt" />
</Nodes>
<Properties>
   <Property Id="Reference" Label="My Document" DataType="System.String" IsReference="True" />
</Properties>

Per modificare file con estensione dgml, vedere Modificare e personalizzare grafici dipendenze.

Dd409453.collapse_all(it-it,VS.120).gifInformazioni su DGQL (Directed Graph Query Language)

DGQL è un linguaggio di query leggero che è possibile utilizzare per compilare DGML. Un'istruzione DGQL segue un modello alternato di selezione del nodo e azioni, in modo tale che ogni selezione del nodo crea un input per l'azione successiva, il cui output diventa l'input per la selezione del nodo successiva e così via.

Il formato di un'istruzione DGQL è il seguente:

<node selection> / <action> / <node selection> / <action> / ...

Nella tabella seguente viene descritta la sintassi DGQL utilizzata per la selezione dei nodi:

*

Consente di selezionare tutti i nodi.

+ "text"

Selezionare tutti i nodi che contengono "text".

+ Id.Equals("text")

Selezionare tutti i nodi il cui Id è uguale a "text".

+ Background.Contains("text")

Selezionare tutti i nodi il cui attributo Background ha un valore che contiene la stringa "text".

+ "text1" + "text2" + ...

Selezionare tutti i nodi che corrispondono a "text1" oppure a "text2".

+ MyProperty="True"

Selezionare tutti i nodi che dispongono di una proprietà denominata MyProperty il cui valore è "True".

- Label.Contains("text")

Selezionare tutti i nodi ad eccezione di quelli che hanno un attributo Label che Contains la stringa "text".

+ Category.Is("MyCategory")

Selezionare tutti i nodi che dispongono di una categoria denominata MyCategory o che eredita da MyCategory.

Nella tabella seguente vengono descritti esempi di azioni dirette che è possibile eseguire nei nodi selezionati:

Azione di esempio

Descrizione

Microsoft.Contains

Consente di restituire tutti i nodi inclusi nei nodi di input. È possibile sostituire Contains con una categoria di collegamento diversa.

Microsoft.Open

Consente di aprire il codice sorgente per i nodi di input.

Nota Nota
Funziona solo in Visual Studio.

Microsoft.AllOutBoundLinks

Consente di restituire tutti i nodi che rappresentano la destinazione di un collegamento in uscita dai nodi di input.

Microsoft.AllInboundLinks

Consente di restituire tutti i nodi che rappresentano l'origine di un collegamento ai nodi di input.

Microsoft.Core.CreateGroupsByProperties

Consente di richiamare l'azione GroupByProperties.

Microsoft.AllNodes

Consente di restituire tutti i nodi nell'intero grafico fino al punto corrente.

Le azioni basate sui dati consentono di selezionare gli elementi solo in base ai dati nei nodi di input e nei collegamenti. Quando si associano le categorie utilizzando azioni basate sui dati, vengono incluse le categorie ereditate. Nella tabella seguente vengono descritti esempi di azioni basate sui dati:

Tipo

Descrizione

Node:Both:Category

Consente di restituire tutti i nodi che dispongono della categoria Category e che sono connessi con i nodi di input da un collegamento che punta in una delle direzioni.

Link:Both:Category

Consente di restituire tutti i nodi connessi con i nodi di input da un collegamento che punta in una delle direzioni e che dispone della categoria Category.

Link:Backward:Category

Consente di restituire tutti i nodi che puntano ai nodi di input con un collegamento che dispone della categoria Category.

Link:Forward:Category

Consente di restituire tutti i nodi che puntano dai nodi di input con un collegamento che dispone della categoria Category.

Dd409453.collapse_all(it-it,VS.120).gifSuggerimenti

  • In genere, è prevista un'azione "predefinita" per un set specifico di nodi di input, selezionata automaticamente da Esplora architettura. Per ottenere lo stesso comportamento, utilizzare un'azione vuota: //

  • Lo spazio vuoto non è significativo in DGQL, pertanto è possibile formattare la query in modo che occupi un'unica riga, se necessario. Questa operazione è utile quando si utilizza l'opzione –exec con GraphCmd.

  • Quando si esegue il debug di DGQL, utilizzare l'azione "Execute Expanded" in Esplora architettura per visualizzare ogni passaggio della query e individuare quello che non produce i risultati previsti.

Dd409453.collapse_all(it-it,VS.120).gifEsempio

L'istruzione DGQL seguente consente di eseguire una query come descritto nei passaggi seguenti:

+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
  1. Scegliere il nodo Visualizzazione classi nella prima colonna di Esplora architettura.

  2. Eseguire l'azione Microsoft.Solution.ClassView", restituendo tutti gli spazi dei nomi nella soluzione. 

  3. Utilizzare * per selezionare tutti gli spazi dei nomi.

  4. Selezionare tutti i nodi che dispongono di una categoria denominata CodeSchema_Class e sono correlati a tali spazi dei nomi da un collegamento in una delle due direzioni. Si tratta in genere di collegamenti di contenimento.

  5. Filtrare le classi risultanti per individuare solo quelle che dispongono della proprietà CodeSchemaProperty_IsPublic="True".

Tecnicamente, l'azione "Microsoft.Solution.ClassView" non è necessaria in quanto si tratta dell'azione "predefinita" per il nodo Visualizzazione classi. È pertanto possibile sostituire tale azione con // per semplificare la query e formattarla su una singola riga come illustrato di seguito:

+Id.Equals("Microsoft.Solution.ClassView")//*/"Node:Both:CodeSchema_Class"/+CodeSchemaProperty_IsPublic.Equals("True")

Gli elementi riportati di seguito non sono supportati nel codice C e C++:

  • I tipi di base non vengono visualizzati nei grafici che includono la gerarchia padre.

  • La maggior parte delle voci di menu Mostra non è disponibile per il codice C e C++.

Quando si creano grafici di dipendenze per il codice C e C++, potrebbero verificarsi i seguenti problemi:

Problema

Possibile causa

Risoluzione

Impossibile generare il grafico di dipendenze.

Nessun progetto nella soluzione è stato compilato correttamente.

Correggere gli errori di compilazione che si sono verificati, quindi rigenerare il grafico.

Quando si tenta di generare un grafico di dipendenze dal menu Architettura, Visual Studio smette di rispondere.

Il file di database del programma (con estensione pdb) potrebbe essere danneggiato.

Nel file pdb sono memorizzate informazioni di debug, ad esempio informazioni sui tipi, sui metodi e sui file di origine.

Ricompilare la soluzione e riprovare.

Alcune impostazioni per il database di esplorazione IntelliSense sono disabilitate.

Alcune impostazioni di IntelliSense potrebbero essere disabilitate nella finestra di dialogo Opzioni di Visual Studio.

Attivare le impostazioni per abilitarle.

Vedere Opzioni, Editor di testo, C/C++, Avanzate.

Il messaggio Metodi sconosciuti viene visualizzato su un nodo di metodo.

Questo problema si verifica perché non è possibile risolvere il nome del metodo.

Il file binario potrebbe non disporre di una tabella di rilocazione di base.

Attivare l'opzione /FIXED:NO nel linker.

Vedere /FIXED (Indirizzo di base fisso).

Il file di database del programma (con estensione pdb) potrebbe non essere compilato.

Nel file pdb sono memorizzate informazioni di debug, ad esempio informazioni sui tipi, sui metodi e sui file di origine.

Attivare l'opzione /DEBUG nel linker.

Vedere /DEBUG (Genera informazioni di debug).

Non è possibile aprire o trovare il file pdb nei percorsi previsti.

Verificare che il file pdb esista nei percorsi previsti.

Le informazioni di debug sono state rimosse dal file pdb.

Se nel linker è stata utilizzata l'opzione /PDBSTRIPED, includere il file pdb completo.

Vedere /PDBSTRIPPED (Rimuove simboli privati).

Il chiamante non è una funzione e non è un thunk nel file binario o un puntatore nella sezione di dati.

Quando il chiamante è un thunk, provare a utilizzare _declspec(dllimport) per evitare il thunk.

Vedere:

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft