Archive for August, 2013

VisualStudio TechnologyExplorer : Generate a graph of your solutions(.sln) & projects (.csproj)

Download: You can download the TechnologyExplorer here.
TechnologyExplorer Example
I’m developing with .NET since version 1.1 which was Visual Studio 2003 released in 2003. Since, 5 .NET framework have been released (2, 3, 3.5, 4, 4.5) with 4 VisualStudio (2005, 2008, 2010, 2012).

I have a lot of applications (web, console, windows service and WindowsForm) that used different libraries. I wanted to know the .NET version of every library/application, the VisualStudio version of every applcation and to see the dependencies between the libraries and the applications.

To see the dependencies, you can use the ArchitectureExplorer available in VisualStudio Ultimate. But you can’t extract the .NET version and the VisualStudio version with this tool.
I wanted to use the Graph layout capabilities of VisualStudio so I don’t have to program a algo to place the nodes and reduce the overlap between the links.


To display graphs, VisualStudio use DGML that is a xml file. So you can create manually or by a program a dgml that you can open in VisualStudio.
The specs are available at

Determine the VisualStudio version

The VisualStudio version is available in the sln file:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012


Determine the .NET Framework version

The .net framework version, is available in the csproj under the node TargetFrameworkVersion.


I wrote a application, the TechnologyExplorer, given a base folder, navigate in thew folder and it’s subfolders to extract the .NET version and the VisualStudio version of the applications and libraries.
It generate a dependency graph that shown the applications and the libraries and their dependencies.

  • The background color indicate the type: web application, application or library
  • The outline indicate the .NET framework version
  • For applications, the text color indicate the VisualStudio version

The output is a DGML file that you can open in VisualStudio to see the graph.

TechnologyExplorer Example

The TechnologyExplorer also generate a Legend file also in a DGML format:
TechnologyExplorer Legend


The TechnologyExplorer.xml contains a configuration where you indicate the output folder.

  • The outputPath attribute specify the folder where the dgml files will be generated.
  • Each Include node specify a folder to traverse.
  • Each Exclude node specify a folder, and sub-folders, to not traverse.

TechnologyExplorer - Microsoft Visual Studio



One the xml file configured, just launch the TechnologyExplorer.exe!