Wie bekomme ich ein Diagramm der Abhängigkeiten zwischen meinen C # -Projekten

8

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?

    
Rohith 25.08.2010, 09:29
quelle

7 Antworten

1

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:

  • Abhängigkeiten zwischen Baugruppen
  • Methodenaufrufdiagramm,
  • Abhängigkeiten von Namespaces innerhalb eines VS-Projekts,
  • Abhängigkeiten von Typen in einem Namespace,
  • Klassen Vererbungsdiagramm,
  • Graph, der Klassen darstellt, die zwischen zwei Komponenten koppeln

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 .

    
Patrick from NDepend team 01.09.2010, 13:59
quelle
3

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.

    
mathieu 25.08.2010 09:36
quelle
2

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

    
Richard Szalay 25.08.2010 09:48
quelle
1

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.

    
duffymo 25.08.2010 09:32
quelle
1

Wenn Sie mit Informationen zur Baugruppenebene einverstanden sind, sollten Sie sich das Diagramm Add-In ansehen zu einem beliebten Reflektor . Es bietet Assembly & amp; Abhängigkeitsdiagramm auf Klassenebene

    
VinayC 25.08.2010 09:38
quelle
0

verstehen wurde mir heute Morgen vorgeschlagen (:

Ссылка

aber ehrlich gesagt kann ich keinen angemessenen Bericht darüber geben, da es für mich zu teuer ist ...

    
tarrasch 25.08.2010 09:34
quelle
0

Sehen Sie sich mein kostenloses DSM-Plugin für .NET Reflector an, das von www.tom-carter.net

heruntergeladen werden kann

Er 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

    
Tom Carter 25.08.2010 09:46
quelle