DiagramStudio.Core
0.1.0
dotnet add package DiagramStudio.Core --version 0.1.0
NuGet\Install-Package DiagramStudio.Core -Version 0.1.0
<PackageReference Include="DiagramStudio.Core" Version="0.1.0" />
<PackageVersion Include="DiagramStudio.Core" Version="0.1.0" />
<PackageReference Include="DiagramStudio.Core" />
paket add DiagramStudio.Core --version 0.1.0
#r "nuget: DiagramStudio.Core, 0.1.0"
#:package DiagramStudio.Core@0.1.0
#addin nuget:?package=DiagramStudio.Core&version=0.1.0
#tool nuget:?package=DiagramStudio.Core&version=0.1.0
DiagramStudio.Core
A dependency-light, UI-free engine for building, laying out, analysing, rendering and persisting
node-link and swimlane diagrams in .NET — and for reading/writing Microsoft Visio .vsdx and
GraphViz DOT files. Pure net8.0: no WPF, no commercial dependencies. Runs in an ASP.NET service,
a console app, or a CI job just as happily as in a desktop app.
A drop-in WPF editor control built on this lives in
DiagramStudio.Controls— but you don't need it. Core is genuinely useful on its own.
Use it standalone
- Generate Visio files from data, headless. Turn a database / JSON / domain model into a
.vsdxyour users open in Visio — from a web API, a CLI, or a nightly job. No Visio install, no WPF. - Read
.vsdx— pull shapes, connectors and Shape Data out of Visio files in C#. - Render to PNG / SVG server-side — diagram thumbnails, report figures, embedded images.
- Convert between Visio
.vsdxand GraphViz.dot. - Lay out & analyse graphs programmatically — layered/tree/radial/force/circular/grid layouts; topological order, cycle detection, shortest path, connected components.
Install
dotnet add package DiagramStudio.Core
Example — data → Visio .vsdx, no UI
using DiagramStudio.Core.Model;
using DiagramStudio.Core.Layout;
using DiagramStudio.Core.Interop.Vsdx;
var doc = new DiagramDocument();
var a = doc.AddShape("Start", "startend");
var b = doc.AddShape("Review", "process");
var c = doc.AddShape("Approved?", "decision");
doc.AddLink(a.Id, b.Id);
doc.AddLink(b.Id, c.Id);
c.Data["owner"] = "Ops"; // travels as Visio Shape Data
LayoutCatalog.Create(LayoutCatalog.LayeredTb, new LayoutOptions()).Apply(doc); // auto-layout
VisioBridge.Export(doc, "process.vsdx"); // open this in Visio
var roundTrip = VisioBridge.Import("process.vsdx"); // …or read one back
What's in the box
- Document model — shapes, links, swimlanes, groups, and auto-resizing containers
(
DiagramDocument), with versioned JSON persistence. - Rendering — a backend-neutral draw list (
DiagramSceneBuilder) drawn by the shared Skia/SVG pipeline; arrowheads (both ends), dashes, bridges/line-jumps, rotation, image shapes. - Routing — orthogonal, straight, and Bézier connectors, plus obstacle-avoiding orthogonal routing (A* over a Hanan grid).
- Layouts — layered (Sugiyama, via DotSharp), tree, radial-tree, force-directed, circular, grid, and lane-aware swimlane layout.
- Graph analysis — topological order, cycle detection, shortest path, connected components.
- Shape Data — arbitrary key→value metadata per shape, for data-aware diagrams.
- Interop — a GraphViz DOT bridge and a clean-room Visio
.vsdxbridge (read & write shapes, connectors, kinds, colours, and shape data), built on the in-boxSystem.IO.Packagingonly.
License
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- DotSharp.Core (>= 0.1.0)
- System.IO.Packaging (>= 10.0.9)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DiagramStudio.Core:
| Package | Downloads |
|---|---|
|
DiagramStudio.Controls
A drop-in WPF diagram editor control — render and edit node-link and swimlane diagrams with one element: <dg:DiagramControl/>. Pan/zoom/fit, multi-select and marquee, drag/resize/rotate, connect mode with live re-routing, undo/redo, copy/paste, alignment guides and grid snap, auto-resizing containers, image shapes, per-element styling, inline text editing, auto-layout injection, PNG/PDF export and printing. Companion controls (ShapePalette, DiagramMinimap, DiagramRuler, LayoutPanel, StylePanel) and live data-binding included. Renders on a single SkiaSharp surface; built on DiagramStudio.Core. No commercial control suites. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 112 | 6/14/2026 |