Udostępnij za pośrednictwem


Walidacja kodu przy użyciu diagramów warstwy

Aby upewnić się, że kod jest zgodny z projektem, możesz walidować kod za pomocą diagramów warstwowych w Visual Studio Ultimate i Visual Studio Premium.Może to ułatwić:

  • Znajdowanie konfliktów między zależnościami w kodzie i na diagramie warstwowym.

  • Znajdowanie zależności, na które mogły mieć wpływ proponowane zmiany.

    Na przykład możesz edytować diagram warstwowy, aby pokazać potencjalne zmiany architektury, a następnie walidować kod, aby zobaczyć zależności, na które miały wpływ zmiany.

  • Refaktoryzację lub migrację kodu do innego projektu.

    Znajdowanie kodu lub zależności, które wymagają pracy przy przenoszeniu kodu do innej architektury.

Możesz walidować kod ręcznie z otwartego diagramu warstwowego w Visual Studio lub z wiersza polecenia.Kod możesz również walidować automatycznie podczas uruchamiania lokalnych kompilacji lub programu Team Foundation Build.Zobacz Channel 9 wideo: projektowania i weryfikacji architektury za pomocą diagramów warstwowych.

Ważna uwagaWażne

Aby uruchomić walidację warstwy za pomocą programu Team Foundation Build, należy także zainstalować Visual Studio Ultimate na serwerze kompilacji.

Wymagania

  • Visual Studio Ultimate lub Visual Studio Premium

  • Visual Studio Ultimate na serwerze Team Foundation Build do automatycznej walidacji poprawności kodu za pomocą programu Team Foundation Build

  • Rozwiązanie, które ma projekt modelowania z diagramem warstwowym.Diagram warstwowy musi być połączony z artefaktami w projektach Visual C# .NET lub Visual Basic .NET, które chcesz walidować.Zobacz Tworzenie diagramów warstwy na podstawie kodu.

  • Sprawdzenie, czy element obsługuje walidację

  • Uwzględnienia innych projektów i zestawów .NET w walidacji

  • Ręczna walidacja kodu

  • Automatyczna walidacja kodu

  • Rozwiązywanie problemów związanych z walidacją warstwy

  • Omówienie i rozwiązywanie błędów walidacji warstwy

Sprawdzenie, czy element obsługuje walidację

Można połączyć warstwy witryn sieci Web, dokumentów pakietu Office, pliki w formacie zwykłego tekstu i pliki w projektach, które są udostępniane w wielu aplikacjach, ale nie będzie je uwzględnić procesu weryfikacji.Błędy walidacji nie będą widoczne w przypadku odwołań do projektów lub zestawów połączonych z oddzielnymi warstwami, jeżeli między tymi warstwami nie ma żadnych zależności.Odwołania te nie są uważane za zależności, chyba że w kodzie wykorzystano te odwołania.

  1. Diagramy warstwowe, wybierz polecenie co najmniej jedną warstwę, kliknij prawym przyciskiem myszy swój wybór, a następnie kliknij Wyświetl łącza.

  2. W Explorer warstwy, sprawdź weryfikacji obsługuje kolumny.Jeśli wartością jest false, element nie obsługuje walidacji.

Uwzględnienia innych projektów i zestawów .NET w walidacji

Po osiągnięciu elementów diagramu warstwy odniesienia do odpowiednich zestawów .NET lub projektów są dodawane automatycznie do odwołuje się do warstwy folderu w projekcie modelowania.Folder ten zawiera odwołania do zestawów i projektów, które są analizowane podczas walidacji.Możesz dołączyć inne projekty i zestawy .NET do walidacji bez ręcznego przeciągania ich do diagramu warstwowego.

  1. W Eksploratora rozwiązań, kliknij prawym przyciskiem myszy projekt modelowania lub odwołuje się do warstwy folderu, a następnie kliknij przycisk Dodaj odwołanie.

  2. W Dodaj odwołanie okno dialogowe, wybierz zestawy lub projektów, a następnie kliknij OK.

Ręczna walidacja kodu

