Sdílet prostřednictvím


Ověřování kódu pomocí diagramů vrstev

Chcete-li zajistit, aby kód nebyl v konfliktu s návrhem, je možné jej ověřit diagramem vrstev v systému Visual Studio Ultimate nebo Visual Studio Premium.To může pomoci při:

  • Vyhledání konfliktů mezi závislostmi v kódu a závislostmi v diagramu vrstev.

  • Vyhledání závislostí, které mohou být ovlivněny navrhovanými změnami.

    Například lze upravit diagram vrstev pro zobrazení možných změn architektury a následně ověřit kód pro vyhledání ovlivněných závislostí.

  • Refaktorujte nebo přeneste kód do jiného návrhu.

    Vyhledejte kód nebo závislosti, které vyžadují práci při přenesení kódu do jiné architektury.

Kód lze ověřit manuálně z otevřeného diagramu vrstev v systému Visual Studio nebo z příkazového řádku.Kód lze rovněž automaticky ověřit při spuštění místních sestavení nebo procesu Team Foundation Build.Podívejte se na téma kanálu 9 Video: návrh a ověřování pomocí diagramů vrstev architektury.

Důležitá poznámkaDůležité

Pokud chcete spustit ověření vrstvy pomocí procesu Team Foundation Build, je rovněž nutné nainstalovat systém Visual Studio Ultimate na serveru sestavení.

Požadavky

  • Ultimate Visual Studio nebo Visual Studio Premium

  • Systém Visual Studio Ultimate na serveru Team Foundation Build pro automatické ověřování kódu pomocí procesu Team Foundation Build

  • Řešení, které má projekt modelování s diagramem vrstev.Tento diagram vrstev musí být spojen s artefakty v projektech Visual C# .NET nebo Visual Basic .NET, které chcete ověřit.Podívejte se na téma Vytváření diagramů vrstev z kódu.

  • Zjištění, zda položka podporuje validaci

  • Zahrnutí dalších projektů a sestavení .NET pro ověřování

  • Ověřování kódu ručně

  • Ověřování kódu automaticky

  • Poradce při potížích s ověřením vrstvy

  • Pochopení a vyřešení chyb ověření vrstvy

Zjištění, zda položka podporuje validaci

Můžete propojit vrstvy s weby, dokumenty sady Office, soubory ve formátu prostého textu a soubory v projektech, které jsou sdíleny více aplikacemi, ale proces ověření nepovažují.Chyby ověřování se neobjeví pro odkazy na projekty nebo sestavení, které jsou připojeny k samostatným vrstvám a v případě, že se mezi těmito vrstvami neobjeví závislosti.Tyto odkazy jsou považovány za závislosti jen tehdy, pokud kód tyto odkazy používá.

  1. Na vrstvu diagramu, vyberte jednu nebo více vrstev, klikněte pravým tlačítkem na váš výběr a potom klikněte na tlačítko Zobrazit odkazy.

  2. V Explorer vrstvy, podívejte se na podporuje ověření sloupce.Pokud je hodnota false, položka ověřování nepodporuje.

Zahrnutí dalších projektů a sestavení .NET pro ověřování

Při přetahování položek na diagramu vrstev, odkazy na odpovídající sestavení .NET nebo projekty jsou přidány automaticky až vrstva odkazuje na složky projektu modelování.Tato složka obsahuje odkazy na sestavení a projekty, které jsou analyzovány během ověřování.Další sestavení a projekty .NET lze vložit do diagramu vrstev pro ověření bez nutnosti je ručně přetahovat.

  1. V Průzkumníka řešení, klikněte pravým tlačítkem myši na projekt modelování nebo vrstva odkazuje na složku a potom klikněte na tlačítko Přidat odkaz.

  2. V Přidat odkaz dialogového okna, vyberte sestavení nebo projekty a potom klikněte na tlačítko OK.

Ověřování kódu ručně

Pokud máte diagramu otevřít vrstvu, propojené položky řešení, můžete spustit Ověřit příkaz zástupce z diagramu.Můžete také do příkazového řádku pro spuštění msbuild s /p:ValidateArchitecture Vlastní vlastnost nastavena na True.Například lze při provádění změn v kódu provádět pravidelně ověřování vrstvy, takže bude možné zachytit konflikty závislostí včas.

Ověření kódu z otevřeného diagramu vrstev

  1. Klikněte pravým tlačítkem myši na plochu diagramu a potom klikněte na tlačítko ověření architektura.

    [!POZNÁMKA]

    Ve výchozím nastavení proces sestavení na vrstvu souboru diagramu (.layerdiagram) je nastavena na Ověřit tak, aby diagramu je součástí procesu ověření.

    Seznam chyb okna oznámí všechny chyby, k nimž došlo.Další informace o chyb ověření naleznete v tématu Principy a vyřešení chyby ověření vrstvy.

  2. Chcete-li zobrazit zdroj každé chybě, dvakrát klikněte na chybu v Seznam chyb okna.

    [!POZNÁMKA]

    Visual Studio může se zobrazit graf závislosti namísto zdroj chyby.K tomu dochází, pokud kód obsahuje závislost na sestavení, které není specifikováno diagramem vrstvy, nebo pokud kódu chybí závislost zadaná pomocí diagramu vrstev.Zkontrolujte graf závislostí nebo kód určující, zda by měla závislost existovat.Další informace o grafy závislostí, naleznete v části Mapování závislostí ve vašem kódu v grafech závislostí.

  3. Ke správě chyb, naleznete v části Spravovat chyby ověření.

