Mapowanie zależności w kodzie na wykresach zależności

Aby zrozumieć zależności między kodu, należy zmapować je za pomocą programu Visual Studio Ultimate.Rozumienie zależności między wszystkie kodu, należy wizualizacja je przez utworzenie mapy kodu (programu Visual Studio Ultimate tylko).Dzięki temu można zobaczyć, jak kod dostosowane do razem bez czytania w systemie plików, wierszach kodu.

Wyświetl wykres z wybrane elementy i rozszerzonych grupy

Oto niektóre filmy wideo:

Oto, co jest potrzebne:

  • Programu visual Studio Ultimate 2013

  • Program Visual C# .NET i Visual Basic .NET kodu w rozwiązania lub zestawy (.dll i .exe)

  • Macierzystego lub zarządzanych kodu C lub C++ w Visual C++ projektów, pliki nagłówków (.h lub #include), oraz pliki binarne

  • Programu visual Studio 2013 Update 3 do mapowania zależności w:

    • Projekty, które korzystają ze wspólnego kodu w wielu aplikacjach

    • X ++ projektów i zestawy utworzoną na podstawie modułów .NET dla programu Microsoft Dynamics AX

    Można również przeciągnij zestawy oraz pliki binarne z Eksploratora systemu Windows do istniejącego wykresu i uzyskać kolorami relacji.

Rozpocznij tutaj:

  • Aby wyświetlić ogólną zależności w rozwiązaniu, przejdź do architektury menu.Kliknij przycisk generowania wykresu zależności, dla rozwiązania.

    - lub -

  • Aby wyświetlić określonych zależności w rozwiązaniu, otwórz Eksploratora rozwiązań.Wybierz projekty odwołuje się do zestawu, folderów, plików, typy lub elementów członkowskich, które Cię interesują.Na Eksploratora rozwiązań narzędzi, kliknij przycisk utworzyć nowy wykres dokumentUtwórz nowy wykres z wybranych węzłów przycisk.

Możesz także:

  • Zobacz zależności między plikami źródłowymi C lub C++ i plikami nagłówka

  • Wykresy zależności udziału

  • Programistyczne tworzenie wykresów

Zobacz ogólną zależności

Zobacz zależności między rozwiązania

  1. Na architektury menu, kliknij przycisk generowania wykresu zależności, dla rozwiązania.

    Otrzymujemy wykres pokazujący zespoły najwyższego poziomu i zagregowane łącza między nimi.Szerszej łącze zagregowane, więcej zależności reprezentuje.Grupa Zewnętrzne zawiera wszystko to, co nie należy do rozwiązania, w tym zależności platformy.Zestawy zewnętrzne pokazują tylko te elementy, które są używane.

    Wykres zależności najwyższego poziomu zestawów

  2. Aby wyświetlić wewnątrz zestawu, rozwiń go.Przenieś wskaźnik myszy u góry zestawu, a następnie kliknij ikonę strzałki (^) kiedy wyświetli się.(Klawiatura: Wybierz element, naciśnij klawisz oraz klucz (+).) Aby poznać więcej poziomów kodu, egzekwowanie obszary nazw, typy i elementy członkowskie.

    Wykres zależności za pomocą zgrupowane węzłów

    Domyślnie relacje zawierania są wyświetlane jako grup, które można rozwinąć i zwinąć.Aby zobaczyć relacje grupy jako łącza w menu skrótów wykresu, kliknij przycisk grupy, włączyć grupowanie.

    Wykres zależności za pomocą węzły i łącza

  3. Aby sprawdzić elementy i zależności reprezentowane przez łącze zagregowane, najpierw zaznacz łącze, a następnie otwórz jego menu skrótów.Kliknij przycisk Pokaż, zamieszczania łącza w bieżącym diagramie lub zamieszczania łącza w nowy diagram.

    Program Visual Studio rozwija grupy na obu końcach połączenia i pokazuje tylko te elementy i zależności, które w nim uczestniczą.

  4. Aby uzyskać więcej informacji dotyczących łącza lub elementu, umieść kursor na elemencie, aż pojawi się etykietka narzędzia.Pokazuje kategorie, że reprezentuje łącze.

  5. Aby zobaczyć, co kolor łącza znaczy, na pasku narzędzi wykresu, kliknij przycisk legendę.

    Jeśli zobaczysz łącze zielony, nie może oznaczać jest po prostu relacji dziedziczenia.Może również być wywołania metody, ale są one ukryte przez relacji dziedziczenia.

  6. Aby wyświetlić zależności między elementami członkowskimi różnych grup, kliknij element na wykresie.

    Wyświetl wykres z wybrane elementy i rozszerzonych grupy

  7. Znalezienie potencjalnych problemów w kodzie, uruchamiać analizator.

Zobacz:

Zobacz zależności między zestawy oraz pliki binarne

  • Utwórz pusty wykres lub otwórz istniejący wykres (plik .dgml).Spoza programu Visual Studio przeciągnij zestawy lub pliki binarne do wykresu.

    [!UWAGA]

    Można przeciągać zestawy lub pliki binarne z Eksploratora Windows tylko wtedy, gdy pracuje się w programach Eksplorator Windows i Visual Studio z takim samym poziomem uprawnień User Access Control (UAC).Jeśli na przykład jest włączona funkcja Kontrola konta użytkownika i program Visual Studio jest uruchomiony przy użyciu konta Administrator, Eksplorator Windows zablokuje operację przeciągania.Aby obejść ten problem, upewnij się, że uruchomiony program Visual Studio działa jako Administrator lub wyłącz funkcję Kontrola konta użytkownika.Należy zauważyć, że w systemie Windows 8 Eksplorator Windows jest Eksploratorem plików.

Utwórz pusty wykresu.

  1. W Eksploratora rozwiązań, otwórz menu skrótów dla węzła swoje rozwiązanie najwyższego poziomu.Kliknij przycisk dodać, Nowy element.

  2. W obszarze zainstalowane, kliknij przycisk Ogólne.

  3. W prawym okienku kliknij Przekierowanie dokumentu wykresu.

    Masz teraz pusty wykres, na którym jest widoczny w swoje rozwiązanie elementy rozwiązania folder.

    Aby otworzyć nowy wykres puste bez dodawania go do rozwiązania, na pliku menu, kliknij przycisk Nowy, pliku.

    Aby dodać puste wykresu w projekcie modelowania, otwórz architektury menu, kliknij przycisk Nowy Diagram.

Pytania i odpowiedzi

P: Dlaczego warto utworzyć wykres trwa tak długo?

ODP podczas generowania wykresu po raz pierwszy, program Visual Studio indeksowania zależności, które zostaną znalezione.Ten proces może zająć trochę czasu, zwłaszcza w przypadku dużych rozwiązań, ale będzie to poprawić wydajność później.Zmiana kodu Visual Studio reindexes zaktualizowany kod.Jeśli nie chcesz poczekaj na zakończenie wykresu, można anulować w dowolnym momencie i proponowanie rozwiązanie zamiast tego:

  • Umieść na wykresie tylko te zależności, które Cię interesują.

  • Przed wygenerowaniem wykresu dla całego rozwiązania zmniejsz zakres rozwiązania.

Mimo że program Visual Studio można uruchomić z 1 GB pamięci, zalecamy, aby komputer miał co najmniej 2 GB pamięci, aby uniknąć opóźnień, podczas gdy program Visual Studio tworzy indeks kodu i generuje wykres.

To może zająć więcej czasu, aby tworzyć wykresy lub dodać elementy do wykresu z okna Solution Explorer, gdy właściwość element projektu Kopiuj do katalogu wyjściowego jest ustawiona na Zawsze Kopiuj.Może to spowodować problemy z kompilacjami przyrostowymi i każdorazowe ponowne kompilowanie projektu przez program Visual Studio.Aby zwiększyć wydajność, należy zmienić tę właściwość na Kopiuj jeśli nowszy lub PreserveNewest.Zobacz Kompilacje przyrostowe.

Q: Dlaczego programu Visual Studio nie utworzyć Mój wykres

ODP może się to zdarzyć, ponieważ żaden z projektami w rozwiązaniu zostały pomyślnie utworzone.Program Visual Studio generuje wykres, jeśli co najmniej jeden projekt jest kompilowany pomyślnie.Wykres będzie widoczna zależności tylko dla kodu pomyślnie utworzony.Jeśli błędy kompilacji subskrybentem dla niektórych składników, te błędy są wyświetlane na wykresie.Upewnij się, że składnik rzeczywiście kompiluje i ma zależności od tego przed wprowadzeniem decyzji architektury opartych na wykresie.

Zobacz określonej zależności

Załóżmy, że masz o przegląd kodu do wykonania w niektóre pliki z Oczekujące zmiany.Aby wyświetlić zależności w te zmiany, należy utworzyć wykres zależności z tych plików.

Wykres zależności za pomocą zgrupowane węzłów

Zobacz zależności określonych w rozwiązaniu

  1. Otwórz Eksploratora rozwiązań.Wybierz projekty odwołuje się do zestawu, folderów, plików, typy i elementów członkowskich, które Cię interesują.

  2. Wyświetl wykres elementów i ich elementów członkowskich.Na Eksploratora rozwiązań narzędzi, kliknij przycisk utworzyć nowy wykres dokumentUtwórz nowy wykres z wybranych węzłów przycisk.

    Aby znaleźć elementy, które mają w zależności od typów lub elementy członkowskie, otwórz typ lub menu skrótów elementu członkowskiego z Eksploratora rozwiązań.Kliknij typ zależności.Następnie wybierz wyników.

    Jak wizualizować kod

    Do uwzględnienia w hierarchii nadrzędny z elementami, Eksploratora rozwiązań narzędzi, otwórz Utwórz nowy dokument wykresu... listy.Kliknij przycisk Nowy wykres zależności za pomocą elementów nadrzędnych.

    Jak wizualizować konkretny kod i elementów nadrzędnych

    Można również przeciągnąć elementy do wykresu puste lub istniejące.Tworzenie wykresu puste, na pliku menu, kliknij przycisk Nowy, pliku, Przekierowanie dokumentu wykresu.Aby dołączyć hierarchię nadrzędną elementów, naciśnij i przytrzymaj klawisz CTRL podczas przeciągania elementów.

    [!UWAGA]

    Po dodaniu elementów z projektu, który jest współużytkowany przez wiele aplikacji, takich jak Windows Phone lub Sklep Windows, elementy te są widoczne na mapie z projektem aktualnie aktywnych aplikacji.Po zmianie kontekstu do innego projektu aplikacji i dodaniu większej liczby elementów z udostępnionego projektu pojawiają się elementy z projektem nowych aktywnych aplikacji.Operacje wykonywane za pomocą elementu na mapie dotyczą tylko tych elementów, które współużytkują ten sam kontekst.

  3. Aby poznać elementy, rozwiń je.Przesuń kursor na element, a następnie kliknij ikonę strzałki (^) przycisk, jeśli się pojawi.Aby rozwinąć wszystkie elementy, należy otworzyć menu skrótów wykresu.Kliknij przycisk grupy, Rozwiń wszystkie.

    [!UWAGA]

    Ta opcja jest niedostępna, jeśli rozszerzania wszystkich grup tworzy korzystanie z niej wykresu lub problemów z pamięcią.

  4. Aby wyświetlić elementów członkowskich, które znajdują się w kodzie, ale nie są wyświetlane na wykresie, kliknij przycisk dzieci RefetchIkona dzieci refetch.Członkowie grupy są wyświetlane w różnych stylów tak, aby je łatwo widoczny.Zobacz Edytowanie i dostosowywanie wykresów zależności.

  5. Aby wyświetlić więcej elementów odnoszące się do wykresu, otwórz menu skrótów tego elementu.Kliknij przycisk Pokaż i rodzaj relacji interesującego Cię.

    Dla zestawu kliknij przycisk:

    Zestawy, do których istnieją odwołania

    Dodaj zestawy, do których odwołuje się ten zestaw.Zestawy zewnętrzne pojawiają się w grupie Zewnętrzne.

    Odwoływanie się do zestawów

    Dodaj zestawy w rozwiązaniu odwołującym się do tego zestawu.

    Klasy po kliknięciu:

    Typy podstawowe

    W przypadku klasy dodać klasę podstawową i implementowane interfejsy.

    Dla interfejsu dodaj interfejsy podstawowe.

    Typy pochodne

    Klasy Dodaj klasy pochodnej.

    Dla interfejsu dodaj interfejsy pochodne i implementujące klasy lub struktury.

    Wszystkie typy podstawowe

    Dodaj cyklicznie klasę podstawową lub hierarchię interfejsu.

    Wszystkie typy pochodne

    Dla klasy dodaj wszystkie klasy pochodne cyklicznie.

    Dla interfejsu, dodaj wszystkie interfejsy pochodne i cyklicznie implementujące klasy lub struktury.

    Hierarchia zawierania

    Dodaj hierarchię kontenera nadrzędnego.

    Używane typy

    Dodaj wszystkie klasy i używanych przez nie elementów członkowskich.

    Typy Używany przez

    Dodaj wszystkie klasy oraz elementy członkowskie, które je używają.

    Dla danej metody kliknij polecenie:

    Hierarchia zawierania

    Dodaj hierarchię kontenera nadrzędnego.

    Wywołane metody

    Dodaj metody, które wywołuje ta metoda.

    Metody Wywoływany przez

    Dodaj metody wywołujące tę metodę.

    Nadpisane metody w typach podstawowych

    Dla metody, która zastępuje inne metody lub implementuje metodę interfejsu, należy dodać wszystkie metody abstrakcyjne lub wirtualne w klasach podstawowych, które są zastępowane, oraz — jeśli istnieje — implementowaną metodę interfejsu.

    Pola odwołania

    Dodaj pola, do których odwołuje się ta metoda.

    Dla pola kliknij przycisk:

    Hierarchia zawierania

    Dodaj hierarchię kontenera nadrzędnego.

    Odwoływanie się do metod

    Dodaj metody odwołujące się do tego pola.

Zobacz zależności określonych w zestawy oraz pliki binarne

  1. Na architektury menu, kliknij przycisk Windows, Eksplorator architektury.

  2. W pierwszej kolumnie w obszarze systemu plików, kliknij przycisk Wybierz pliki.

  3. W polu Otwórz znajdź i zaznacz zestawy lub dane binarne.Kliknij przycisk Otwórz Aby dodać je do następnej kolumny w Eksplorator architektury.

  4. W następnej kolumnie zaznacz zestawy lub pliki binarne.

    Domyślnie następna kolumna wyświetla elementy zawarte w zaznaczonych elementach.

    PoradaPorada

    Aby wybrać inne powiązane elementy, rozwiń zwiniętą kolumnę na prawo od kolumny z zaznaczonymi elementami.W obszarze Nawigacja węzłów wybierz rodzaje elementów, które Cię interesują.W obszarze Nawigacja wychodząca lub Nawigacja przychodząca zaznacz rodzaje powiązań, które Cię interesują.Zobacz Wyszukiwanie kodu za pomocą narzędzia Architecture Explorer.

  5. Znajdź i zaznacz wszystkie elementy, które chcesz umieścić na wykresie.

  6. Aby utworzyć nowy wykres, na Eksplorator architektury narzędzi, kliknij przycisk Utwórz nowy dokument wykres z wybranych węzłówUtwórz nowy wykres z wybranych węzłów przycisk.

    —lub—

    Aby dodać wybrane elementy do wykresu, wykonaj następujące kroki:

    1. Otwórz plik wykresu .dgml wykres, lub utwórz pusty wykres.

    2. Na Eksplorator architektury paska narzędzi, kliknij przycisk Dodaj wszystkie wybrane węzły w dokumencie wykresu widoczneDodaj wszystkie wybrane węzły do wykresu przycisk.

      —lub—

      Przeciągnij elementy z Eksploratora architektury do wykresu.

Zobacz zależności między plikami źródłowymi C i C++ i pliki nagłówków

Jeśli chcesz utworzyć pełniejsze wykresów dla projektów C++, ustaw opcję kompilatora przeglądania informacji (/FR) na temat tych projektów.Zobacz /FR, /Fr (Utwórz plik .Sbr).W przeciwnym razie pojawi się komunikat i monit o ustawienie tej opcji.W przypadku wybrania OK, to ustawienie opcji dla bieżącego wykresu.Możesz ukryć komunikat dla wszystkich wykresów później.Ukryj tę wiadomość, można wyświetlić ją ponownie.Wartość następującego klucza rejestru 0 lub usunięcia klucza:

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

Po otwarciu rozwiązania, które zawiera projekty Visual C++, aktualizacja bazy danych w technologii IntelliSense może zająć trochę czasu.W tym czasie może nie być możliwe utworzenie wykresów zależności dla plików nagłówków (.h lub #include), dopóki nie zakończy się aktualizowania bazy danych IntelliSense.Można monitorować postęp uaktualnienia na pasku stanu programu Visual Studio.Aby rozwiązać problemy lub wiadomości, które są wyświetlane, ponieważ niektóre ustawienia IntelliSense są wyłączone, zobacz Rozwiązywanie problemów z wykresów dla kodu C i C++.

  • Aby wyświetlić zależności między wszystkie pliki źródłowe i pliki nagłówków w rozwiązaniu, architektury menu, kliknij przycisk generowania wykresu zależności, dla pliku obejmują.

    Wykres zależności dla kodu macierzystego

  • Aby wyświetlić zależności między aktualnie otwarte plik i pliki źródła powiązane pliki nagłówków, otwórz plik źródłowy lub plik nagłówka.Otwórz menu skrótów pliku w dowolnym miejscu w pliku.Kliknij przycisk generowania wykresu dołączania plików.

    Wykres zależności pierwszego poziomu dla pliku .h

Rozwiązywanie problemów z wykresów dla kodu C i C++

Te elementy nie są obsługiwane dla kodu C i C++:

  • Typy podstawowe nie są wyświetlane na wykresach zawierających hierarchię nadrzędną.

  • Większość elementów menu Pokaż jest niedostępna dla kodu C i C++.

Te problemy mogą być podczas tworzenia wykresy zależności dla kodu C i C++:

Problem

Możliwa przyczyna

Rozwiązanie

Nie można wygenerować wykresu zależności.

Żadne projekty w rozwiązaniu nie zostały pomyślnie skompilowane.

Napraw błędy kompilacji, które wystąpiły, a następnie ponownie wygeneruj wykres.

Program Visual Studio przestaje odpowiadać przy próbie wygenerowania wykresu zależności z menu architektury.

Plik bazy danych programu (.pdb) może być uszkodzony.

Plik .pdb przechowuje informacje debugowania, takie jak typ, metoda i informacje o pliku źródłowym.

Kompiluj rozwiązanie ponownie, a następnie spróbuj jeszcze raz.

Niektóre ustawienia dla bazy danych przeglądania IntelliSense są wyłączone.

Niektóre ustawienia IntelliSense może być wyłączona w Visual Studio Opcje okno dialogowe.

Włącz ustawienia je włączyć.

Zobacz Opcje, edytor tekstu, C/C++, zaawansowane.

W węźle metody zostanie wyświetlony komunikat Nieznane metody.

Ten problem występuje, ponieważ nie można rozpoznać nazwy metody.

Pliku binarnego może nie mieć tabeli podstawowej przeniesienie.

Włącz /FIXED:NO opcję w program łączący.

Zobacz /FIXED (Stałe adresy podstawowe).

Plik bazy danych programu (.pdb) może nie być skompilowany.

Plik .pdb przechowuje informacje debugowania, takie jak typ, metoda i informacje o pliku źródłowym.

Włącz /DEBUG opcję w program łączący.

Zobacz /DEBUG (Generowanie informacji o debugowaniu).

Nie można otworzyć lub znaleźć pliku .pdb w oczekiwanych lokalizacjach.

Upewnij się, że plik .pdb istnieje w oczekiwanych lokalizacjach.

Informacje o debugowaniu pochodzą z pliku .pdb.

Jeśli w konsolidatorze użyto opcji /PDBSTRIPED, zamiast tego należy dołączyć kompletny plik .pdb.

Zobacz /PDBSTRIPPED (Usuń symbole prywatne).

Obiekt wywołujący nie jest funkcją i jest albo osadzony w pliku binarnym, albo stanowi wskaźnik w sekcji danych.

Jeżeli obiekt wywołujący jest sekcją thunk, spróbuj użyć _declspec(dllimport), aby uniknąć wywołania 32-bitowego.

Zobacz:

Wykresy zależności udziału

Udostępnianie wykresu innym użytkownikom programu Visual Studio

  • Użyj menu Plik, aby zapisać wykres.

    —lub—

    Aby zapisać wykres jako część określonego projektu, otwórz menu skrótów dla powierzchni wykresu.Kliknij przycisk Przenieś <DependencyGraphName.dgml> do i projektu, w którym chcesz zapisać wykresu.

    Program Visual Studio zapisuje wykres jako plik .dgml, który można udostępniać innym użytkownikom programu Visual Studio Ultimate, Visual Studio Premium i Visual Studio Professional.

    [!UWAGA]

    Przed udostępnieniem wykresu użytkownikom korzystającym z programu Visual Studio Premium i Visual Studio Professional rozwiń wszystkie grupy, pokaż ukryte węzły i łącza między grupami i pobierz wszelkie usunięte węzły, które inni mają zobaczyć na wykresie.W przeciwnym razie inni użytkownicy nie będą mogli zobaczyć tych elementów.

    Podczas zapisywania wykresu w projekcie modelowania lub skopiowane z projektu modelowania do innej lokalizacji, może wystąpić następujący błąd:

    "Nie można zapisać fileName poza katalogu projektu.Elementy połączone nie są obsługiwane”.

    Program Visual Studio pokazuje błąd, ale mimo to tworzy zapisaną wersję.Aby uniknąć tego błędu, należy utworzyć wykres poza programem do modelowania projektów.Można następnie zapisać go w dowolnej lokalizacji.Skopiowanie pliku do innej lokalizacji w rozwiązaniu, a następnie próba zapisu zakończą się niepowodzeniem.

Eksportowanie wykresu jako obrazu, tak aby można go było kopiować do innych aplikacji, takich jak Microsoft Word lub PowerPoint

  1. Otwórz menu skrótów powierzchni wykresu.Kliknij przycisk edytować, Skopiuj obraz.

  2. Wklej obraz do innej aplikacji.

Eksportowanie wykresu jako pliku XPS, tak aby można go było wyświetlić w przeglądarkach XML lub XAML, takich jak Internet Explorer

  1. Otwórz menu skrótów powierzchni wykresu.Kliknij przycisk Zapisz jako XPS.

  2. Przeglądaj, w którym ma zostać zapisany plik.

  3. Nazwij wykres.Upewnij się, że pole Zapisz jako typ jest ustawione na Pliki XPS (*.xps).Kliknij przycisk zapisać.

Programistyczne tworzenie wykresów

Tworzenie wykresu dokumenty (pliki .dgml), może działać podczas przetwarzania wsadowego, uruchom GraphCmd.exe Narzędzia wiersza polecenia.Na przykład aby znaleźć zależności, które zostały zmienione od kompilacji, uruchomić narzędzie po każdej kompilacji.Aby znaleźć to narzędzie, należy szukać w tym folderze: C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE.

Narzędzie GraphCmd.exe obsługuje tylko kod środowiska .NET i generuje informacje o zależnościach tylko dla zestawów lub plików .dgml, a nie kod źródłowy w plikach rozwiązania lub projektu programu Visual Studio.Narzędzie GraphCmd.exe działa poza programem Visual Studio, więc obsługa akcji w zapytaniach DGQL jest ograniczona.

Poniżej przedstawiono składnię GraphCmd.exe:

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

Oto opcje dla GraphCmd.exe:

Te opcje można określić więcej niż raz: -input, -query, -exec, i -path

-?

Wyświetlaj pomoc dla GraphCmd.exe.

-all

Uwzględnij wszystkie wyniki zapytań pośrednich, nie tylko dla ostatniego zestawu węzłów.

-exceptions

Zgłoś wyjątki zapytania jako plik wykresu dokumentów (.dgml).

-input Nazwa_pliku

Przetwórz określony plik .dgml.

Jest to przydatne do przetwarzania końcowego dużego pliku .dgml i jego filtrowania, aby łatwiej zwizualizować go w programie Visual Studio.

-query Nazwa_pliku

Uruchom określony plik języka Directed Graph Query Language (DGQL lub .dgql).

Zobacz:

-exec "DGQL_Statement"

Uruchom DGQL instrukcję.

Zobacz Opis języka Directed Graph Query Language (DGQL).

-output Nazwa_pliku

Dane wyjściowe .dgml określonego pliku.

-path alias=path

Określ nowy alias do użycia w wejście i wyjście DGML dokumentów.

Na przykład:

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

Zobacz Aliasy dla najczęściej używanych ścieżek.

Aliasy dla najczęściej używanych ścieżek

Aliasy dla najczęściej używanych ścieżek zmniejszają rozmiar pliku .dgml i czas potrzebny do załadowania lub zapisania pliku.Aby utworzyć alias, należy dodać sekcję <Paths></Paths> na końcu pliku .dgml.W tej sekcji dodaj <Path/> elementu, aby zdefiniować alias dla ścieżki:

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

Do niego odwołują z elementu w pliku .dgml, należy wpisać Id elementu < ścieżka / > element z logowania dolary ($) i nawiasy (()):

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

Aby edytować pliki .dgml, zobacz Edytowanie i dostosowywanie wykresów zależności.

Dowiedz się więcej o języku przekierowanie wykres zapytania (DGQL)

DGQL jest lekkim językiem zapytań, który służy do tworzenia DGML.Instrukcja DGQL podąża za przemiennym wzorem wyboru węzła i działa w taki sposób, że każde wybranie węzła tworzy dane wejściowe dla następnej akcji, której dane wyjściowe stają się danymi wejściowymi dla następnego wyboru węzła, i tak dalej.

Format instrukcji DGQL:

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

W następującej tabeli opisano składnię DGQL używaną do wybierania węzłów:

*

Zaznacz wszystkie węzły.

+ "text"

Zaznacz wszystkie węzły, które zawierają "tekstu".

+ Id.Equals("text")

Zaznacz wszystkie węzły którego Id jest równa "tekstu".

+ Background.Contains("text")

Zaznacz wszystkie węzły którego Background atrybut ma wartość, która zawiera ciąg "tekstu".

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

Zaznacz wszystkie węzły, które pasują "Tekst1"lub"— tekst 2".

+ MyProperty="True"

Zaznacz wszystkie węzły, które mają właściwość o nazwie MyProperty których wartość ma "wartość prawda".

- Label.Contains("text")

Zaznacz wszystkie węzły, z wyjątkiem tych, które mają Label atrybutu, który Contains ciąg "tekstu".

+ Category.Is("MyCategory")

Zaznacz wszystkie węzły, które mają kategorię o nazwie MyCategory lub która dziedziczy MyCategory.

W następującej tabeli opisano przykłady działań bezpośrednich, które mogą być wykonywane dla wybranych węzłów:

Przykład akcji

Opis

Microsoft.Contains

Zwróć wszystkie węzły zawarte w węzłach wejściowych.Można zamienić Contains na inną kategorię linku.

Microsoft.Open

Otwórz kod źródłowy dla węzłów wejściowych.

[!UWAGA]

Działa tylko w Visual Studio.

Microsoft.AllOutBoundLinks

Zwróć wszystkie węzły będące celem łącza wychodzącego z węzłów wejściowych.

Microsoft.AllInboundLinks

Zwróć wszystkie węzły będące źródłowym końcem łącza do węzłów wejściowych.

Microsoft.Core.CreateGroupsByProperties

Wywołania GroupByProperties akcji.

Microsoft.AllNodes

Zwróć wszystkie węzły w całym wykresie do tego momentu.

Działania oparte na danych wybierają elementy bazujące tylko na danych w węzłach wejściowych i łączach.Podczas dopasowywania kategorii za pomocą operacji opartych na danych uwzględniane są kategorie dziedziczone.W następującej tabeli opisano przykłady działań opartych na danych:

Typ

Opis

Node:Both:Category

Zwróć wszystkie węzły należące do kategorii Category i połączone z węzłami wejściowymi przez łącze, które wskazuje w dowolnym kierunku.

Link:Both:Category

Zwróć wszystkie węzły połączone z węzłami wejściowymi przez łącze, które wskazuje w dowolnym kierunku i należy do kategorii Category.

Link:Backward:Category

Zwróć wszystkie węzły, które wskazują węzły wejściowe za pomocą łącza należącego do kategorii Category.

Link:Forward:Category

Zwróć wszystkie węzły, które wskazują z węzłów wejściowych za pomocą łącza należącego do kategorii Category.

Porady

  • Zazwyczaj występuje akcja „domyślna” dla danego zestawu węzłów wejściowych, która jest automatycznie wybierana przez Eksploratora architektury.Aby uzyskać takie samo zachowanie, użyj pustej akcji: //

  • Odstęp nie jest w DGQL znaczący, więc w razie potrzeby można formatować kwerendę, aby zmieściła się w jednym wierszu.Jest to przydatne, gdy użytkownik korzysta z –exec opcji z GraphCmd.

  • Podczas debugowania DGQL akcja "Execute Expanded" w Eksploratorze architektury ułatwia wyświetlenie każdego kroku kwerendy i wyszukanie tego kroku, który nie daje oczekiwanych wyników.

Przykład

Poniższa instrukcja DGQL wykonuje zapytanie, jak to opisano w następujących krokach:

+ Id.Equals("Microsoft.Solution.ClassView") / "Microsoft.Solution.ClassView" / * / "Node:Both:CodeSchema_Class" / + CodeSchemaProperty_IsPublic.Equals("True")
  1. Kliknij przycisk Widok klasy węzeł w pierwszej kolumnie Eksplorator architektury.

  2. Wykonuje akcję "Microsoft.Solution.ClassView", zwracając wszystkie obszary nazw w rozwiązaniu.

  3. Użyj * Aby wybrać wszystkie obszary nazw.

  4. Zaznacz wszystkie węzły, które należą do kategorii CodeSchema_Class i są powiązane z tymi obszarami nazw poprzez łącze w dowolnym kierunku.Są to zazwyczaj łącza zawierania.

  5. Wyfiltruj spośród zwróconych klas tylko te, które zawierają właściwość CodeSchemaProperty_IsPublic="True".

Technicznie rzecz biorąc, akcja "Microsoft.Solution.ClassView" jest zbędna, ponieważ jest to akcja „domyślna” dla węzła Widok klasy.Dlatego możesz zastąpić tę akcję znakami //, aby uprościć zapytanie i sformatować je w jednym wierszu w następujący sposób:

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

Co jeszcze można zrobić?

Gdzie można uzyskać więcej informacji?

Kategoria

Łącza

Fora

Blogi