Jeśli masz otwarte warstwowego diagramu, która jest połączona z elementów rozwiązania, możesz uruchomić sprawdzania poprawności polecenie skrótów z diagramu.Można także użyć wiersza polecenia do uruchamiania msbuild z /p:ValidateArchitecture o wartości właściwości niestandardowej True.Na przykład, po wprowadzeniu dowolnych zmian w kodzie należy regularnie wykonywać walidację warstwy tak, aby można było wcześnie wychwycić konflikty zależności.

Aby walidować kod z otwartego diagramu warstwowego

  1. Kliknij prawym przyciskiem myszy powierzchnię diagramu, a następnie kliknij przycisk weryfikacji architektury.

    [!UWAGA]

    Domyślnie Tworzenie akcji ma ustawioną właściwość w pliku diagramu (.layerdiagram) warstwy sprawdzania poprawności tak, aby diagramu jest uwzględniony w trakcie tego procesu.

    Lista błędów okno Raporty o błędach.Aby uzyskać więcej informacji na temat błędy sprawdzania poprawności, zobacz Opis i usuń błędy sprawdzania poprawności warstwy.

  2. Aby wyświetlić źródło każdego błędu, kliknij dwukrotnie błąd w Lista błędów okna.

    [!UWAGA]

    Visual Studio pokazuje wykres zależności zamiast źródła błędu.Dzieje się tak, gdy kod ma zależność z zestawem, która nie jest określona przez diagram warstwowy, lub gdy w kodzie brakuje zależności, która jest określona przez diagram warstwowy.Przejrzyj wykres zależności lub kod w celu określenia, czy powinna istnieć zależność.Aby uzyskać więcej informacji na temat wykresy zależności, zobacz Mapowanie zależności w kodzie na wykresach zależności.

  3. Aby zarządzać błędów, zobacz Zarządzanie błędy sprawdzania poprawności.

Aby walidować kod z wiersza polecenia

  1. Otwórz Visual Studio wiersza polecenia.

  2. Wybierz jedną z następujących opcji:

    • Potwierdzenie kodu projektu modelowania określonych w rozwiązaniu, uruchom MSBuild z następujących właściwości niestandardowej.

      msbuild <FilePath+ModelProjectFileName>.modelproj /p:ValidateArchitecture=true
      

      - lub -

      Przejdź do folderu, który zawiera modelowania projektu pliku (.modelproj) i diagramy warstwowe, a następnie uruchom MSBuild z następujących właściwości niestandardowej:

      msbuild /p:ValidateArchitecture=true 
      
    • Aby sprawdzić kod w odniesieniu do wszystkich projektów modelowania w rozwiązaniu, uruchom MSBuild z następujących właściwości niestandardowej:

      msbuild <FilePath+SolutionName>.sln /p:ValidateArchitecture=true 
      

      - lub -

      Przejdź do folderu rozwiązania, które musi zawierać modelowania projekt zawierający warstwowego diagramu, a następnie uruchom MSBuild z następujących właściwości niestandardowej:

      msbuild /p:ValidateArchitecture=true
      

    Zostaną wyświetlone wszystkie błędy.Aby uzyskać więcej informacji na temat MSBuild, zobacz MSBuild i Zadanie MSBuild.

Aby uzyskać więcej informacji na temat błędy sprawdzania poprawności, zobacz Opis i usuń błędy sprawdzania poprawności warstwy.

Zarządzanie błędami walidacji

Podczas procesu projektowania możesz pominąć niektóre konflikty zgłoszone podczas walidacji.Na przykład możesz pominąć błędy, które są już poprawiane lub które nie są istotne w konkretnym scenariuszu.Pomiń błąd, jest dobrze się zalogować elementu pracy Team Foundation.

Aby utworzyć element roboczy dla błędu walidacji

  • W Lista błędów okna, kliknij prawym przyciskiem myszy błąd, wskaż polecenie Utwórz element pracy, a następnie kliknij typ elementu pracy, który ma zostać utworzony.

Umożliwia zarządzanie błędy sprawdzania poprawności w tych zadań Lista błędów okna:

Aby

Wykonaj następujące kroki

Pomijanie wybranych błędów podczas walidacji

Kliknij prawym przyciskiem myszy co najmniej jeden błąd wybrany, wskaż polecenie Zarządzanie błędy sprawdzania poprawności, a następnie kliknij przycisk pominąć błędy.

