Eine neue Möglichkeit für die Validierung der Architektur einer Anwendung liefert Visual Studio 2017 mit dem Werkzeug Dependency Validation. Alle nötigen Informationen, die Sie benötigen, sind in diesem Blogbeitrag zu finden.
Funktionalität
Das Werkzeug ermöglicht die Abhängigkeitsprüfung von Klassen. Die Architektur wird in verschiedene Layer geliedert und für jeden Layer können ihre Bestandteile definiert werden. Zwischen den Layern ist es mit Pfeilen möglich, die gerichteten Abhängigkeiten festzulegen. Diese Abbildungen befinden sich in einer Datei mit der Endung layerdiagram.
Der geübte Visual Studio-Anwender wird sich fragen: Moment, Layer-Diagramme, da gab es doch schon was?
Das stimmt. Layer-Diagramme werden ab Visual Studio 2010 unterstützt.
Die darunterliegende Technik zur Validierung ist mit Visual Studio 2017 jedoch eine andere. Die Diagramme heißen nun Dependency-Diagramme und nicht mehr Layer-Diagramme. Dank des Compiler-Frameworks Roslyn werden die Abhängigkeiten während des Schreibens von Source Code überprüft. Es muss nicht mehr wie bei Vorgängerversionen, eine Validierung manuell gestartet werden oder bei aktivierter Validierung nach dem Übersetzen der Anwendung automatisiert überprüft werden. Durch die schnellere Rückmeldung fügt sich die neue Validierung besser in den Entwicklungsalltag ein. Verstöße gegen die definierte Architektur werden in der Datei visuell hervorgehoben, ein Text erklärt der Grund des Verstoßes. Wie gewohnt werden die Architekturverstöße im Output-Pane zentral zusammengefasst.
Umstieg
Nach dem Öffnen einer Solution mit Layer-Diagrammen bietet Visual Studio 2017 ein automatisches Update dieser Diagramme und Projekte an. Nach dem Starten des Updates muss je nach Anzahl und Größe der Diagramme einige Zeit gewartet werden. Ein visuelles Feedback ist nicht vorhanden.
Update eines Projekts mit Layer-Diagrammen
Visual Studio 2017 fügt dabei jedes Dependency-Diagramm als Link in jedes Projekt ein. Dies ist für den Roslyn-Analyzer zwingend notwendig. Die zusätzlichen Links vergrößern die Liste aller Dateien eines Projektes unnötig. Microsoft verspricht jedoch Abhilfe, indem ein neuer versteckter Linktyp eingeführt wird. Dies ist zum Zeitpunkt der Veröffentlichung dieses Artikels nicht umgesetzt. Eine Lösung für die Abwärtskompatibilität zu den vorherigen Visual Studio-Versionen steht noch aus.
Falls ein neues Dependency-Diagramm dem Architekturprojekt hinzugefügt werden soll, muss dies über die Menüpunkte “Architecture” und “New Dependency Validation Diagram” erfolgen.
Hinzufügen eines neuen Dependency-Diagramms
Das Editieren eines Dependency-Diagramms verhält sich wie gewohnt. Es wurden einige Bezeichnungen bestehender Funktionalität verständlicher gewählt. Das folgende Bild veranschaulicht ein Dependency-Diagram.
Microsoft hat bereits den nächsten Schritt im Blick. Für SonarQube ist ein Plugin in Arbeit, dieses ermöglicht die Erfassung der Verstöße als technische Schuld [1].
Änderungen
Ein elementarer Grund für die Verwendung einer Enterprise-Lizenz bis VS 2015 sind unter anderem die Architecture and Modeling Tools. Ab Visual Studio 2017 beschränkt sich dies fortan auf den Typ des Dependency-Diagramms, alle anderen Diagrammtypen fallen weg.
Als Lösung für die fehlende Unterstützung empfiehlt Microsoft eine Vorgängerversion von Visual Studio zu verwenden oder auf ein Drittprodukt zu wechseln. Die Begründung seitens Microsoft kann im Blogbeitrag UML Designers have been removed; Layer Designer now supports live architectural analysis nachgelesen werden.
Fazit
Ein Umstieg auf die neue Validierung ist einfach und von Haus aus möglich. Die Bedienbarkeit ist verbesserungswürdig, wird aber von Microsoft bereits adressiert. Tränen bringt das Wegfallen der anderen Diagrammtypen. Um diese weiterverwenden zu können, wird eine Vorgängerversion von Visual Studio 2017 auf dem Rechner benötigt.