Ověřování kódu v příkazovém řádku

  1. Otevřít Visual Studio příkazového řádku.

  2. Vyberte jednu z následujících možností:

    • Chcete-li ověřit kód proti konkrétní modelování projektu v řešení, spusťte MSBuild s následující vlastní vlastnost.

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

      - nebo -

      Přejděte do složky, která obsahuje modelování souboru (.modelproj) a vrstva diagramu projektu a potom spusťte MSBuild s následující vlastní vlastnost:

      msbuild /p:ValidateArchitecture=true 
      
    • Chcete-li ověřit kód proti všechny modelování projekty v řešení, spusťte MSBuild s následující vlastní vlastnost:

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

      - nebo -

      Přejděte do složky řešení, které musí obsahovat modelování projekt, který obsahuje diagramu vrstev a potom spusťte MSBuild s následující vlastní vlastnost:

      msbuild /p:ValidateArchitecture=true
      

    Zobrazí se všechny chyby, ke kterým dochází.Další informace o MSBuild, naleznete v části MSBuild a MSBuild – úloha.

Další informace o chyb ověření naleznete v tématu Principy a vyřešení chyby ověření vrstvy.

Správa chyb ověřování

Během procesu vývoje můžete chtít potlačit některé vykázané konflikty během ověřování.Například můžete chtít potlačit chyby, které již řešíte nebo které nejsou relevantní k danému scénáři.Pokud je potlačit chybu, je vhodné se přihlásit pracovní položku v Team Foundation.

Vytvoření pracovní položky pro chybu ověřování

  • V Seznam chyb okna, klikněte pravým tlačítkem na chyby, přejděte na vytvořit pracovní položku, a potom klikněte na typ pracovní položky, které chcete vytvořit.

Umožňuje spravovat chyby ověření na tyto úlohy Seznam chyb okna:

Chcete-li

Postupujte podle těchto kroků

Potlačení vybraných chyb během ověřování

Klikněte pravým tlačítkem na jeden nebo více vybraných chyby, přejděte na Spravovat chyby ověření, a potom klikněte na tlačítko Potlačit chyby.

Potlačené chyby se zobrazují s přeškrtnutím.Při příštím spuštění ověřování se tyto chyby nezobrazí.

Potlačené chyby jsou sledovány v souboru .suppressions pro odpovídající soubor diagramu vrstev.

Ukončení potlačování vybraných chyb

Klikněte pravým tlačítkem na vybrané potlačeno chybu nebo chyby, přejděte na Spravovat chyby ověření, a potom klikněte na tlačítko chybami Stop potlačení.

Vybrané potlačené chyby se při příštím spuštění ověřování zobrazí.

Obnovit všechny potlačeno chyby v Seznam chyb okna

Pravým tlačítkem kdekoliv v Seznam chyb okna, přejděte na příkaz Spravovat chyby ověření, a potom klikněte na tlačítko Zobrazit všechny chyby potlačeno.

Skrýt vše potlačeno chyby z Seznam chyb okna

Pravým tlačítkem kdekoliv v Seznam chyb okna, přejděte na příkaz Spravovat chyby ověření, a potom klikněte na tlačítko Skrýt všechny chyby potlačeno.

Ověřování kódu automaticky

Ověřování vrstev lze provádět při každém spuštění místního sestavení.Pokud váš tým používá Team Foundation Build, je možné provést ověřování vrstvy s ověřovaným vrácení se změnami, které můžete určit vytvořením vlastní úkol MSBuild a použití sestav sestavení shromažďování chyb ověření. Chcete-li vytvořit ověřovaným vrácení se změnami sestavení, naleznete v části Použití procesu sestavení s hlídaným vrácením se změnami pro ověření změn.

Automatické ověřování kódu během místního sestavení

  • K otevření souboru projektu modelování (.modelproj) použijte textový editor a následně vložte následující vlastnost:
<ValidateArchitecture>true</ValidateArchitecture>

- nebo -

  1. V Průzkumníka řešení, klikněte pravým tlačítkem na projekt modelování, který obsahuje diagramu vrstev nebo diagramy a potom klikněte na tlačítko Vlastnosti.

  2. V Vlastnosti okna, nastavte projektu modelování ověření architektura vlastnost, která má True.

    To zahrne projekt modelování do ověřovacího procesu.

  3. V Průzkumníka řešení, klepněte na vrstvu diagramu (.layerdiagram) soubor, který chcete použít pro ověření.

  4. V Vlastnosti okna, ujistěte se, že na diagram proces sestavení je vlastnost nastavena na Ověřit.

    To zahrne diagram vrstev do ověřovacího procesu.

