views:

247

answers:

6

I have a requirement to document the assembly dependencies in a vb6/dotnet application.

What techniques / tools are good for performing this sort of document.

I was planning on using Visio for drawing.

+4  A: 

As a start, try Dependency Visualizer. I've also used GraphViz's Dot and some custom code for simple dependency generation. The custom code invoked SysInternal's depends.exe recursively and parsed the output. .NET Reflector with the Graph plugin looks pretty promising, too, though I haven't tried that (yet).

What I've always run into was the fact that my graph, unless generated automatically, has to be recreated every time I add to the project and sometimes when I simply change something. So, for me, a manual solution that I became married to for the updates was no solution at all.

I just found the Dependency Structure Matrix Plug-in for .NET Reflector.

james
depends.exe is from dependencywalker.com not sysinternals...
John Weldon
+1 for a good answer though. I wish people would explain downvotes on answers that aren't self-evidently bad.
John Weldon
maybe we can each say we're half right and split the difference? ;v) I was talking about this one: http://support.microsoft.com/kb/301423, so it is at least in the Windows 2000 Support Tools pack. As a .NET developer (for an electric company) I picked mine up somewhere from MS.
james
+1  A: 

Have you had a look at NDepend?

Eric Smith
A: 

Dependency visualizer is good for small projects. For projects or solutions with many inter dependencies it becomes too clumsy to even trace the dependency graph.

blntechie
+1  A: 

Well for .NET you could also try VS2010 Beta 1 and the Architecture Explorer (Arch Explorer screen shots).

As for VB6, I'd like to have a tool for that also. This tool from Microsoft Visual Basic 6.0 to Visual Basic .NET Upgrade Assessment Tool creates a call graph in HTML for a single VBP, not sure how useful it would for you. Other than that I have not found may tools for VB6.

the empirical programmer
A: 

You can create dependency graphs of .NET assemblies and application projects in VS 2010 Ultimate. You can generate assembly dependency graphs as one of the standard graphs, or you can use Architecture Explorer to browse your solution, select projects and the relationships that you want to visualize, and then create a dependency graph from your selection.

For more info, see the following topics:

How to: Generate Graph Documents from Code: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

How to: Find Code Using Architecture Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

RC download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.

Visual Studio 2010 Architectural Discovery & Modeling Tools forum: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads

Esther Fan - MSFT
How does this help with auto-documenting the VB6 side of the application?
benPearce
A: 

To complete the Eric answer, NDepend comes indeed with a dependency graph coupled with a dependency matrix. Hopefully, NDepend can scale up to analyze the largest millions lines of code application and obviously, it is also relevant for smaller applications.

You can try NDepend straight on your code thanks to a Free Trial Edition. See screenshoots extracted from this blog post: Interactive Code Dependencies Graph

alt text

alt text

alt text

alt text

Patrick Smacchia - NDepend dev