Diagramy závislostí: pokyny
Popište architekturu vaší aplikace na vysoké úrovni vytvořením diagramů závislostí v sadě Visual Studio. Ujistěte se, že váš kód zůstane konzistentní s tímto návrhem tím, že kód ověříte pomocí diagramu závislostí. Do procesu sestavení můžete zahrnout také ověření vrstvy.
Pokud chcete zjistit, které edice sady Visual Studio tuto funkci podporují, přečtěte si téma Podpora edice pro nástroje pro architekturu a modelování.
Poznámka:
Diagramy závislostí pro projekty .NET Core se podporují od sady Visual Studio 2019 verze 16.2.
Co je diagram závislostí?
Podobně jako u tradičního diagramu architektury diagram závislostí identifikuje hlavní komponenty nebo funkční jednotky návrhu a jejich vzájemné závislosti. Každý uzel v diagramu označovaný jako vrstva představuje logickou skupinu oborů názvů, projektů nebo jiných artefaktů. Můžete nakreslit závislosti, které by měly existovat v návrhu. Na rozdíl od tradičního diagramu architektury můžete ověřit, že skutečné závislosti ve zdrojovém kódu odpovídají zamýšleným závislostem, které jste zadali. Ověřením běžného sestavení na Team Foundation Serveru zajistíte, že kód programu bude i nadále dodržovat architekturu systému prostřednictvím budoucích změn. Viz diagramy závislostí: Referenční dokumentace.
Jak navrhnout nebo aktualizovat aplikaci pomocí diagramů závislostí
Následující kroky poskytují přehled použití diagramů závislostí v rámci procesu vývoje. Další části tohoto tématu popisují více podrobností o jednotlivých krocích. Pokud vyvíjíte nový návrh, vyhnete se krokům, které odkazují na existující kód.
Poznámka:
Tyto kroky se zobrazí v přibližném pořadí. Pravděpodobně budete chtít překrývat úkoly, změnit jejich pořadí tak, aby vyhovovaly vaší vlastní situaci, a znovu se k nim vrátit na začátku každé iterace v projektu.
Vytvořte diagram závislostí pro celou aplikaci nebo pro vrstvu v ní.
Definujte vrstvy, které představují primární funkční oblasti nebo komponenty vaší aplikace. Pojmenujte tyto vrstvy podle jejich funkce, například "Presentation" nebo "Services". Pokud máte řešení sady Visual Studio, můžete každou vrstvu přidružit ke kolekci artefaktů, jako jsou projekty, obory názvů, soubory atd.
Objevte existující závislosti mezi vrstvami.
Upravte vrstvy a závislosti a zobrazte aktualizovaný návrh, který má kód odrážet.
Navrhněte nové oblasti aplikace tak, že vytvoříte vrstvy představující hlavní architektonické bloky nebo komponenty a definujete závislosti, abyste ukázali, jak každá vrstva používá ostatní.
Upravte rozložení a vzhled diagramu , abyste ho mohli probrat s kolegy.
Ověřte kód proti diagramu závislostí, abyste zvýraznili konflikty mezi kódem a požadovanou architekturou.
Aktualizujte kód tak, aby odpovídal vaší nové architektuře. Iterativní vývoj a refaktorování kódu, dokud ověření nezobrazí žádné konflikty.
Do procesu sestavení zahrňte ověření vrstvy, abyste zajistili, že kód bude i nadále dodržovat váš návrh.
Vytvoření diagramu závislostí
Diagram závislostí musí být vytvořen uvnitř projektu modelování. Do existujícího projektu modelování můžete přidat nový diagram závislostí, vytvořit nový projekt modelování pro diagram závislostí nebo zkopírovat existující diagram závislostí v rámci stejného projektu modelování.
Důležité
Nepřidávejte, přetahujte ani nekopírujte existující diagram závislostí z projektu modelování do jiného projektu modelování nebo do jiného umístění v řešení. Diagram závislostí, který se tímto způsobem zkopíruje, bude mít stejné odkazy jako původní diagram, i když diagram upravíte. Tím zabráníte správnému fungování ověřování vrstev a může dojít k jiným problémům, jako jsou chybějící prvky nebo jiné chyby při pokusu o otevření diagramu.
Viz Vytváření diagramů závislostí z kódu.
Definování vrstev pro reprezentaci funkčních oblastí nebo součástí
Vrstvy představují logické skupiny artefaktů, jako jsou projekty, soubory kódu, obory názvů, třídy a metody. Vrstvy můžete vytvářet z artefaktů z projektů Visual C# a Visual Basic nebo můžete k vrstvě připojit specifikace nebo plány propojením dokumentů, jako jsou wordové soubory nebo powerpointové prezentace. Každá vrstva se zobrazí jako obdélník v diagramu a zobrazuje počet artefaktů, které jsou s ním propojené. Vrstva může obsahovat vnořené vrstvy, které popisují konkrétnější úlohy.
Obecně platí, že vrstvy názvů podle jejich funkce, například "Prezentace" nebo "Služby". Pokud jsou artefakty úzce vzájemně závislé, umístěte je do stejné vrstvy. Pokud je možné artefakty aktualizovat samostatně nebo je použít v samostatných aplikacích, umístěte je do různých vrstev.
Tip
Existují určité typy artefaktů, které můžete propojit s vrstvami, ale nepodporují ověřování v diagramu závislostí. Pokud chcete zjistit, jestli artefakt podporuje ověřování, otevřete Průzkumníka vrstev a prozkoumejte vlastnost Supports Validation odkazu artefaktu. Viz Zjišťování existujících závislostí mezi vrstvami.
Při aktualizaci neznámé aplikace můžete také vytvořit mapy kódu. Tyto diagramy vám můžou pomoct při zjišťování vzorů a závislostí při zkoumání kódu. Pomocí Průzkumník řešení můžete prozkoumat obory názvů a třídy, které často dobře odpovídají existujícím vrstvám. Přiřaďte tyto artefakty kódu vrstvám přetažením z Průzkumník řešení do diagramů závislostí. Pak můžete použít diagramy závislostí, které vám pomůžou kód aktualizovat a udržovat ho v souladu s návrhem.
Přečtěte si:
Zjišťování existujících závislostí mezi vrstvami
Závislost existuje všude, kde artefakt, který je spojen s jednou vrstvou, odkazuje na artefakt, který je přidružen k jiné vrstvě. Třída v jedné vrstvě například deklaruje proměnnou, která má třídu v jiné vrstvě. Existující závislosti můžete zjistit pomocí zpětné analýzy.
Poznámka:
Pro určité druhy artefaktů nelze provádět zpětnou analýzu žádných závislostí. Zpětnou analýzou například nebudou získány žádné závislosti z vrstvy nebo do ní, když je propojena s textovým souborem. Pokud chcete zjistit, které artefakty mají závislosti, které můžete zpětně analyzovat, klikněte pravým tlačítkem myši na jednu nebo více vrstev a potom klikněte na zobrazit odkazy. V Průzkumníku vrstev zkontrolujte sloupec Podporuje ověřování. Závislosti nebudou zpětně analyzovat pro artefakty, pro které tento sloupec zobrazuje hodnotu False.
Postup zpětné analýzy existujících závislostí mezi vrstvami
Vyberte jednu vrstvu nebo více vrstev, klikněte pravým tlačítkem myši na vybranou vrstvu a potom klikněte na Generovat závislosti.
Obvykle se zobrazí nějaké závislosti, které by neměly existovat. Tyto závislosti lze upravit, aby odpovídaly zamýšlenému návrhu.
Úprava vrstev a závislostí tak, aby zobrazovaly zamýšlený návrh
Pokud chcete popsat změny, které plánujete provést v systému nebo zamýšlené architektuře, upravte diagram závislostí pomocí následujících kroků. Před rozšířením můžete také zvážit některé změny refaktoringu, abyste zlepšili strukturu kódu. Viz Vylepšení struktury kódu.
Na | Provedení těchto kroků |
---|---|
Odstranění závislosti, která by neměla existovat | Klikněte na závislost a stiskněte klávesu DELETE. |
Změna nebo omezení směru závislosti | Nastavte vlastnost Direction . |
Vytvoření nových závislostí | Použijte nástroje závislostí a obousměrných závislostí. Chcete-li nakreslit více závislostí, klikněte na nástroj dvakrát. Až budete hotovi, klikněte na nástroj Ukazatel nebo stiskněte klávesu ESC . |
Zadání toho, aby artefakty spojené s vrstvou nemohly záviset na zadaných oborech názvů | Zadejte obory názvů ve vlastnosti Zakázáno závislosti oboru názvů vrstvy. K oddělení oborů názvů použijte středník (;). |
Zadání toho, aby artefakty spojené s vrstvou nesměly patřit zadanému oboru názvů | Zadejte obory názvů ve vlastnosti Zakázáno obory názvů vrstvy. K oddělení oborů názvů použijte středník (;). |
Zadání toho, aby artefakty spojené s vrstvou musely patřit jednomu ze zadaných oborů názvů | Do vlastnosti Required Namespaces vrstvy zadejte obor názvů. K oddělení oborů názvů použijte středník (;). |
Zlepšení struktury kódu
Změny refaktoringu jsou vylepšení, která neovlivňují chování aplikace, ale usnadňují změnu a rozšíření kódu v budoucnu. Dobře strukturovaný kód má návrh, který se snadno abstrahuje do diagramu závislostí.
Pokud například vytvoříte vrstvu pro každý obor názvů v kódu a potom zpětnou analýzu závislostí, měla by existovat minimální sada jednosměrných závislostí mezi vrstvami. Pokud jako vrstvy vytvoříte podrobnější diagram pomocí tříd nebo metod, výsledek by měl mít stejné charakteristiky.
Pokud tomu tak není, bude kód v průběhu svého života obtížnější změnit a bude méně vhodný pro ověřování pomocí diagramů závislostí.
Návrh nových oblastí aplikace
Když začnete vyvíjet nový projekt nebo novou oblast v novém projektu, můžete nakreslit vrstvy a závislosti, které vám pomůžou identifikovat hlavní komponenty, než začnete vyvíjet kód.
Pokud je to možné, můžete v diagramech závislostí zobrazit identifikovatelné vzory architektury. Diagram závislostí, který popisuje desktopovou aplikaci, může například obsahovat vrstvy, jako jsou Prezentace, Logika domény a Úložiště dat. Diagram závislostí, který pokrývá jednu funkci v aplikaci, může mít vrstvy, jako je model, zobrazení a kontroler.
Vytvořte artefakt kódu pro každou vrstvu , jako je obor názvů, třída nebo komponenta. To usnadňuje sledování kódu a propojení artefaktů kódu s vrstvami. Jakmile vytvoříte každý artefakt, propojte ho s příslušnou vrstvou.
Většinu tříd a dalších artefaktů nemusíte propojit s vrstvami , protože spadají do větších artefaktů, jako jsou obory názvů, které jste už propojili s vrstvami.
Vytvořte nový diagram pro novou funkci. Obvykle bude existovat jeden nebo více diagramů závislostí popisující celou aplikaci. Pokud navrhujete novou funkci v rámci aplikace, nepřidávejte stávající diagramy ani neměňte. Místo toho vytvořte vlastní diagram, který odráží nové části kódu. Vrstvy v novém diagramu můžou zahrnovat prezentační, doménové logiky a databázové vrstvy pro novou funkci.
Při sestavování aplikace se váš kód ověří jak v celkovém diagramu, tak v podrobnějším diagramu funkcí.
Úprava rozložení prezentace a diskuze
Abyste mohli identifikovat vrstvy a závislosti nebo je prodiskutovat s členy týmu, upravte vzhled a rozložení diagramu následujícími způsoby:
Změňte velikosti, obrazce a umístění vrstev.
Změňte barvy vrstev a závislostí.
- Vyberte jednu nebo více vrstev nebo závislostí, klikněte pravým tlačítkem myši a potom klikněte na příkaz Vlastnosti. V okně Vlastnosti upravte vlastnost Barva .
Ověření kódu v diagramu
Když diagram upravíte, můžete ho kdykoliv ověřit proti kódu ručně nebo automaticky při každém sestavení.
Přečtěte si:
Aktualizace kódu tak, aby odpovídal nové architektuře
Chyby se obvykle zobrazí při prvním ověření kódu proti aktualizovanému diagramu závislostí. Tyto chyby můžou mít několik příčin:
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. Obvykle se jedná o iterativní proces. Další informace o těchto chybách najdete v tématu Ověření kódu pomocí diagramů závislostí.
Poznámka:
Při vývoji nebo refaktorování kódu můžete mít nové artefakty pro propojení s diagramem závislostí. To ale nemusí být nutné, například pokud máte vrstvy, které představují existující obory názvů, a nový kód do těchto oborů názvů přidá pouze další materiál.
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. Když potlačíte chybu, je vhodné protokolovat pracovní položku v Team Foundation. Chcete-li provést tuto úlohu, přečtěte si téma Ověření kódu pomocí diagramů závislostí.
Zahrnutí ověření vrstvy do procesu sestavení
Pokud chcete zajistit, aby budoucí změny v kódu odpovídaly diagramům závislostí, zahrňte ověření vrstev do standardního procesu sestavení vašeho řešení. Kdykoli ostatní členové týmu sestaví řešení, všechny rozdíly mezi závislostmi v kódu a diagramem závislostí se budou hlásit jako chyby sestavení. Další informace o zahrnutí ověřování vrstev v procesu sestavení naleznete v tématu Ověření kódu pomocí diagramů závislostí.