Pominięte błędy są wyświetlane jako przekreślone.Przy następnym uruchomieniu walidacji te błędy nie pojawią się.

Pominięte błędy są śledzone w pliku .suppressions związanym z odpowiadającym im plikiem diagramu warstwowego.

Zaprzestanie pomijania wybranych błędów

Kliknij prawym przyciskiem myszy wybrany pomijane błąd lub błędy, wskaż polecenie Zarządzanie błędy sprawdzania poprawności, a następnie kliknij przycisk błędów Stop pomijanie.

Wybrane pominięte błędy pojawią się przy następnym uruchomieniu walidacji.

Przywróć pomijane wszystkie błędy w Lista błędów okna.

Kliknij prawym przyciskiem myszy Lista błędów okna, wskaż opcję Zarządzanie błędy sprawdzania poprawności, a następnie kliknij przycisk Pokaż wszystkie błędy pominięte.

Ukryj pomijane wszystkie błędy z Lista błędów okna.

Kliknij prawym przyciskiem myszy Lista błędów okna, wskaż opcję Zarządzanie błędy sprawdzania poprawności, a następnie kliknij przycisk Ukryj wszystkie błędy pominięte.

Automatyczna walidacja kodu

Walidację warstwy możesz wykonać przy każdym uruchomieniu lokalnej kompilacji.Jeśli Twój zespół korzysta z tworzenia programu Team Foundation, można wykonać weryfikacji warstwy z uzyskiwany zaewidencjonowania, które można określić, tworząc niestandardowe zadania MSBuild i raportach kompilacji używany do zbierania błędów sprawdzania poprawności. Aby utworzyć uzyskiwany ewidencjonowania kompilacji, zobacz Użycie procesu kompilacji ewidencjonowania warunkowego do sprawdzenia poprawności zmian.

Aby walidować kod automatycznie podczas lokalnej kompilacji

  • Użyj edytora tekstów, aby otworzyć plik projektu modelowania (.modelproj), a następnie dołącz następującą właściwość:
<ValidateArchitecture>true</ValidateArchitecture>

- lub -

  1. W Eksploratora rozwiązań, kliknij prawym przyciskiem myszy projekt modelowania, który zawiera warstwowego diagramu lub diagramów, a następnie kliknij przycisk właściwości.

  2. W właściwości okna, ustaw projektu modelowania weryfikacji architektury właściwości True.

    Dotyczy to projektów modelowania w trakcie procesu walidacji.

  3. W Eksploratora rozwiązań, kliknij warstwy plik diagramu (.layerdiagram), który ma być używany do weryfikacji.

  4. W właściwości okna, upewnij się, że diagramu Tworzenie akcji ma ustawioną wartość właściwości sprawdzania poprawności.

    Obejmuje to diagram warstwowy w trakcie procesu walidacji.

Aby zarządzać błędy w oknie Lista błędów, zobacz Zarządzanie błędy sprawdzania poprawności.

Aby sprawdzić kod automatycznie podczas tworzenia Team Foundation

  1. W Team Explorer, kliknij dwukrotnie definicję kompilacji, a następnie kliknij przycisk proces.

  2. W obszarze Parametry procesu kompilacji, rozwiń węzeł kompilacji, i wpisz następujące polecenie w argumenty MSBuild parametru:

    /p:ValidateArchitecture=true

Aby uzyskać więcej informacji na temat błędy sprawdzania poprawności, zobacz Opis i usuń błędy sprawdzania poprawności warstwy.Aby uzyskać więcej informacji na temat Team Foundation Build, zobacz:

Rozwiązywanie problemów związanych z walidacją warstwy

W poniższej tabeli opisano problemy związane z walidacją warstwy i ich rozwiązania.Problemy te różnią się od błędów, które wynikają z konfliktów między kodem i projektem.Aby uzyskać więcej informacji na temat tych błędów, zobacz Opis i usuń błędy sprawdzania poprawności warstwy.

Problem

Możliwa przyczyna

Rozwiązanie

Błędy walidacji nie występują w oczekiwany sposób.

