Share via


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 removed

  • Anonymous
    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.

    Neil

  • Anonymous
    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 removed

  • Anonymous
    July 03, 2008
    The comment has been removed

  • Anonymous
    June 07, 2009
    PingBack from http://greenteafatburner.info/story.php?id=3077

  • Anonymous
    August 25, 2009
    I'm looking for a program that does exactly this! Ever thought of distributing it?