Ich habe eine ziemlich komplexe Anwendung, die in mehrere Komponenten aufgeteilt wurde. Jede Komponente hat eine Lösungsdatei, die eine Reihe von Projekten enthält. Daher denke ich, dass eine Komponente mehrere Projekte / DLLs enthält. Es gibt auch eine "gemeinsame" Komponente. Alle anderen Komponenten hängen von "Common" ab. Also ein Kompilieren geht so:
"nant component1.compile"
kompiliert "common" und kompiliert dann component1, da component1 von "common" abhängt.
Im Laufe der Zeit ist "Common" ziemlich groß geworden. Ich bin mir ziemlich sicher, dass es in ein paar kleinere Komponenten aufgeteilt werden kann. Dann müssen Komponenten nur von einigen dieser kleineren, "gemeinsamen" aufgebrochenen Komponenten abhängen. Dies würde hoffentlich die Kompilierzeit für die verschiedenen Komponenten reduzieren.
Also Frage: Ich möchte die Abhängigkeit zwischen allen verschiedenen Projekten in der Anwendung visualisieren, während ich auch die Komponente kennzeichne, zu der das Projekt gehört. Wie würdest du das machen?
Das Tool NDepend schlägt einen Abhängigkeitsgraphen vor, der mit einer Abhängigkeitsmatrix gekoppelt ist. Standardmäßig erhalten Sie ein Abhängigkeitsdiagramm von .NET-Assemblys und es ist nicht auf Assemblies von nur einer VS-Lösung beschränkt. NDepend ist in VS 2017, 2015, 2013, 2012, 2010 integriert und kann jede Art von Grafik in Ihrem Code anzeigen, einschließlich:
usw. ...
Dies ist alles erklärt hier .
NDepend schlägt außerdem eine Abhängigkeitsstrukturmatrix (DSM) und einen Weg zu Abfrageabhängigkeiten mit C # LINQ-Abfragen .
Sie können sich NDepend ansehen: Ссылка
Bearbeiten zum Hinzufügen:
Patrick Smacchia , führender Entwickler von NDepend, bloggt hier: Ссылка und hat viel zum Thema Komponentalisierung geschrieben, was Sie vielleicht nützlich finden.
Wenn Sie Zugriff auf Visual Studio 2010 Ultimate haben, können Sie Generate Dependency Graph
im Menü Architecture
auswählen.
Es gibt eine exemplarische Vorgehensweise in MSDN: Gewusst wie: Erstellen von Abhängigkeitsgraphen für .NET-Code
Ich würde versuchen, es in ein UML-Tool zu importieren, das das Abhängigkeitsdiagramm zwischen Modulen für mich rendern könnte.
Es gibt mehrere auf dem Markt, sowohl kommerzielle als auch Open Source. Holen Sie sich die Lösung, die Ihnen die meisten Möglichkeiten für Ihr Budget bietet.
Sehen Sie sich mein kostenloses DSM-Plugin für .NET Reflector an, das von www.tom-carter.net
heruntergeladen werden kannEr ermöglicht zwei verschiedene Ansichten zu Ihren Abhängigkeiten: ein Bereitstellungsmodell zum Auffinden der Abhängigkeiten zwischen Assemblys und ein Architekturmodell zum Anzeigen von Abhängigkeiten zwischen Typen.
Wenn es die gesuchten Informationen nicht visuell bereitstellt, können Sie das Modell in XML speichern und ein eigenes Skript für die Daten ausführen.
Der Vorteil einer Abhängigkeitsmatrix ist, dass es viel einfacher ist, Abhängigkeiten visuell zu analysieren als Box- und Liniendiagramme
Wenn Sie mehr Hilfe brauchen, lassen Sie mich jetzt
[Update] Dieses Plugin ist jetzt in Form eines Visual Studio Add-Ins verfügbar
Tags und Links dependencies .net c# csproj visualization