JustCode Support for the Visual Studio 2013 Preview
Visual Studio 2013 is coming fast. The first preview is out, and there was a whole conference dedicated to the preview release! Well, //build was more than just VS2013, but it was a significant milestone for Microsoft to be release two full versions of Visual Studio within a year of each other.
The 2013 Q2 Service Pack 1 works wonderfully with the Visual Studio 2013 Preview. Keep in mind that Preview means just that – it’s a sneak peek. It’s like Microsoft said “Here are some bits. Go play with them. We’ll be changing it soon.” Preview comes before Beta, and probably comes before Alpha as well!
Rest assured, as Visual Studio changes on it’s way to GA (General Availability), JustCode will continue to work very well with Visual Studio, including the various releases of Visual Studio 2013.
Debugging Assemblies without Debug Headers
Another big feature that comes with the service pack is the added ability to debug into dependent assemblies that don’t have valid debug headers! For example, if you use NUnit and would like to debug into any of the assemblies that come with NUnit or NUnit Should, you used to be out of luck. Not anymore!
I typically use NUnit, and when you look at the related files in the Assembly Browser, you get the “Caution” sign (as in Figure 1).
Figure 1 – Assemblies missing debug headers
When you right click on these files, you now get the option to decompile even though there are invalid or missing headers. When you select Decompile, you are given a nice solid warning as shown in Figure 2.
Figure 2 – Decompiling Assemblies with Invalid Headers
After this change is made, you can proceed to debug into the decompiled code as you normally would.
NOTE: You will still need to fully test the changed version of the dependency to make sure that the process of changing/adding the debug headers doesn’t affect your application. I personally keep the original file to deploy to production and use my decompiled version just on my local machine.
Updates to the JustCode Assembly Browser Windows
There are several updates to the Assembly Browser Windows. In case you haven’t seen this window before, it’s one of the key features that makes Debugging Decompiled Code so incredibly easy.
Cancel Decompile Request
You can now cancel a decompile request. Once a decompile has started, the context menu provides the option to Cancel (as shown in Figure 3). But you have to be fast – the Cancel option is only available during an active decompilation, and JustDecompile is extremely fast, so the option doesn’t stay active very long.
Figure 3 – Cancelling a Decompile request
If you miss the window, you can always clear the cache by right clicking on the decompiled assembly and selecting “Clear cache”.
Navigate to Generated Source Code
There is now a context menu to navigate directly to the generated decompilation. This new menu option is shown in Figure 4.
Figure 4 – “Go to generated source” context menu
We’ve added the ability for order the assemblies either by:
- Assembly name (the default) or
- Decompilation status
These options are shown in Figure 5. When selecting Decompilation status, all of the decompiled assemblies are listed first (in alphabetical order) followed by the non-decompiled assemblies.
Figure 5 – Ordering assemblies
You can filter the assemblies that are shown in the Assembly Browser as in Figure 6. You can select:
- All (the default)
- Not Decompiled
- No debug header
Figure 6 – Filtering the assemblies
Change Variable Type Code Fix
We also added another Fix – for variable types. When you are assigning a variable to another variable where the types can’t be implicitly converted, JustCode now has a fix to change the type of the assignee variable to match the type of the assigner. In Listing 1, there are several examples of variable typing mismatches that can be fixed by JustCode.
int notNullableInt = 5;
int? nullableInt = 5;
notNullableInt = nullableInt;
int integerType = 5;
double decimalType = 5.0;
notNullableInt = decimalType;
string myString = "5";
int myNewInt = 5;
myNewInt = myString;
Listing 1 – Variable Type mismatches
Figure 7 shows JustCode showing the new Code Fix.
Figure 7 – Change Type Code Fix
The hardworking guys and gals on the JustCode team continue to amaze me with how fast they get new features built into the product. Visual Studio 2013 Preview support, even better Decompiling and managing Decompiled Assemblies to just name a few. Of course there are a lot of fixes and other minor improvements included as well.
Download the Service Pack today, and give it a spin. I believe you’ll like what you see!