Walidacja nie działa na diagramach warstwowych, które są kopiowane z innych diagramów warstwowych w Eksploratorze rozwiązań i które są w tym samym projekcie modelowania.Diagramy warstwowe kopiowane w ten sposób zawierają te same odwołania, co oryginalny diagram warstwowe.

  1. Dodaj nowy diagram warstwowy do projektu modelowania.

  2. Skopiuj elementy ze źródłowego diagramu warstwowego do nowego diagramu.

Omówienie i rozwiązywanie błędów walidacji warstwy

Podczas walidacji kodu na podstawie diagramu warstwowego błędy walidacji występują, gdy kod jest niezgodny z projektem.Na przykład następujące warunki mogą powodować występowanie błędów walidacji:

  • Artefakt jest przypisany do niewłaściwej warstwy.W takim przypadku przenieś artefakt.

  • Artefakt, taki jak klasa, używa innej klasy w sposób, który powoduje konflikt z architekturą.W tym przypadku zrefaktoryzuj kod, aby usunąć zależność.

Aby rozwiązać te błędy, aktualizuj kod, dopóki nie przestaną pojawiać się błędy podczas walidacji.Zadanie to możesz wykonać w sposób iteracyjny.

W poniższej sekcji opisano składnię, która jest używana w tych błędach, wyjaśniono znaczenie tych błędów i zasugerowano, co można zrobić, aby je rozwiązać lub zarządzać nimi.

Składnia

Opis

ArtifactN(ArtifactTypeN)

ArtifactN jest skojarzony z warstwy na warstwowego diagramu artefaktu.

ArtifactTypeN jest typem ArtifactN, takich jak klasy lub metody, na przykład:

MySolution.MyProject.MyClass.MyMethod(Metoda)

NamespaceNameN

Nazwa przestrzeni nazw.

LayerNameN

Nazwa warstwy na diagramie warstwowym.

DependencyType

Typ relacji zależności między Artifact1 i Artifact2.Na przykład Artifact1 ma wywołania relacji z Artifact2.

Błąd składni

Opis błędu

AV0001: Nieprawidłowy zależności: Artifact1(ArtifactType1)--> Artifact2(ArtifactType2)

Warstwy: LayerName1, LayerName2 | Zależności: DependencyType

Artifact1 w LayerName1 nie może mieć zależność Artifact2 w LayerName2 ponieważ LayerName1 nie ma bezpośredniej zależności na LayerName2.

AV1001: Nieprawidłowy obszar nazw: artefaktu

Warstwa: LayerName | Przestrzeń nazw wymagane: NamespaceName1 | Bieżący obszar nazw: NamespaceName2

LayerName wymaga, że jego skojarzony artefakty musi należeć do NamespaceName1.Artefaktu w NamespaceName2, a nie NamespaceName1.

AV1002: Zależy od nazw niedozwolony: Artifact1(ArtifactType1) | Artifact2(ArtifactType2)

Warstwa: LayerName | Przestrzeń nazw niedozwolony: NamespaceName | Zależności: DependencyType

LayerName wymaga, że jego skojarzony artefaktów nie może być zależna od NamespaceName.Artifact1 nie może zależeć od Artifact2 ponieważ Artifact2 w NamespaceName.

AV1003: W niedozwolony przestrzeni nazw: artefaktu(ArtifactType)

Warstwa: LayerName | Przestrzeń nazw niedozwolony: NamespaceName

LayerName wymaga, że jego skojarzony artefaktów nie może należeć do NamespaceName.Artefaktu należy do NamespaceName.

AV3001: Brak łącza: warstwy "LayerName"łącze do"artefaktu" którego nie można odnaleźć.Czy nie brakuje odwołania do zestawu?

LayerName łącza do artefaktu, którego nie można odnaleźć.Na przykład, może brakować łącza do klasy, ponieważ w projekcie modelowania brakuje odwołania do zestawu, który zawiera klasę.

AV9001: Analiza architektoniczna znalazła błędy wewnętrzne.Wyniki mogą być niepełne.Aby uzyskać więcej informacji, zobacz szczegółowy dziennik zdarzeń kompilacji lub okno danych wyjściowych.

Zobacz dziennik zdarzeń kompilacji lub okno danych wyjściowych, aby uzyskać więcej szczegółów.

Zobacz też

Koncepcje

Walidacja systemu w czasie projektowania