2010-02-13 7 views
5

¿hay una buena forma de generar un diagrama de Visio de una arquitectura (con un diseño decente) si tengo una lista de aplicaciones de cliente, servicios y bases de datos? Hubiera pensado que habría una forma decente de generar esto sobre la marcha.generar diagrama de Visio sobre la marcha con .NET

+0

'CSharp' y 'etiquetas' dotnet son simplemente mal aquí. Has estado usando el sitio por el tiempo suficiente que deberías saber mejor. –

+0

pensé que había leído que estos se resuelven a los correctos a través de un script recurrente – leora

+0

He tenido buenos resultados con Aspose.Diagram: http://www.aspose.com/.net/diagram-component.aspx – Adam

Respuesta

3

Hay VisioAutomation en GitHub. Si tiene instalado Visio, puede automatizar la generación de un diagrama. Si puede modelar el diagrama que desea como un gráfico dirigido, entonces puede diseñar automáticamente el gráfico para usted (usando MSAGL).

Aquí es un ejemplo básico de crear el gráfico dirigido

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

Y luego dibujarlo:

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

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

Esto es la misma _definición_ de una respuesta de solo enlace. –

+0

Exactamente lo que necesito, gracias – eka808

Cuestiones relacionadas