2010-02-13 11 views
5

c'è un buon modo di generare un diagramma visio di un'architettura (con un layout decente) se ho un elenco di app, servizi e database client? avrei pensato che ci sarebbe stato un modo decente per generare questo al volo.genera visio diagram on the fly con .NET

+0

'csharp' e tag 'dotnet' sono semplicemente sbagliato qui. Hai usato il sito per un tempo abbastanza lungo che dovresti sapere meglio. –

+0

ho pensato di leggere che questi vengono risolti a quelli giusti attraverso uno script ricorrente – leora

+0

Ho avuto buoni risultati con Aspose.Diagram: http://www.aspose.com/.net/diagram-component.aspx – Adam

risposta

3

C'è VisioAutomation su GitHub. Se hai installato Visio, puoi automatizzare la generazione di un diagramma. Se è possibile modellare il diagramma che si desidera come grafico diretto, è possibile impaginare automaticamente il grafico (utilizzando MSAGL).

Ecco un esempio di base della creazione del grafo orientato

 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); 

E poi a disegnarla:

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

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

Questo è la stessa _definizione_ di una risposta solo per collegamento. –

+0

Esattamente quello di cui ho bisogno, grazie – eka808

Problemi correlati