I need to be able to generate dependency diagrams programmatically. I'd like it to be able to generate a bunch of boxes with labels and connectors linking them, and ideally the component would position them automatically onto a design surface which could then be manually rearranged.
I'm using WinForms and C# 2.0 (VS2005).
EDIT: However, since it'll be an internal tool, I can probably use 3.5 SP1 and WPF if there any suggestions in that arena.
Must be free or open source.
Any recommendations?
I have similar request as yours. Here's one open source solution for drawing diagrams. It's from Microsoft and samples written in C#.
https://github.com/Microsoft/automatic-graph-layout
Here's one that renders to HTML5 (You can easily extend to Visio) from GridWizard/Github Source code: https://github.com/gridwizard/SimpleFlowDiagram Wordpress doc: https://gridwizard.wordpress.com/2015/03/25/simple-c-library-to-render-graph-to-flowchart/
Downside is, you need a viewer to display HTML5. Alternatively, SimpleFlowDiagramLib already calculate Node.x and Node.y - you can render it to Winform/WPF yourself (but then you need to code rendering yourself)
Too late for the questioner but perhaps interesting for researchers:
NShape
You might want to take a look at GraphViz which is being distributed under CPL (i.e. free of charge). It is not exactly for .NET/WinForms but can be useful anyway. The library's main purpose is to visualize graphs (and dependency diagram is effectively a [directional] graph). You can use it to either get an image (graph layout) or an array of points (coordinates for you items).
Did you try the CodeProject article series by Sukram:
WPF Diagram Designer
OpenDiagram
I have tried it with WinForms, works very well.