EAP 7.6 Build 4

The team is finally back under the same roof (back from assorted conferences and holidays), and we’ve been forging ahead with our Dev11 theming and C#5 async support. We also took the time to do a little house-keeping, which I’ll get out of the way first. So here’s what we’ve been working on for .NET Reflector v7.6.0.356EAP4…

House-keeping

  • The “about” box in the standalone component of Reflector has been given an overdue lick of paint. It’s now the same as what the Visual Studio extension displays.
  • We’ve made the availability of the niche languages more configurable. Going through the Tools > Options > Languages menu in the standalone tool, you can now control whether Delphi and Oxygene are available in the languages drop-down menu as decompilation targets.

Control whether niche languages are viable decompilation targets
(click for a larger, clearer image)

  • The End-of-EAP dialog has had a refresh, and now gives you clear instructions on how to submit your feedback, jump up to the latest Early Access build, or uninstall the EAP entirely.
  • Clive fixed a bug in the WinMD support, so that WinMD files are now discoverable on both 32-bit and 64-bit machines.

Visual Studio 11 theming

Nigel’s been unravelling how theming works in VS11, and how to make the .NET Reflector components that extend into Visual Studio play nicely with the Dev11 beta. This has involved a certain degree of re-plumbing in the Reflector UI, but Nigel is taking it all in his stride.

  • We’ve got to a point where the Reflector Object Browser and context menus accept the Dev11 theme tones & background colours, so the Reflector extension should feel pretty natural inside Visual Studio.
  • At the moment, we are aware of a minor bug when using the dark theme; some text in the ROB is rendered lighter than expected. We’re tracking this down, and will get it tidied up soon.

Async decompilation

Clive & Ruchika are continuing to work down the list of 192 new async methods, making sure we emit sensible decompiled code in each case. Ruchika has got her head around how to effectively test async decompilation, which should start to speed things up.

  • Taking a look at our current coverage, we support most of the new async methods in the System.IO namespace & some of the new methods in System.Xml. We don’t yet support the new methods in System.net or System.Web, but these are on the list for the next sprint.
  • At the moment, we know Reflector doesn’t handle nested try blocks very well, and we’ve also taken steps to make sure we don’t emit anything totally mad. Essentially, anything that we’re not sure we can do right for .NET 4.5, we fail back to emitting in .NET 4.0 (I’ll come back to this in a moment).

An illustration of successful and failed async decompilation
Click on the image for an enlarged, more readable version

If you’re interested to know a bit more about the challenge Clive & Ruchika are facing, it boils down to the fact that they’re trying to update Reflector to have coverage across not one, but 2 new compilers: one for the framework, and a separate (newer) one in Dev11.

At the moment they’ve achieved partial coverage, but they’re working hard to improve that. If the final release of .NET 4.5 is built using a more up-to-date compiler, then we’ll move as fast as we can to cover that, but we want to make sure you can start experimenting with the latest technology right now.

Feedback

Any and all feedback about the latest build of Reflector is gratefully received! We’d particularly like to know about any issues you encounter with our async code and Dev11 theming.

In fact, with regards to the async feedback we’d love to see, let me explain that a little more. As I mentioned earlier, we’re trying to graciously fail back to .NET 4.0 code when we know we can’t decompile some async method you’ve targeted. So, any async code we’re displaying, we think we’re handling well.

As such, we’ve love to hear any feedback about async decompilation that has clearly failed in some way (i.e. where we’ve tried to generate async code, and it’s just not right).

Download the latest Early Access build of .NET Reflector, and let us know what you think. If you have any comments about the latest build, just send an email to EAP@reflector.net – we really appreciate your help.

This entry was posted in Uncategorized on by .

About Chris

A background in technical publishing; editing articles on Simple-Talk and SQLServerCentral for 3 years now. When I’ve not been editing articles, I’ve been editing or proofing books covering everything from .NET performance testing to Exchange Server, XML Schema Design, and the SQL Server Query Optimizer. I built a few websites to help pay my way through college, but the less said about them, the better.

One thought on “EAP 7.6 Build 4

  1. Takuya Takeuchi

    I do not know that whether I am permitted or not to say here…

    Thank you for your decision; upgrade my license to include an extra year of Support and Upgrades!!

    I think .NET Reflector is most grateful application!!
    I wanna continue to support it and developer team.

    I want to say “Thank you very much!!” over again.

    May I donate you to support by PayPal?

    I am sorry if my English is hard to understand.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *