Goodbye .NET Reflector, Hello ILSpy!

Posted Wednesday, May 25, 2011 9:30 AM by Nathan Zaugg

ILSpyLogoI am one of those that was quite upset about the announcement from RedGate that .NET Reflector would no longer be free.  Particularly since it was given to them for free and they have only mucked things up from the original.  It was also my understanding that one of the conditions under which Lutz Roeder gave them the code was that the tool remain free.  I guess I can remove myself from the “RedGate” fan list.

I was so upset about the announcement that I not only wrote RedGate to tell them how much I disapproved of the move but I also started a new project to replace reflector.  I didn’t have too much time to invest in it and never uploaded anything to CodePlex before they deleted my space.  I may not use .NET Reflector every day but I use it enough to miss it.  Probably enough to pay for it, but I won’t be supporting RedGate! Of course free is better.  I could write a whole blog post about why I would pay for tools and components but how time and time again these tools cause me stress!

Fortunately I wasn’t the only one who had the idea to build a free reflector and someone with a bit more time than myself has a working product that does 90% of what I need a reflector to do for me.  ILSpy is a great little tool that looks almost indistinguishable from .NET Reflector. 

ILSpy Screen Shot

As you can see it reflects .NET code giving you an excellent decompilation of the source files.  There are a few features that I miss from this app.  Mainly all of the plug-ins that were available.  The plug-in that I miss the most was Reflexil, one that was built using Cecil (from the Mono framework) that would allow you to change the IL of an assembly and save it back.  The application is open source so perhaps I’ll make me a version that does that.  Perhaps someone on the ILSpy project wants this feature as well?  If I do make the plug-in I will certainly make it public!