Directed Graph Documents

by clovett24. September 2009 22:09

Cameron Skinner first introduced DGML about 9 months ago and now that VS 2010 Beta 2 has shipped it's time for an update.

This video (WMV or MP4) takes you through some great demos to give you an idea of what it can do.  This is just a 10 minute teaser, in subsequent posts I'll drill into all the various software visualization features in more detail.

I think you'll agree that this is pretty exciting stuff and I can't wait to see all the amazing things that people will do with this new capability.

The following download contains the DGML demos used in this video: Demos.zip (542.37 kb)

Someone asked me recently how I built all those demos:

Demos.dgml – built by hand, manually adding the “Reference” attribute that point to each sample.

.NET 4.0

Assemblies.dgml: I just drag/dropped the .NET assemblies onto a new empty graph document. The green colorization was a custom category added by hand.

Grouped.dgml: was taking the above and manually grouping things then styling the group & link colors by hand.

ConditionalStyles

Baseball.dgml – by hand by copying this graph from Slate magazine

Coverage.dgml – the dependency graph is just a class to class dependency graph which I think I just used the architecture menu generate with a “Custom” settings, namely show only Types and no methods (this way the classes are leaf nodes but their links are a rollup of their inner dependencies), then I wrote a tool that mapped the Coverage report (which is in an XML format) to add coverage properties to my nodes. The hard part here is the “name mapping” because metrics analyzer uses a different “identifier” scheme.

LinesOfCode.dgml – the class dependency graph came from the Architecture menu, then wrote a tool that took a log file from the Metrics Analyzer in VS and mapped it back to the DGML graph. The hard part here is the “name mapping” because metrics analyzer uses a different “identifier” scheme.

Set.dgml – the class dependencies from VS, but the categorization by hand (using the VS Property Window you can type in your own category names), then hooking up the icons by hand.

Tagging.dgml –by hand

TeamData.dgml – was a class level dependency graph , the green was a hand categorization of interfaces, the link color styles added via the Legend.

Progression:

Most of these started as class or assembly level dependency graphs, with manual coloring and grouping added.

Overview.dgml – entirely by hand

ProgressionTypes – You can get a Type Hierarchy graph using the Architecture Explorer tool window which I explain in my view on the Architecture Explorer.

TeamArch:

CallSequence.dgml: by hand

UmlMetaModel.dgml – I built a tool that understands the MOF XML format and exported it from an internal MOF description of UML that we had, but I think the grouping was by hand.

VSBinaries:

Devdiv-grouped.dgml A friend of mine JP Duplessis wrote a tool that cracks all the binaries in a Visual Studio build (native and managed) which he then stored in a database, he then dumped that out to DGML. The grouping was then done using some regular expression matching. We knew a few central nodes that lived in each group, then based on their dependencies the tool would suck things into those groups. We call this “group by patterns”.

devdiv-just-group.dgml – collapse all, but then I have a tool that does a “shallow copy” of this graph keeping the computed group to group dependencies intact. This could be a handy power tool – sort of a “roll up and throw away the detail” kind of tool.

Wpf-by-namespace – was a straight architecture dependency graph, limited to public types only I believe.

Tags:

Comments (66) -

Charles Windhausen
Charles Windhausen
8/24/2009 11:30:40 PM #

I'd really like to see the source for the demos, but the link for Demos.zip doesn't work.

Reply

Chris
Chris
8/25/2009 8:22:25 AM #

Fixed.  The link is http://www.lovettsoftware.com/downloads/Demos.zip

Reply

Ezra Heberling
Ezra Heberling
9/2/2009 2:33:09 PM #

Stupid software, like Windows?

Reply

Chris Lovett
Chris Lovett
9/3/2009 3:58:17 PM #

I have programmed IBM mainframes, OS/2, Apple, Web, Java, Windows C++, ASP, .NET, Robot C, and micro controllers.  And you know what?  It's all built on the same computer science principles and so all environments suffer from the same problem of complexity.  My mission in life is to figure out what we are going to do about this across the industry because I think complexity is seriously limiting our ability to innovate in all software domains.

