Visual Studio provides a convenient tool to generate visual code dependencies. It helps to identity circular references issues and also hubs.
To learn more details about this function, visit http://msdn.microsoft.com/library/dd409453(VS.110).aspx.
Find the tool
Go to menu “Architecture –> Generate Dependency Graph” and you will be able to generate the visual diagrams for your projects or solution.
Sample – Hub
ContextProject.DataServices.The above diagram shows how my projects reference to each other. Three projects are Hubs: ContextProject.Website, ContextProject.DataServices.Syndication, ContextProject.DataServices.MetaWeblog and ContextProject.DataServices, which implies that they are the top 25% highly connected nodes.
Because of these dependencies, it is hard to change and maintain the code. We can refactor can components to reduce the complexity of dependencies.
Sample – Circular Reference
Expand the assembly nodes, we can identify the circular references.
In the above diagram, three namespaces form a circular reference. Drilling-down to details, I find out the static property Configurations caused this issue.
Sample – Other
I am planning to replace my IoC component NInject with Microsoft Unity. The visual dependency diagram can help me to find out all the classes/properties/methods I need to change.
The visual dependencies can help us identify code that might be overly complex or that might need improvement. It will be very useful when you begin to analyze a new project you didn’t work on before.