Reflector 5 Released - World Domination Assured
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.
- Reflector 5.0
- Reflector 5.0 Add-Ins @ CodePlex
- Reflector 5.0 New Features (PPT)
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 CodePlex. So 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.
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
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/
You have an http:// in the beginning of the href of your example.
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.
/fontsize:14 /fontfamily:Arial $(TargetPath)
Automatically pulls up the current assembly you are working on.
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.
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 ...
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)
c:\>PATH "C:\Program Files\Folder To Add\";%PATH%
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??
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 .
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.
(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')
Comments are closed.
Spiffy new version tho. Congrats Lutz!