First time here? Check out the site's "greatest hits" or read a post from the archives. Feel free to leave a comment or ask a question, and consider subscribing to the latest posts via RSS or e-mail. Thanks for visiting!
Do you Tweet? Follow me on Twitter @shanselman or learn how to use Twitter!
« Coding4Fun: Microbric Viper Robot with a... | Main | Tips on 2007 Conference Attendance »

UPDATE: Fixed misspelled title, the permalink for this page changed, fix your incoming links!

Reflector 5 is out, and it is good. Go get it immediately, or just run your current version and go Help | Check for Updates.

What's the coolest new feature? Why, a custom "protocol handler" that will soon sweep the (.NET) blogosphere. Select any item in Reflector and press Ctrl-Alt-C to copy the code:// URI for that item. Like this:

Click here if you have Reflector 5 to navigate to this method: code://System.Xml/System.Xml.XmlNameTable/Add

Note that URI can include the version and hash value for the assembly, as my example does in the underlying href.

code://System.Xml:2.0.0.0:b77a5c561934e089/
System.Xml.XmlNameTable/Add(String):String

Worried it won't work in FireFox? Remember that Custom Protocol Handlers aren't an IE only thing. Notice my FireFox dialog below. Just click "Remember my choice" and you'll have the same glorious integrated experience as everyone else. This code:// thing could take off...I wonder if we can work out some kind of cross-promotional thing with the Java guys? ;)

Here's a few ACTION ITEMS for you after you've downloaded the new version:

  • FONT SIZE: Be sure to visit View | Options and set up your fonts if you use Reflector for presenting. Set your fonts before you present, or call Reflector /fontsize:14 when you start it for a talk.
  • REGISTER WITH EXPLORER: Run "Reflector /register" if you want "Browse with .NET Reflector" to be your default option for all .DLL files.
  • ASSEMBLY LISTS: After you run Reflector, press Ctrl-L and bask in the little-known but totally awesome Assembly Lists feature. I use this for different projects as it let's me "switch views" very quickly. Setup as many lists as you like.
    • Remember that if your list gets "sloppy," just hold down delete and quickly remove every assembly. Then hit Ctrl-L and enter, and you'll be able to select a new Default list and be prompted for a version of the .NET Framework, including Mono if you have it installed.
  • EXPLOIT ANALYZE: Try the new improved Analyze feature by right-clicking any type or Assembly or by pressing Ctrl-R. The new items are Exposed By, Instantiated By, and Assigned By. Exposed By is VERY useful.
    • Also, not new, but still great, is the P/Invoke Imports analysis, that only appears when you've selected Analyze while an assembly (not a namespace) is selected. Try selecting System.Web, Right-Click, Analyze, then P/Invoke and see what unmanaged code your "pure" .NET application is using.
  • GET ALL THE ADD-INS: Finally, go load up on Reflector Add-Ins at CodePlexSo many people use Reflector, but it's profoundly a bummer that so few really exploit the available add-ins. Try the Diff add-in and the TreeMap to start, and once you're hooked, collect them all and trade them with your friends.
  • PUT IT IN YOUR PATH: Oh, and one other thing, folks. Forgive me for this rant, but if I go to another person's machine to debug or work with you for some reason, and Reflector.exe isn't in your path, I'm going to smack someone. Please, let me at least Start|Run|Reflector. If it's in c:\utils\tools\bar\my downloads\foo\reflector, fine, but for the love of .NET, make sure it's in your PATH.

Thanks Lutz! We all owe you.

