views:

1897

answers:

10
A: 

The C5 Generic Collection Library for C# and CLI

jjchiw
Doesn't that just contain some *examples* of graph algorithms built on the collection data structures? I'd have guessed the question asks for something like the C++ BGL library (http://www.boost.org/doc/libs/1_40_0/libs/graph/doc/index.html).
Pontus Gagge
-1 for the wild goose chase. There is no implementation of a graph in that library.
Paul Sasik
You're right Pontus. There is a Graph class in the user guide examples but it is not part of the library. It's an example built on top of it. And a messy, incomplete one at that from looking at the source.
Paul Sasik
But it can be used, well it's like an approach.......
jjchiw
A: 

You can use free Microsoft Chart Controls for both ASP.NET and WinForms.

Hemant
For everyone who has voted down this answer: When this question was asked originally, it didn't mention that charting libraries are not required. It was added later. So my answer was perfectly valid at that time...
Hemant
+3  A: 

Take a look at yWorks: http://www.yworks.com/en/index.html

There aren't a massive amount of good libraries out there, from what I've seen.

A S
Seems awesome, but 7k for a library is..too much for me.
devoured elysium
amazingly, that is one of the cheaper options!
A S
It's 7k, but I've ever had more fun with an API than the yWorks .NET and WPF libraries.
Matthew Ruston
+3  A: 

There is QuickGraph, it works pretty well and has most of the basic algorithms.

Doug McClean
Nice but doesn't seem to be able to draw the graphs.
devoured elysium
True. I got the impression you were asking about computing with the graphs, rather than drawing them. It does output to formats consumed by a couple of different rendering tools though.
Doug McClean
+2  A: 

Check out http://quickgraph.codeplex.com/ They have support for visualization via DotViz and Glee.

For visualization, i'd also check out

http://flare.prefuse.org/

Though its flash, it seems very interesting, and they have at least tree visualization, though you may be able to coax some non-directed graphs out of it.

JBland
+3  A: 

You can use the NodeXL API from Microsoft Research at: http://www.codeplex.com/NodeXL but a similar question has been asked at: http://stackoverflow.com/questions/44090/do-you-know-any-graph-visualization-libraries-for-net/

DrDee
Sounds nice, but from what I saw now from their examples, it seems you basically have to draw everything by yourself, which would be a problem as I have thousands of nodes to draw.
devoured elysium
I am not quite sure what you mean by 'to draw everything by yourself', NodeXL is both an extension for Excel but also an API for .Net and it supports graph layouts algorithms like force-directed layout (Fruchterman-Reingold or Harel-Koren fast multiscale) or a geometrical layout (circle, grid, spiral, etc.). I have used it myself and there is not much 'manual' work
DrDee
I was speaking of other thing, I got confused with a different reply. But seems like NodeXL requires Office 2007. I don't even have office installed.
devoured elysium
I already installed this. Now how am I supposed to use it from c#?
devoured elysium
make sure you install the API library and not the Office Excel extension. The API is available at: http://www.codeplex.com/NodeXL/Release/ProjectReleases.aspx?ReleaseId=33672The namespace of NodeXL is Microsoft.NodeXL so you can import it using:import Microsoft.NodeXL.Core import Microsoft.NodeXL.Visualization(I think those two are the most important libraries). Just make sure that the path of your IDE contains the NodeXL folder.
DrDee
+1  A: 

Buddy I think this is what you need!

This article presents a Generic Graph Library, 100% C#. This library is an attempt to port the Boost Graph Library (BGL) from C++ to C#.

SDX2000
Yes but it has several problems when trying to draw the graphs, from what I've read on codeproject's comments.
devoured elysium
A: 

I haven't tried it yet but ran across an interesting offering from MS Research for visualizing directed graphs Microsoft Automatic Graph Layout.

Try using "directed graph" or "digraph" for search terms. I get a lot of hits.

Canoehead
+3  A: 

Use a combination of QuickGraph and Graph# (WPF) - both top notch libraries. They work really well for me but the documentation for Graph# is almost non-existant.

Matt Breckon
A: 

We've used ZedGraph which is an Open Source project written in C#, so you can tweak it if you feel it is necessary. It served our needs which sound like they're very close to what you described. There's even a wiki site for the project with some pretty good samples.

Walter