Recently I was exercising some of the OData APIs for manipulating a Windows Azure Access Control Service (ACS) namespace. I found some nice sample code, but the sample code was super-extensive (even including a Windows Phone sample), but my needs were humble (I wanted to manipulate ACS Reply-To addresses). After cutting out a few of the obvious projects so I could find "the code that mattered" I was still left with a heap of projects and libraries to weed out to get to the essential code – and it was tedious and error-prone to manually do this (if I was too aggressive, I broke the solution so it would no longer build). Frustration! How could I efficiently zoom in on the code I cared about so I could ensure I understood its requirements and dependencies?
This was two easy steps:
1. Create a simple program to exercise the code I cared about. This was a Console app I called TestRealmLib.exe.
2. Figure out everything that TestRealmLib.exe really depended upon.
Step one was easy since I knew the functionality I wanted to exercise.
Step two was easy once it dawned on me to use the right tool for the job: Visual Studio Ultimate 2012's Generate Dependency Graph tool found under the ARCHITECTURE menu option.
Read more: Coding Out Loud