.NET reverse engineering tool for understanding projects
Here is a query I received from a user of SharpToolbox.com:
Hi, not sure if you have seen anything like this, but I need something that can parse my VS.NET C# project and give me a flow chart of all of the code it encounters. I have inherited a large complex project that I need to make sense of and a tool like this would be huge. I currently have a tool called Understand for C++ (Scientific Toolworks) that does the same thing but for some reason they have no intention of producing a C# version.
Any help you could provide would be greatly appreciated.
Here is the reply I made:
I don't think there is a single tool that provides what you're looking for for C#. But a combination of tools from http://sharptoolbox.com/categories/code-analysers-standards-verifiers may help you.
Here are some tools you can try:Even if these tools don't produce exactly the kind of information you need, they are helpful when inheriting code.
- http://sharptoolbox.com/tools/sotograph
- http://sharptoolbox.com/tools/universal-report
- http://sharptoolbox.com/tools/ndepend
- http://sharptoolbox.com/tools/lattix-ldm-for-net
Additionally, some tools from the following category provide reverse engineering features you may find interesting as well: http://sharptoolbox.com/categories/modeling-architecture-mda-uml
Maybe you know other tools for .NET that can be useful in this kind of situation?
Update: as some readers commented, .NET Reflector is a free tool that you should absolutely check out. It will help you to analyze code. Its plug-ins provide even more features.