Reply

splintor
splintor
12/13/2009 5:28:51 AM #

Hi Chris,
Is there a way I can add a "DGML Viewer" in my app to show a DGML file to users? Or is it only comes as part of the VS2010 IDE?

I really like the DGML engine embedded in VS2010, and would like to use it in my app. What are my options?

Reply

Chris Lovett
Chris Lovett
12/15/2009 8:44:29 PM #

We do not have a standalone DGML viewer for you to use, it only comes in VS 2010 Ultimate and Premium.  But we have received many requests for something like this and are considering what we can do about it in the future.

Reply

seo indian
seo indian
1/15/2010 12:21:35 PM #

I have used Visual Studio 2010, its work very good and its feature are also nice. Thanks for this post.

Reply

Game
Game
1/17/2010 6:33:32 AM #

Thanks for fixing the link Chris, that visual stuido is pretty good also, better priced than some of the apps.

Reply

Roberto
Roberto
1/28/2010 4:19:10 AM #

I believe is worth all the cost of the product.
I believe Visual Studio is by far the best IDE I've ever used. Nothing else even comes close and these graphs application are a proof of this

Reply

best registry cleaner
best registry cleaner
1/30/2010 6:41:56 PM #

I have used Visual Studio 2010, its work very good and its feature are also nice. Thanks for this post.

Reply

Helena
Helena
1/31/2010 11:50:38 AM #

You are right, Visual Studio of this year version was great. Cool visualization and cool features too. Anyway thanks for sharing the video.. it do really help. Smile

Reply

Pozycjonowanie
Pozycjonowanie
2/6/2010 8:39:37 AM #

Visual Studio 2010 has really improved my work.Perfect soft.

Reply

car hire australia airport
car hire australia airport
2/10/2010 10:44:25 PM #

Cool visualization and cool features too. Anyway thanks for sharing the video..

Reply

Savita
Savita
2/17/2010 2:44:59 PM #

Visual Studio 2010 includes some really gud and rare software visualization features. Thanks for introducing us to such a wonderful and creative feature and software through this post. tnks......

Reply

belfast restaurants
belfast restaurants
3/8/2010 11:32:13 AM #

visual studio is a serious bit of kit. Its relatively simple to use, but the big advantage is its reasonable price I believe

Reply

Marco
Marco
3/25/2010 12:30:14 PM #

Hey visual studio is great piece of soft i use it everyday.

Reply

watch movies online
watch movies online
3/30/2010 12:18:33 AM #

DGML is a great peice of software, I liked your videos

Reply

Fajas
Fajas
4/3/2010 8:40:32 AM #

VS has become a software with such a big footprint. Just like windows and everything else Microsoft produces.

Reply

Denny
Denny
4/21/2010 3:12:11 AM #

Visual studio is good for me too friend

Reply

wedding rings alabama
wedding rings alabama
4/27/2010 8:17:25 AM #

Does it work for Mac as well?

Reply

SEO India
SEO India
4/28/2010 2:34:07 PM #

Hi clovett, thanks for sharing your post with us. VS 2010 is good and has fixed some bugs as well.

Reply

Trademark New Zealand
Trademark New Zealand
5/3/2010 3:19:49 AM #

Thanks
You seriously forget how good VS2010 is until you start trying to use something else and missout on the great stuff you have in VS.

Mr Wedding Rings - did you even read the post?

Regards

Reply

Giochi di Cucina
Giochi di Cucina
5/4/2010 8:32:01 AM #

I have used Visual Studio 2010 and in my opinion it's much better than older versions.
DGML is really an interesting feature

Reply

Frogger Game
Frogger Game
6/17/2010 9:33:35 PM #

Visual Studio is definitely worth the cost.
I believe Visual Studio is by far the best IDE I've ever used and I've tried a bunch. Nothing else even comes close and these graphs application are a proof.

Reply

Electronic Cigarette
Electronic Cigarette
6/20/2010 10:05:39 AM #

Not really a fan of DGML

Reply

Jeff
Jeff
6/22/2010 2:53:11 PM #

