Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule dowiesz się, jak wizualizować zależności w kodzie za pomocą map kodu.
Co to są mapy kodu?
W programie Visual Studio mapy kodu pomagają szybciej zobaczyć, jak kod programu pasuje do siebie bez odczytywania plików i wierszy kodu. Dzięki tym mapom możesz zobaczyć organizację i relacje w kodzie, w tym jego strukturę i jej zależności, sposób aktualizowania i szacowania kosztów proponowanych zmian.
Zależności można mapować na kod w następujących językach:
Visual C# lub Visual Basic w rozwiązaniu lub zestawach (.dll lub .exe)
Natywny lub zarządzany kod C lub C++ w projektach Visual C++, plikach nagłówków (.h lub
#include) lub plikach binarnychProjekty i zestawy X++ utworzone z modułów platformy .NET dla programu Microsoft Dynamics AX
Note
W przypadku projektów innych niż C# lub Visual Basic istnieje mniej opcji uruchamiania mapy kodu lub dodawania elementów do istniejącej mapy kodu. Na przykład nie można kliknąć prawym przyciskiem myszy obiektu w edytorze tekstów projektu C++ i dodać go do mapy kodu. Można jednak przeciągać i upuszczać poszczególne elementy kodu lub pliki z Eksploratora rozwiązań, widoku klas i przeglądarki obiektów.
Wymagania wstępne
Aby utworzyć mapę kodu w programie Visual Studio, najpierw zainstaluj składniki mapowania kodu i weryfikacji zależności na żywo
Aby tworzyć i edytować mapy kodu, potrzebujesz wersji Visual Studio Enterprise. Jednak w wersjach Visual Studio Community i Professional można otwierać diagramy wygenerowane w wersji Enterprise, ale nie można ich edytować.
Note
Przed udostępnieniem map utworzonych w programie Visual Studio Enterprise innym osobom korzystającym z programu Visual Studio Professional upewnij się, że wszystkie elementy na mapie (takie jak ukryte elementy, rozwinięte grupy i linki między grupami) są widoczne.
Dodawanie mapy kodu
Możesz utworzyć pustą mapę kodu i przeciągnąć na nią elementy, w tym odwołania do zestawów, pliki i foldery albo wygenerować mapę kodu dla wszystkich lub części rozwiązania.
Aby dodać pustą mapę kodu:
W Eksploratorze rozwiązań otwórz menu skrótów dla węzła rozwiązania najwyższego poziomu. Wybierz pozycję Dodaj>nowy element.
W oknie dialogowym Dodawanie nowego elementu w obszarze Zainstalowane wybierz kategorię Ogólne .
Wybierz szablon Dokument grafu kierowanego (.dgml), a następnie wybierz Dodaj.
Wskazówka
Ten szablon może nie pojawić się alfabetycznie, więc przewiń w dół listy szablonów, jeśli go nie widzisz.
Pusta mapa zostanie wyświetlona w folderze Elementy rozwiązania .
Podobnie możesz utworzyć nowy plik mapy kodu bez dodawania go do rozwiązania, wybierając pozycję Architektura>Nowa mapa kodu lubNowy>plik pliku>.
Więcej informacji:
Generowanie mapy kodu dla rozwiązania
Aby wyświetlić wszystkie zależności w rozwiązaniu:
Na pasku menu wybierz pozycję Architektura>Generuj mapę kodu dla rozwiązania. Jeśli kod nie uległ zmianie od czasu ostatniego skompilowania, możesz wybrać opcję Architektura>Generuj mapę kodu dla rozwiązania bez kompilowania .
Generowana jest mapa przedstawiająca zestawy najwyższego poziomu i zagregowane połączenia między nimi. Szerszy link agregacji, tym więcej zależności reprezentuje.
Użyj przycisku Legenda na pasku narzędzi mapy kodu, aby wyświetlić lub ukryć listę ikon typu projektu (takich jak Test, Web i Projekt telefonu), elementy kodu (takie jak Klasy, Metody i Właściwości) oraz typy relacji (takie jak Dziedziczy z, Implementuje i Wywołuje).
To przykładowe rozwiązanie zawiera foldery rozwiązań (testy i składniki), projekty testowe, projekty internetowe i zestawy. Domyślnie wszystkie relacje zawierania są wyświetlane jako grupy, które można rozwinąć i zwinąć. Grupa Externals zawiera wszystkie elementy poza rozwiązaniem, w tym zależności platformy. Zestawy zewnętrzne pokazują tylko te elementy, które są używane. Domyślnie typy podstawowe systemu są ukryte na mapie w celu zmniejszenia bałaganu.
Aby szczegółowo analizować mapę, rozwiń grupy reprezentujące projekty i zespoły. Wszystko można rozwinąć, naciskając klawisze CTRL+A , aby wybrać wszystkie węzły, a następnie wybierając pozycję Grupa, Rozwiń z menu skrótów.
Jednak może to nie być przydatne w przypadku dużego rozwiązania. W przypadku złożonych rozwiązań ograniczenia pamięci mogą uniemożliwić rozszerzanie wszystkich grup. Aby zajrzeć do wnętrza pojedynczego węzła, rozwiń go. Przesuń wskaźnik myszy na wierzchu węzła, a następnie kliknij chevron (strzałka w dół), gdy się pojawi.
Możesz też użyć klawiatury, wybierając element, a następnie naciskając klawisz plus (+). Aby zbadać głębsze poziomy kodu, wykonaj te same czynności w przypadku przestrzeni nazw, typów i składowych.
Wskazówka
Aby uzyskać więcej informacji na temat pracy z mapami kodu przy użyciu myszy, klawiatury i dotyku, zobacz Przeglądanie i rozmieszczanie map kodu.
Aby uprościć mapę i skupić się na poszczególnych częściach , wybierz pozycję Filtry na pasku narzędzi mapy kodu i wybierz tylko typy węzłów i linki, które cię interesują. Można na przykład ukryć wszystkie kontenery folderu rozwiązania i assembly.
Możesz również uprościć mapę, ukrywając lub usuwając poszczególne grupy i elementy z mapy bez wpływu na podstawowy kod rozwiązania.
Aby wyświetlić relacje między elementami, wybierz je na mapie. Kolory łączy wskazują typy relacji, jak pokazano w okienku Legenda .
W tym przykładzie purpurowe linki są wywołaniami, kropkowane linki to odwołania, a jasnoniebieskie linki to dostęp do pól. Zielone łącza mogą być dziedziczeniem lub mogą być łączami agregowanymi , które wskazują więcej niż jeden typ relacji (lub kategoria).
Wskazówka
Jeśli widzisz zielony link, może to nie oznaczać, że istnieje tylko relacja dziedziczenia. Mogą również występować wywołania metod, ale są one ukryte przez relację dziedziczenia. Aby wyświetlić określone typy łączy, użyj pól wyboru w okienku Filtry , aby ukryć typy, których nie interesujesz.
Aby uzyskać więcej informacji o elemencie lub linku, przenieś wskaźnik na jego wierzchu do momentu wyświetlenia etykietki narzędzia. Spowoduje to wyświetlenie szczegółów elementu kodu lub kategorii reprezentowanych przez łącze.
Aby zbadać elementy i zależności reprezentowane przez link zbiorczy, najpierw wybierz link, a następnie otwórz menu kontekstowe. Wybierz pozycję Pokaż linki współtworzenia (lub Pokaż linki współtworzenia na nowej mapie kodu). Spowoduje to rozwinięcie grup na obu końcach linku i wyświetlenie tylko tych elementów i zależności, które uczestniczą w linku.
Aby skoncentrować się na określonych częściach mapy, możesz nadal usuwać elementy, których nie interesujesz. Aby na przykład zagłębić się w widok klas i składowych, po prostu przefiltruj wszystkie węzły przestrzeni nazw w okienku Filtry.
Innym sposobem skupienia się na złożonej mapie rozwiązań jest wygenerowanie nowej mapy zawierającej wybrane elementy z istniejącej mapy. Przytrzymaj klawisze Ctrl podczas wybierania elementów, na których chcesz skupić się, otwórz menu skrótów i wybierz pozycję Nowy wykres z zaznaczenia.
Kontekst zawierający jest przenoszony do nowej mapy. Ukryj foldery rozwiązań i inne kontenery , które nie chcesz wyświetlać przy użyciu okienka Filtry.
Rozwiń grupy i wybierz elementy na mapie, aby wyświetlić relacje.
Zobacz również:
- Przeglądanie i rozmieszczanie map kodu
- Dostosowywanie map kodu przez edytowanie plików DGML
- Znajdowanie potencjalnych problemów w kodzie przez uruchomienie analizatora
Wyświetlanie zależności
Załóżmy, że masz przegląd kodu do wykonania w niektórych plikach z oczekującymi zmianami. Aby zobaczyć zależności w tych zmianach, możesz utworzyć mapę kodu na podstawie tych plików.
Przeciągnij elementy z Eksploratora rozwiązań, Widoku klas lub Przeglądarki obiektów do nowej lub istniejącej mapy kodu. Aby uwzględnić hierarchię nadrzędną elementów, naciśnij i przytrzymaj klawisz Ctrl podczas przeciągania elementów lub użyj przycisku Uwzględnij elementy nadrzędne na pasku narzędzi mapy kodu, aby określić akcję domyślną. Można również przeciągać pliki zestawów spoza programu Visual Studio, na przykład z Eksploratora Windows.
Note
Po dodaniu elementów z projektu udostępnionego w wielu aplikacjach, takich jak Windows Phone lub Microsoft Store, te elementy są wyświetlane na mapie z aktualnie aktywnym projektem aplikacji. Jeśli zmienisz kontekst na inny projekt aplikacji i dodasz więcej elementów z udostępnionego projektu, te elementy będą teraz wyświetlane z nowo aktywnym projektem aplikacji. Operacje wykonywane z elementem na mapie dotyczą tylko tych elementów, które współużytkują ten sam kontekst.
Mapa pokazuje wybrane elementy w ich macierzystych zestawach.
Aby eksplorować elementy, rozwiń je. Przesuń wskaźnik myszy w górnej części elementu, a następnie kliknij ikonę strzałki w dół po wyświetleniu.
Aby rozwinąć wszystkie elementy, zaznacz je przy użyciu klawiszy Ctrl+A, a następnie otwórz menu skrótów dla mapy i wybierz pozycję Rozwiń grupę>. Ta opcja nie jest jednak dostępna, jeśli rozszerzenie wszystkich grup powoduje problemy z mapą lub pamięcią, których nie można używać.
W razie potrzeby kontynuuj rozwijanie elementów, które Cię interesują, nawet na poziomie klasy i jej członków.
Aby zobaczyć członków znajdujących się w kodzie, ale niewyświetlających się na mapie, kliknij ikonę Pobierz ponownie elementy podrzędne
w lewym górnym rogu grupy.Aby wyświetlić więcej elementów związanych z elementami na mapie, wybierz jeden i wybierz pozycję Pokaż powiązane na pasku narzędzi mapy kodu, a następnie wybierz typ powiązanych elementów, które mają zostać dodane do mapy. Możesz też wybrać co najmniej jeden element, otworzyć menu skrótów, a następnie wybrać opcję Pokaż typ powiązanych elementów do dodania do mapy. Przykład:
W przypadku zestawu wybierz:
Option Opis Pokaż zestawy, do których odnosi się ten kod Dodaj zestawy, do których odwołuje się ten zestaw. Zestawy zewnętrzne są wyświetlane w grupie Zewnętrzne . Pokaż zestawy odwołujące się do tego Dodaj zestawy w rozwiązaniu odwołujące się do tego zestawu. W obszarze nazw wybierz opcję Pokaż zawierający zestaw, jeżeli nie jest widoczny.
W przypadku klasy lub interfejsu wybierz:
Option Opis Pokaż typy podstawowe W przypadku klasy dodaj klasę bazową i zaimplementowane interfejsy.
W przypadku interfejsu dodaj interfejsy podstawowe.Pokaż typy pochodne Dla klasy dodaj klasy pochodne.
W przypadku interfejsu dodaj interfejsy pochodne oraz klasy lub struktury implementujące.Pokaż typy, do których się odwołuje Dodaj wszystkie klasy i ich składowe używane przez tę klasę. Pokaż typy odwołujące się do tego Dodaj wszystkie klasy i ich składowe, które używają tej klasy. Pokaż przestrzeń nazw, która zawiera Dodaj nadrzędną przestrzeń nazw. Pokazywanie zawierającej przestrzeń nazw i zestaw Dodaj hierarchię kontenera nadrzędnego. Pokaż wszystkie typy podstawowe Dodaj klasę bazową lub hierarchię interfejsu rekursywnie. Pokaż wszystkie typy pochodne Dla klasy dodaj wszystkie klasy pochodne w sposób rekursywny.
W przypadku interfejsu dodaj wszystkie pochodne interfejsy oraz klasy lub struktury, które je implementują, rekursywnie.W przypadku metody wybierz:
Option Opis Pokaż metody wywoływane przez to Dodaj metody wywoływane przez tę metodę. Pokaż pola, do których się odwołuje Dodaj pola, do których odwołuje się ta metoda. Pokaż typ zawierający Dodaj typ nadrzędny. Pokaż typ zawierający, przestrzeń nazw i zestaw Dodaj hierarchię kontenera nadrzędnego. Pokaż przesłonięte metody W przypadku metody, która zastępuje inne metody lub implementuje metodę interfejsu, dodaj wszystkie metody abstrakcyjne lub wirtualne w klasach bazowych, które są zastępowane i, jeśli w ogóle, metoda interfejsu, która jest implementowana. W przypadku pola lub właściwości wybierz:
Option Opis Pokaż typ zawarty Dodaj typ nadrzędny. Pokaż typ, przestrzeń nazw i zestaw Dodaj hierarchię kontenera nadrzędnego.
Mapa pokazuje relacje. W tym przykładzie mapa przedstawia metody wywoływane przez metodę
Findi ich lokalizację w rozwiązaniu lub zewnętrznie.Aby uprościć mapę i skupić się na poszczególnych częściach , wybierz pozycję Filtry na pasku narzędzi mapy kodu i wybierz tylko typy węzłów i linki, które cię interesują. Na przykład wyłącz wyświetlanie folderów rozwiązań, zestawów i przestrzeni nazw.
Treści powiązane
- Udostępnianie map kodu
- Tworzenie map kodu dla języka C++
- Zwiększanie wydajności mapy kodu
- Używanie map kodu do debugowania aplikacji
- Mapowanie metod na stosie wywołań podczas debugowania
- Znajdowanie potencjalnych problemów przy użyciu analizatorów mapy kodu
- Przeglądanie i rozmieszczanie map kodu
- Dostosowywanie map kodu przez edytowanie plików DGML