2010-02-13 6 views
5

Gibt es eine gute Möglichkeit, ein Visio-Diagramm einer Architektur (mit einem anständigen Layout) zu generieren, wenn ich eine Liste von Client-Anwendungen, Diensten und Datenbanken habe? Ich hätte gedacht, dass es einen vernünftigen Weg geben würde, dies im laufenden Betrieb zu erzeugen.visio-Diagramm im laufenden Betrieb mit .NET generieren

+0

'csharp' und 'Dotnet' Tags hier einfach falsch sind. Du hast die Seite lange genug benutzt, um es besser zu wissen. –

+0

10 Ich dachte, ich lese, dass diese durch ein wiederkehrendes Skript zu den richtigen aufgelöst werden – leora

+0

Ich hatte gute Ergebnisse mit Aspose.Diagram: http://www.aspose.com/.net/diagram-component.aspx – Adam

Antwort

3

Es gibt auf GitHub. Wenn Sie Visio installiert haben, können Sie die Erstellung eines Diagramms automatisieren. Wenn Sie das gewünschte Diagramm als gerichtetes Diagramm modellieren können, kann es das Diagramm für Sie automatisch (mit MSAGL) gestalten.

Hier ist ein einfaches Beispiel des gerichteten Graphen

 using VACONNECT = VisioAutomation.Shapes.Connections; 
     var d = new VisioAutomation.Models.DirectedGraph.Drawing(); 

     var basic_stencil = "basic_u.vss"; 
     var n0 = d.AddShape("n0", "Node 0", basic_stencil, "Rectangle"); 
     n0.Size = new VA.Drawing.Size(3, 2); 
     var n1 = d.AddShape("n1", "Node 1", basic_stencil, "Rectangle"); 
     var n2 = d.AddShape("n2", "Node 2", basic_stencil, "Rectangle"); 
     var n3 = d.AddShape("n3", "Node 3", basic_stencil, "Rectangle"); 
     var n4 = d.AddShape("n4", "Node 4\nUnconnected", basic_stencil, "Rectangle"); 

     var c0 = d.AddConnection("c0", n0, n1, "0 -> 1", VACONNECT.ConnectorType.Curved); 
     var c1 = d.AddConnection("c1", n1, n2, "1 -> 2", VACONNECT.ConnectorType.RightAngle); 
     var c2 = d.AddConnection("c2", n1, n0, "0 -> 1", VACONNECT.ConnectorType.Curved); 
     var c3 = d.AddConnection("c3", n0, n2, "0 -> 2", VACONNECT.ConnectorType.Straight); 
     var c4 = d.AddConnection("c4", n2, n3, "2 -> 3", VACONNECT.ConnectorType.Curved); 
     var c5 = d.AddConnection("c5", n3, n0, "3 -> 0", VACONNECT.ConnectorType.Curved); 

erstellen und dann zu ziehen:

 var options = new VisioAutomation.Models.DirectedGraph.MsaglLayoutOptions(); 

     var page = visio_app.ActivePage; 
     d.Render(page,options); 
+0

Dies ist die Definition einer Link-Only-Antwort. –

+0

Genau das, was ich brauche, Danke – eka808