Visio 2010 is the best version in my opinion.  Btw, nice video.

Reply

shingles symptoms
shingles symptoms
6/26/2010 5:27:38 AM #

Does it work for Mac as well?

Reply

Ball Screw
Ball Screw
7/6/2010 11:40:57 PM #

Visual Studio 2010 posses a really powerful features and for sure I am really satisfied with it. By the way, useful info.

Reply

Jonathan O.
Jonathan O.
7/13/2010 5:22:08 PM #

Everybody studies complexity , when they should should study simplicity...It's a little ironic

Reply

Nick
Nick
7/15/2010 2:39:32 PM #

Cool video, I am a big advocate of VS 2010!

Reply

Peter
Peter
7/16/2010 7:08:24 PM #

Great article. It was very usufull.Continue the good work.

Reply

Pozycjonowanie
Pozycjonowanie
7/17/2010 10:14:56 PM #

Nice demo, Visual Studio is really powerful tool.

Reply

Jovani
Jovani
7/19/2010 1:48:08 AM #

Wow interested video, I like the potential of DGML, gonna have to research this further.

Reply

Forex Massacre
Forex Massacre
7/19/2010 4:07:40 AM #

I have only nice things to say regarding Visual Studio 2010. Unlike previous releases this one delivered beyond my highest expectations.

Reply

mailaro
mailaro
7/23/2010 11:50:03 PM #

Visual Studio is definitely worth the cost.
I believe Visual Studio is by far the best IDE I've ever used and I've tried a bunch. Nothing else even comes close and these graphs application are a proof.

Reply

Tigara Electronica
Tigara Electronica
8/4/2010 11:34:44 PM #

Enjoyed watching the videos. I bought VS2010 but I expect more in the future.

Reply

pass4sure 1z0-043
pass4sure 1z0-043
8/6/2010 1:55:53 AM #

Visual Studio 2010 includes some really gud and rare software visualization features. Thanks for introducing us to such a wonderful and creative feature and software through this post

Reply

70-643
70-643
8/16/2010 1:08:51 PM #

Wow interested video, I like the potential of DGML, gonna have to research this further.

Reply

cellulite exercises
cellulite exercises
8/26/2010 7:06:07 PM #

I have to admit that I'm still chugging away with VS'05.  For the most part it does what I need or I can find something online that'll achieve it.  It may be nice to finally upgrade and have a huge raft of new abilities available.

Reply

Don Wells
Don Wells
9/10/2010 5:07:18 AM #

Been using DGML for 4 months now, its really great!

Reply

czat
czat
10/15/2010 4:13:04 AM #

Cool visualization and cool features too. Anyway thanks for sharing the video..

Reply

rca ieftin
rca ieftin
10/24/2010 8:19:03 AM #

I think the latest version of VS2010 is almost perfect but it seems to need some small modifications to work fine.

Reply

SEO India
SEO India
10/29/2010 2:58:15 AM #

Cool visualization and good software  thanks

Reply

Blu Cigs Review
Blu Cigs Review
11/1/2010 9:17:26 AM #

I have just started using VS2010 and I loving it. It's Awesome Smile

Reply

Martens
Martens
11/18/2010 6:49:56 AM #

You seriously forget how good VS2010 is until you start trying to use something else and missout on the great stuff you have in VS.

Reply

u8a4m
u8a4m
11/19/2010 6:46:48 AM #

rca ieftin

I think the latest version of VS2010 is almost perfect but it seems to need some small modifications to work fine.

Reply

R8R6H
R8R6H
11/24/2010 3:14:01 PM #

Visual Studio 2010 has some really interesting features which makes it more efficient. The latest version is one of the best I've used so far.

Reply

C7K4R
C7K4R
12/2/2010 7:31:33 PM #

Visualization is good in this software  ..good strategy  good thinking i like this .

Reply

business trip
business trip
12/17/2010 6:04:53 AM #

I have just started using VS2010 and I loving it. i have enjoyed.it is very nice. Thanks your post.

Reply

Forexbrokers
Forexbrokers
12/23/2010 2:19:56 PM #

