A Pretty Picture of Our Project Dependencies
As you may have noticed from our recent posts on build parallelization, we're thinking a lot lately about project dependencies. One thing I've always wanted is a tool that let me visually look at the project-to-project references that make up my application.
A couple of weekends ago I hacked together an application that uses the MSBuild Object Model and the Visio ActiveX control to give a visual representation of managed project-to-project references. It was nuts. I haven't had to deal with graphs and recursion and such since I did 62:206 Fundamentals of Data Structures in Pascal back in school. But, with much noodling and debugging with pen and paper I got it working. After I clean it up a bit we'll be posting it to gotdotnet for others to play with.
Here's a picture of what the dependency graph looks like for MSBuild (it takes up too much screen space to link to directly). Each box in the diagram represents a single .csproj file. The number inside the box is the count of people that depend on the project.
Looking at the diagram you can pretty quickly see that we use test-driven development. Each of the shipping components has an equivalent project that implements its unit tests. You can also see that we have very few projects that result in actual shipping code. A lot of the projects are internal tools used for conversion, or incubation efforts around new technology. You'll also notice that even for non-shipping internal code we have unit tests.
The biggest thing to notice, however, is the three boxes in the middle highlighted with red. Pretty much everything we build depends on them. Any guesses as to what three assemblies are generated by those three projects?
[ Author: Neil Enns ]
Comments
Anonymous
November 14, 2005
The comment has been removedAnonymous
November 15, 2005
Ding ding ding! We have a winner! Nicely done, Lucas, that's exactly what they are. I'll have to double-check on 2 and three tomorrow on the diagram with names, but I believe you're correct on those as well.
NeilAnonymous
December 30, 2005
Neil, Didn't you finish with the clean up? I am ready to use this when you make it available. Thanks.Anonymous
December 18, 2007
<a href= http://dypatu.com >khleo thomas -er forgive and forget video</a> [url=http://dypatu.com]khleo thomas -er forgive and forget video[/url]Anonymous
July 03, 2008
The comment has been removedAnonymous
July 03, 2008
The comment has been removedAnonymous
June 07, 2009
PingBack from http://greenteafatburner.info/story.php?id=3077Anonymous
August 25, 2009
I'm looking for a program that does exactly this! Ever thought of distributing it?