Daniel Cazzulino's Blog

Go Back to
kzu′s Latest post

Add References with Search

If you have been using VS2010 for any significant amount of time, you surely came across the awkward, slow and hard to use Add Reference dialog. Despite some (apparent) improvements over the VS2008 behavior, in its current form it’s even LESS usable than before. A brief non-exhaustive summary of the typical grief with this dialog is:

  1. Scrolling a list of *hundreds* of entries? (300+ typically)
  2. No partial matching when typing: yes, you can type in the list to get to the desired entry, but the matching is performed in an exact manner, from the beginning of the assembly name. So, to get to the (say) “Microsoft.VisualStudio.Settings” assembly, you actually have to type the first two segments in their entirety before starting to type “Settings”.
  3. Lazy loading with no progress indicator: loading is done asynchronously in VS2010, supposedly improving the situation from VS2008 where it would just freeze until it was done. Well, without an indicator, you don’t know when loading is done and when it’s safe to assume a given assembly isn’t there because it is truly not available.
  4. Random order while lazy loading: moreover, while the lazy loading is happening (and you don’t know when it’s done), entries in the list are added in an almost random order, so any scrolling or typing you do results in constant repositioning of the current selection and changes to the underlying list. This makes it effectively impossible to use the dialog until the lazy loading is completed.
  5. No sorting while lazy loading: related to the previous one, you cannot sort the list at all until the lazy loading is complete, so scrolling is impossible.


So we decided to do something about it. I introduce you to the Search References extension:


From the Extension Manager in Visual Studio 2010, you can simply search the Online Gallery for “Search Reference” and install it right-away:


The dialog loads VERY fast. And because a picture speaks a thousand words, here are more screenshots to get you excited.

Partial matching:




Current project .NET profile aware. Silverlight 4:


Silverlight 3:



Enjoy, and don’t forget to rate it!