Thanks Chris !! Your demos through video is really awesome, helped me a lot. Now I'm using VS, is very easy to go through and results are very effective. It need some more changes, I think. Anyway thanks for your enlightenment.

Reply

bomboniere
bomboniere
1/7/2011 6:10:14 PM #

Sure, Visual Studio 2010 is a fantastic version. It has got friendly visualizations and new useful features.

Reply

learn spanish software
learn spanish software
2/20/2011 2:26:50 AM #

REally liked the video.  Great visual representations.  I am going to give VS a try.

Reply

D108X
D108X
2/27/2011 6:22:37 PM #

Hi Chris,
I really like this DGML and I think it's a very cool way to create directed graph.
I have Microsoft Visual Studio 2010, I have downloaded demos.zip and extracted the files but I don't know how to open the files in VS2010. Could you tell me how to open the files?

Regards.
Mike

Reply

clovett
clovett
2/28/2011 2:53:09 AM #

Mike, you will need the Premium or Ultimate version of VS 2010.

Reply

como quitar las espinillas
como quitar las espinillas
4/10/2011 7:03:54 PM #

DGML is realy ideal in creating graphs. I've never uses VS2010 but with the video tutorial, i think it's one of the best.

Reply

Very interesting article. Your current web pages is promptly growing to be considered one of my top picks.

Reply

Private Jet Charter Price
Private Jet Charter Price
4/25/2011 1:12:34 PM #

Visual Studio 2010 is very good and its feature are particularly nice.

Reply

notepad website codes
notepad website codes
4/25/2011 2:37:26 PM #

I added your site to Favorits. I am constantly monitored. All of your posts very interesting.

Reply

B1F7L
B1F7L
5/13/2011 12:47:43 AM #

Great..

Reply

Seo India
Seo India
5/18/2011 4:13:49 AM #

Visual studio is relly good .

Reply

world of warcraft simulator
world of warcraft simulator
6/6/2011 2:18:17 AM #

Love VS2010, use it every day.

The latest version is superb!

Reply

Y4E2M
Y4E2M
8/12/2011 12:41:51 PM #

Chris,


I'm a developer with Siemens, and I've introduced our team to DGML for the purposes of this massive documentation project and for generating these dependency graphs from our existing code base. I haven't yet figured out how to generate the dgml automatically though installing the "Visualization and Modeling Feature Pack", which I understand was supposed to extend this dependency graph functionality beyond C# and .NET to embrace C++ code as well. To work around that we've created a tool for generating the dgml.

I have some questions about the behavior of properties. There's odd behavior I can't seem to make sense of beyond some attributes being defined in the xsd schema and others just orphaned from any namespace it seems (I'm a xml rookie, so perhaps more of that would make sense to me down the road). Anyhow, the behavior I find is where some properties show up in the dgml editor squiggled with blue text, which upon mouse hovering displays in the tooltip
   The 'PropertyId' attribute is not declared
For some property PropertyId I've created from scratch. What is this about exactly?


One other quick question, when generating the layout you often see the message "Processing 0 of N graphs..." What is this number referring to? Seems like I only have one graph, at least there's only one <DirectedGraph> element in my dgml, so what could this mean?

Since I'm writing, I thought I'd also ask what the status is for the request that there be a standalone dgml viewer/editor.


Thanks a lot for the great work!






Jaime

Reply

Laurena
LaurenaUnited States
8/19/2014 1:26:55 PM #

I like what you have done here, please keep providing stella information.

Reply

Rachael
RachaelUnited States
8/19/2014 2:08:52 PM #

A good write up just what I was looking for.

Reply

Basilia
BasiliaUnited States
8/19/2014 4:09:54 PM #

I like what you have done here, please keep providing stella information.

Reply

Mamie
MamieUnited States
8/19/2014 5:53:50 PM #

With all the useless content online sometimes its hard to find what your looking for, but I found it here, cheers.

Reply

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

About the author

Chris Lovett is a Software Engineer at Microsoft working on Windows Phone.

See Resume in SVG

Month List