In late December we released .NET Reflector 8.3, adding analysis capabilities to Visual Studio, as well as fixing a number of bugs. Unfortunately there were two separate issues with this release which caused problems for several users, and we’d like to apologize if you were affected.
Firstly, in some scenarios, the new Analyzer Pane in Visual Studio would open itself every time Visual Studio started regardless of whether it had previously been closed, which was obviously a nuisance. That issue was understood and fixed within a few days.
Secondly, for some users the fix to one of the bugs addressed by this release introduced a separate performance problem when debugging in Visual Studio. The cause was more difficult to identify, so it took us longer than we would have liked to get it fixed. We released an updated version (188.8.131.52) last week resolving the problem, which you can get from the VS Gallery.
Ultimately these problems stemmed from us not taking enough extra time for testing given the scope of the changes. We’ll be careful not to let that happen again in the future, and will also spend more time expanding tested scenarios before future releases.
We’re really sorry for the problems this update caused for some of you. If you continue to experience any issues after updating, please get in touch.
A long while ago in developer years – sometime last year in real time – the Reflector team decided to do a spike to see if we could spice up the Reflector code pane.
The Reflector code pane
At the time we were focussed on making it easier for someone to take decompiled code and understand it, in order to get to the root cause of their debugging problem. When you edit code in Visual Studio there are many tools for helping you understand the flow of data of data through the methods. Since we generate the decompiled code, we know lots of information about the code and its relationship to other decompiled methods, and so we should be able to make this information available to users of Reflector in the form of some kind of head up display.
(If you want to try it out, you can download it here)
Here’s a quick preview of something Clive is busily prototyping:
Translating values on hover
Toggling values in and out of hex for easier comprehension was a small but frequent request in user tests, and it felt like a nice place to start. So here it is on hover – we’ll keep you posted on how we get on.
There’s some other stuff we’re considering, too: something to highlight data flow, maybe, or make it easier to see variables move through decompiled code. But this was a good, simple place to start.
Let us know if there’s anything you’d like to see.
A couple of days ago, David pushed out an update to the .NET Obfuscation checker.
It’s a fairly small update – he’s bumped the version of Reflector it uses so it’s now completely up to date, fixed a crash on startup that some people had seen, and made a few other small tweaks and bug fixes.
If you’d missed it, the Obfuscation Checker is a simple free tool that uses Reflector to scan through a directory and check the contents for obfuscation, strong naming, signing, and so on.
The idea is that it should make the release process a little easier if you need to obfuscate and protect your IP, so hopefully people will find it useful. And of course, we’re happy to hear any feedback.
You can download it from the Red Gate labs site
We’re doing a refresh on the search functionality; below you can see the old search pane. One of the main problems with this is that when you open it up, it eats up the space you would normally use to look at code.
So to try to address this we started working on a filtering solution for the assembly tree. We got some way into development and put it out in a beta. We also got straight into user testing with a number of volunteers.
Download the latest beta release
Version 7.7 of .NET Reflector was released only a couple of weeks ago, and we’ve been working on many changes. The most prominent of these was integrating the power commands into the tool (you can find details of the earlier release here). We’ve since been working on the next version of Reflector, version 8. The goals here are making it easier and faster for people to find bugs and understand third-party code by improving the static code analysis inside the desktop version of the tool and improving the route into debugging. The current beta is a step forward towards achieving this goal for Reflector 8.0.
One of the most significant improvements we’ve made to Reflector is attaching a search filter to the assembly browser. You can now dynamically search for any implementation within the list of assemblies loaded in the assembly tree view.
If you’ve tried the .NET Reflector 7.7 release, you’ll notice some new commands have appeared across the program. These are the remains of the Power Commands we integrated into the tool a while back, and as part of my work on add-ins I’ve moved the most useful ones into the foreground to make them more accessible and easier to use. These commands could previously be enabled from the options menu, but they hadn’t been worked on in a long time and had run into disrepair; some were confusing and others downright broken.
Here’s a rundown of the updated commands and how to access them from within Reflector.
.Net Reflector 7.7 is going to have a fairly quick turn around and a short beta period, as we’re looking to release later on this month. We’ve mostly been fixing bugs and tidying things up but there are probably a couple of things of note that are worth mentioning.
If you want to try out 7.7 now, it’s available as the latest EAP build
This is a guest post from Wesley Steiner, the author of .NET SmokeTest, explaining his app, and how it works with Reflector.
What is .NET SmokeTest?
.net SmokeTest is a Windows application that presents an interactive interface into any .net Assembly allowing you to smoke-test an API via reflection. You can call any member without ever writing a single line code. An indispensible tool for anyone involved in developing, testing and managing software products for Windows.
Anyone remember Deblector? It was an add-in for Reflector 6 which provided debugging support. It became open source in 2007, but ceased development at Reflector 6.5 a few years ago.
In the last few weeks I’ve picked it back up, in order to investigate whether debugging could make it into the next version of Reflector Desktop as a novel feature. This is a request we’ve had a few times over email and in the forums, when users either can’t start up Visual Studio (or prefer not to), but still want to be able to easily pinpoint bugs in their code.
As a working prototype, Deblector was a superb starting point for this investigation.