In List of Microsoft.NET IL disassemblers post, I have already mentioned one of the Telerik’s (free) products, which is the JustDecompile.
In this post I would like to review JustCode a tool of which Telerik has just released a new version.
Unfortunately, the JustCode is not open source and it is not free, but it offers a great deal of functionality. I particularly like the latest added ability to debug decompiled code, directly within Visual Studio.
Before we start, what is JustCode
Description taken from the Telerik’s web site:
JustCode is a Visual Studio extension that provides on-the-spot .NET code analysis and error checking, smart navigation and refactoring. So you code faster. JustCode is unobtrusive and integrates seamlessly with your natural work-flow. Quick hints, code generation, unit test runner and smart refactoring improve your code on the spot. So you code smarter.
Debug Decompiled Code within Visual Studio
Thanks to JustDecompile integration, JustCode now enables you to debug decompiled source code right inside Visual Studio! This feature goes way beyond the Visual Studio standard capability, allowing you to step into third-party libraries without having the source code available. Plus you can use the handy navigation features of JustCode in the decompiled code.
So, let’s quickly see how does it work:
Disable default Visual Studio settings
In order to enable the JustCode Debug Decompiled code functionality in Visual Studio, go to Tools->Options->Debugging->General and disable both Enable Just My Code and Enable .NET Framework source stepping
When clicking on “Just Decompile for Debugging…” a new window (Assembly Browser) will appear and show the decompiled assemblies, or the ones that are available to be decompiled.
After this, we are ready to debug the decompiled code, as we would do normally with our own written code.
In the below example, I am able to browse the creation of a new
DataColumn, which is implemented inside
Disable the functionality
I’ve shown how it’s easy to decompile and debug code by enabling this functionality with few mouse clicks. I believe this is a great feature and once available will easy the task of understanding the implementation of third party assemblies.