Category Archives: Development

Recent problems with Reflector VSPro

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

Heading in the right direction – new analysis features

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.

JS-highlight-1

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)

Continue reading

A little something we’re prototyping

Here’s a quick preview of something Clive is busily prototyping:

Translating values on hover

Translating values on hover

It’s an idea we’ve had for a while – JavaScript in the Reflector code view pane theoretically lets us offer some extra analysis information on the fly. Over the next week or so, we’re taking some time out to see how feasible it is to build this into the desktop tool, and look at what we could add.

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.

An update to the Obfuscation Checker

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

Faster pussycat, Faster!

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.

Continue reading

The second beta release for Reflector 8

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.

Continue reading

7.7’s Power(ful) Commands

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.

Continue reading

Guest post: .NET SmokeTest for Reflector

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.

Continue reading

Prototyping Desktop Deblector

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.

Continue reading