⬆️ ⬇️

Visualization of dependencies between projects

Recently I stumbled upon CodeProject on an article by Mark Clifton on the search for dependencies between projects in a solution. Unfortunately, the graph itself did not generate the presented program, and therefore, being inspired by Evgeny Kucheruk ’s approach to visualizing the contents of the Windsor container, he quickly decided to implement the same functionality for dependencies between projects. Here, in fact, what happened.





First of all, an impressive example is needed, so I decided to show how the projects of different IoC frameworks look like (the pictures here and below are clickable):



Unity:





')



StructureMap:









NInject:









Autofac:









The graphs above are formed by analyzing project files and do not include “external” dependencies (dependencies are not solitary). They are formed by parsing .csproj files, i.e. project files. Further, when all the information is received in a separate Dictionary , it can be written in the .dot format, and rendered using GraphViz .



The question is - why is this necessary? Just as an IoC container is useful to render in order to get a review of what is tied to, a regular solution would sometimes like to be analyzed on the topic of connectedness. As for example does the same NDepend . Also, sometimes you just want to see the whole solution from a bird's eye view, and my tool will help to do just that.



Well, did not want to try? If so, download GraphViz , and then the source . I will not explain the interface, because there everything is clear - all the same, you (like me) will customize the program for your purposes, so I advise you to read the documentation for the dot format. Good luck!



PS: If you generate some very beautiful graph solyushna - please post below. Thank you in advance.

Source: https://habr.com/ru/post/63091/



All Articles