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). 

image
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.

image
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.

SNAGHTML59e166
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.

SNAGHTMLa2aeec4
Figure 4 – “Go to generated source” context menu

Ordering

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.

image
Figure 5 – Ordering assemblies

Filtering

You can filter the assemblies that are shown in the Assembly Browser as in Figure 6.  You can select:

  • All (the default)
  • Not Decompiled
  • Decompiling
  • Decompiled
  • No debug header

image
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.

SNAGHTML785e06
Figure 7 – Change Type Code Fix

Summary

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!

JustCode download banner image
Japikse
About the Author

Phil Japikse

is an international speaker, a Microsoft MVP, ASPInsider, INETA Community Champion, MCSD, CSM/ CSP, and a passionate member of the developer community. Phil has been working with .Net since the first betas, developing software for over 20 years, and heavily involved in the agile community since 2005. Phil also hosts the Hallway Conversations podcast (www.hallwayconversations.com) and serves as the Lead Director for the Cincinnati .Net User’s Group (http://www.cinnug.org). You can follow Phil on twitter via www.twitter.com/skimedic, or read his personal blog at www.skimedic.com/blog.

 

Comments

Comments are disabled in preview mode.