Chcete-li spravovat chyby v okně Seznam chyb, naleznete v části Spravovat chyby ověření.

Ověření kódu automaticky během Team Foundation Build

  1. V Průzkumníka týmových projektů, poklepejte na definici sestavení a potom klikněte na tlačítko proces.

  2. V části Parametry procesu sestavení, rozbalte položku kompilace, a zadejte následující příkaz v MSBuild argumenty parametru:

    /p:ValidateArchitecture=true

Další informace o chyb ověření naleznete v tématu Principy a vyřešení chyby ověření vrstvy.Další informace o Team Foundation Build, podívejte se na téma:

Poradce při potížích s ověřením vrstvy

Následující tabulka popisuje problémy s ověřením vrstvy a jejich řešení.Tyto problémy se liší od chyb, které vzniknou z konfliktů mezi kódem a návrhem.Další informace o těchto chyb, naleznete v části Principy a vyřešení chyby ověření vrstvy.

Problém

Možná příčina

Řešení

Chyby ověřování se nezobrazí podle očekávání.

Ověřování nefunguje v diagramech vrstev, které jsou zkopírovány z jiných diagramů vrstev v Průzkumníku řešení a jsou ve stejném projektu modelování.Diagramy vrstev, které se tímto způsobem zkopírují, obsahují stejné odkazy jako původní diagram vrstev.

  1. Přidejte do projektu modelování nový diagram vrstev.

  2. Zkopírujte prvky ze zdrojového diagramu vrstev do nového diagramu.

Pochopení a vyřešení chyb ověřování vrstev

Při ověřování kódu proti diagramu vrstev se vyskytnou chyby, pokud bude kód v konfliktu s návrhem.Chyby ověřování mohou způsobit například následující podmínky:

  • Artefakt je přiřazen nesprávné vrstvě.V tomto případě přesuňte artefakt.

  • Artefakt, jako je například třída, používá jiné třídy způsobem, který je v konfliktu s architekturou.V tomto případě refaktorujte kód a odeberte závislost.

Chcete-li tyto chyby odstranit, aktualizujte kód, dokud se během ověřování neobjeví žádné chyby.Tuto úlohu lze provést iteračním způsobem.

Následující oddíl popisuje syntaxi, která se u těchto chyb používá, vysvětluje význam těchto chyb a navrhne, jak je vyřešit nebo spravovat.

Syntaxe

Popis

ArtifactN(ArtifactTypeN)

ArtifactN je artefakt, který je přidružen vrstvu na vrstvu diagramu.

ArtifactTypeN je typ ArtifactN, jako je například třídy nebo metody, například:

MySolution.MyProject.MyClass.MyMethod(Method)

NamespaceNameN

Název oboru názvů.

LayerNameN

Název vrstvy v diagramu vrstev.

DependencyType

Typ vztahu závislosti mezi Artifact1 a Artifact2.Můžete například Artifact1 má volání relace s Artifact2.

Chyba syntaxe

Popis chyby

AV0001: Neplatná závislost: Artifact1(ArtifactType1)--> Artifact2(ArtifactType2)

Vrstvy: LayerName1, LayerName2 | Závislosti: DependencyType

Artifact1 v LayerName1 by neměl má závislost na Artifact2 v LayerName2 vzhledem k tomu, LayerName1 nemá přímé závislosti v LayerName2.

AV1001: Neplatný obor názvů: artefaktu

Vrstva: LayerName | Požadovaný obor názvů: NamespaceName1 | Aktuální obor názvů: NamespaceName2

LayerName vyžaduje, aby jeho přidružené artefakty musí patřit do NamespaceName1.Artefaktu je v NamespaceName2, nikoli NamespaceName1.

AV1002: Závisí na zakázané obor názvů: Artifact1(ArtifactType1) | Artifact2(ArtifactType2)

Vrstva: LayerName | Zakázané obor názvů: NamespaceName | Závislosti: DependencyType

LayerName vyžaduje, aby jeho přidružené artefakty nesmí být závislá na NamespaceName.Artifact1 nemůže záviset na Artifact2 vzhledem k tomu, Artifact2 je v NamespaceName.

AV1003: V oboru názvů zakázané: artefaktu(ArtifactType)

Vrstva: LayerName | Zakázané obor názvů: NamespaceName

LayerName vyžaduje, aby jeho přidružené artefakty nemůže patřit do NamespaceName.Artefaktu patří do NamespaceName.

AV3001: chybějící vazby: vrstvy 'LayerName"odkazuje na"artefaktu"který nelze nalézt.Nechybí odkaz na sestavení?

LayerName odkazy na artefakt, který nebyl nalezen.Odkaz na třídu může chybět například proto, že projekt modelování nemá odkaz na sestavení obsahující třídu.

AV9001: Strukturální analýza nalezla vnitřní chyby.Výsledky nemusí být úplné.Další informace lze nalézt v podrobném protokolu událostí sestavení nebo ve výstupním okně.

Více podrobností lze nalézt v protokolu událostí sestavení nebo ve výstupním okně.

Viz také

Koncepty

Ověřování systému během vývoje