Tracked by:
"Scott Hanselman's Computer Zen - Refector 5 Released - World Domination Assured... [Trackback]
"Lutz Roeder's .NET Reflector 5.0!" (CCNetConfig) [Trackback]
"Scott Hanselman's Computer Zen - Refector 5 Released - World Dominatio" (DotNet... [Trackback]
"Reflector 5.0 changes .NET Blogging" (Tim Rayburn's Blog) [Trackback]
"Reflector 5 Released" (Wes' Puzzling Blog) [Trackback]
"Reflector 5 Released" (Wes' Blog) [Trackback]
"Reflector 5 Released !!!" (Osama Abbas) [Trackback]
"Reflector 5.0 just released" (Microsoft UK Developer Tools Team) [Trackback]
"Add-ins updated for .NET Reflector 5.0" (Denis Bauer's Weblog) [Trackback]
"Reflector 5.0 released!" (DDITWeb) [Trackback]


Tuesday, February 20, 2007 1:37:36 AM (Pacific Standard Time, UTC-08:00)
Erm... psst... you spelt the name of the product wrong in the post title :)

Spiffy new version tho. Congrats Lutz!
Dan F
Tuesday, February 20, 2007 2:21:23 AM (Pacific Standard Time, UTC-08:00)
Greatest tool for .net ever, got it through built in update. Good tip about path, but I use Google Desktop so by typing Ctrl, Ctrl , [App name] I can start anything from anywhere.
Pop Catalin
Tuesday, February 20, 2007 2:39:40 AM (Pacific Standard Time, UTC-08:00)
Yup, this tool is so good it hurts.

If you want to read the 'What's New' PowerPoint presentation but don't have PowerPoint, I've taken the liberty of converting the PPT to a PDF - read it on my blog:

http://www.andrewbibby.co.uk/index.php/2007/02/20/lutz-roeders-reflector-50-released/
Tuesday, February 20, 2007 3:54:12 AM (Pacific Standard Time, UTC-08:00)
Someone corrected a typo in the code uri on my blog so I am here to pay it forward.
You have an http:// in the beginning of the href of your example.
Tuesday, February 20, 2007 4:18:07 AM (Pacific Standard Time, UTC-08:00)
The link is broken, starts with http://code://
Tuesday, February 20, 2007 7:07:50 AM (Pacific Standard Time, UTC-08:00)
Scott,

Will you please, please, please try and bully Lutz into doing a Hanselminutes with you. I know that Karl's tried to get him on DNR before, but your show may suit him more. I think the level of professionalism he shows to this free tool is just amazing and would like to hear what he has to say on any topic. Also, the support that he gives to Reflector plug-in developers is pretty astounding.

If he had a PayPal donate button, I for one would press it.

Martin.
Tuesday, February 20, 2007 7:51:57 AM (Pacific Standard Time, UTC-08:00)
I'll add one additional must do for reflector - add it to the tools menu in VS. Add it as a tools - External tools. Here's what I put for Arguments:

/fontsize:14 /fontfamily:Arial $(TargetPath)

Automatically pulls up the current assembly you are working on.
Tuesday, February 20, 2007 8:18:12 AM (Pacific Standard Time, UTC-08:00)
The PATH might make sense if you have a single folder with a bunch of utilities. Otherwise, you can safely leave your DOS tricks behind and just add an entry for reflector.exe to:
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths
Set the (Default) string value to the full path to the executable. Start|Run glory, the Windows way.
Tuesday, February 20, 2007 9:08:57 AM (Pacific Standard Time, UTC-08:00)
That code:// link is my favorite new feature, too. I'd jokingly put reflector:// links in old blog posts; time to update them. I used Joshua's trick to add Reflector to the path. My c:\utils\ folder is categorized into subfolders by type, so adding individual utilities to the path would make it pretty cluttered. Now the watch for updated plugins (FileDisassembler, for one) begins!
Tuesday, February 20, 2007 9:31:39 AM (Pacific Standard Time, UTC-08:00)
Take a look at the Test Driven.NET integration...you can right-click on any assembly and it'll open in reflector..kind of what you have, on steroids.
Scott Hanselman
Tuesday, February 20, 2007 11:54:50 AM (Pacific Standard Time, UTC-08:00)
You mention that reflector should be in your path. That gives me an opportunity to exploit a (ruby) gem I created a few weeks ago which makes managing your path a breeze. Instead of going to My Computer | Properties | Blah blah and adding the path entry using that terrible dialog, just follow these steps:

gem install patheditor
path_editor --add c:\path\to\reflectore

Adding items to the Windows Path is so painful, I created this utility to make it a little easier for everyone.

It uses a WSH object to update your USER path setting, and the change will be permanent - current and future command prompts will see the new path. Unfortunately, slickrun does not respect path updates so you'll have to kill it and restart if you launch prompts from there ...
Justin
Tuesday, February 20, 2007 12:03:32 PM (Pacific Standard Time, UTC-08:00)

I was using Salamander about two years ago and, in my opinion, it was better than Reflector.
Both products have evolved and I wonder if Reflector 5.0 has all the features of the latest Salamander. (I am not sure if Salamander is still being supported and upgraded)
abdu
Tuesday, February 20, 2007 3:20:19 PM (Pacific Standard Time, UTC-08:00)
@Justin - How is that better than just adding them from the PATH DOS command:
c:\>PATH "C:\Program Files\Folder To Add\";%PATH%
Tuesday, February 20, 2007 7:45:18 PM (Pacific Standard Time, UTC-08:00)
Hey Scott ... I don't put Reflector in my path, but run Launchy. It's less typing than using the Run dialog box, because I just type altspace-r-e-f-enter.
Wednesday, February 21, 2007 3:08:56 AM (Pacific Standard Time, UTC-08:00)
Scott,
I linked to your post about reflector however when you changed your title due to the spelling mistake the link broke.
Is there not a better way to preserve links??
steve flitcroft
Wednesday, February 21, 2007 6:59:43 AM (Pacific Standard Time, UTC-08:00)
Hi,

Here is a quick tip on how to organize all your favorite utilities.
1. Create a C:\Utils folder.
2. Put the C:\Utils in you Path.
3. Create Symbolik link using Vista mklink (cd c:\Utils;mklink Reflector.exe "c:\Program files\Reflector\Reflector.exe") or NTFS Link ShellExtension .
Shay Erlichmen
Wednesday, February 21, 2007 8:46:00 AM (Pacific Standard Time, UTC-08:00)
Steve - you've discovered one of the problems with DasBlog...permalinks are based on titles, unless you use the Guid. I'll have to put in a manual redirect.
Thursday, February 22, 2007 12:25:22 PM (Pacific Standard Time, UTC-08:00)
@Jon

Updating path that way only affects your current command prompt. My script uses WSH objects to propagate the change to all running processes (that respect the update), and future prompts will include the new path.

The script will also not add duplicate entries, and it can even clean duplicate/non-existent directories out of your current path.
Justin
Saturday, February 24, 2007 5:39:20 AM (Pacific Standard Time, UTC-08:00)
>> you've discovered one of the problems with DasBlog...permalinks are based on titles, unless you use the Guid. I'll have to put in a manual redirect.

(Sorry to hijack this thread, but I mentioned this on the dasBlog dev-list before but it didn't seem to interest anyone...)

Yeah, that's what's really bothered me about my dasBlog. Here's what dasBlog needs (WordPress has most of this):

* A "slug" seperate from the title used for the permalink.
* The slug should be populated via Javascript when title first entered.
* The slug should use dashes to seperate words, not underscores[1].
* Changes to a slug after first publish should record an automatic redirect.
* The users should be warned when a changes would override a prior slug.

I haven't had the time to figure out how to get a dasBlog development environment set up or I would have tried myself.

-Mike

[1] http://www.mattcutts.com/blog/dashes-vs-underscores/ (this is 'Google Guy')
Thursday, March 08, 2007 3:02:50 PM (Pacific Standard Time, UTC-08:00)
Reflector 5's code:// feature is very cool, but I could not get Ctrl-Alt-C to work as described in this post. It turns out that exact key combo is used by the multi-protocol instant-messaging client Trillian, so every time I pressed that key combo, it would bring up Trillian's configuration dialog in the background on my second monitor where I didn't see it. If you have this program installed, simply select "Trillian" -> "Trillian Preferences" from the menu, then "Advanced Preferences", "Automation", and either change the hotkey or disable it altogether. Hope this helps someone else.
Parag
Comments are closed.

Contact

Sponsors

Hosting By

Hot Topics

Tags

Calendar

<July 2009>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

Archives

July, 2009 (15)
June, 2009 (26)
May, 2009 (16)
April, 2009 (13)
March, 2009 (17)
February, 2009 (17)
January, 2009 (18)
December, 2008 (32)
November, 2008 (17)
October, 2008 (22)
September, 2008 (16)
August, 2008 (14)
July, 2008 (25)
June, 2008 (19)
May, 2008 (17)
April, 2008 (17)
March, 2008 (26)
February, 2008 (21)
January, 2008 (28)
December, 2007 (19)
November, 2007 (17)
October, 2007 (31)
September, 2007 (39)
August, 2007 (37)
July, 2007 (43)
June, 2007 (37)
May, 2007 (32)
April, 2007 (38)
March, 2007 (29)
February, 2007 (46)
January, 2007 (31)
December, 2006 (27)
November, 2006 (31)
October, 2006 (32)
September, 2006 (39)
August, 2006 (34)
July, 2006 (40)
June, 2006 (18)
May, 2006 (31)
April, 2006 (34)
March, 2006 (30)
February, 2006 (38)
January, 2006 (44)
December, 2005 (19)
November, 2005 (34)
October, 2005 (24)
September, 2005 (37)
August, 2005 (20)
July, 2005 (24)
June, 2005 (33)
May, 2005 (16)
April, 2005 (22)
March, 2005 (34)
February, 2005 (15)
January, 2005 (37)
December, 2004 (28)
November, 2004 (30)
October, 2004 (34)
September, 2004 (22)
August, 2004 (34)
July, 2004 (18)
June, 2004 (64)
May, 2004 (49)
April, 2004 (21)
March, 2004 (29)
February, 2004 (29)
January, 2004 (36)
December, 2003 (25)
November, 2003 (24)
October, 2003 (59)
September, 2003 (42)
August, 2003 (24)
July, 2003 (44)
June, 2003 (29)
May, 2003 (21)
April, 2003 (30)
March, 2003 (27)
February, 2003 (47)
January, 2003 (50)
December, 2002 (31)
November, 2002 (38)
October, 2002 (44)
September, 2002 (15)
May, 2002 (2)
April, 2002 (4)

Google Ads