Do you WinCV?

There is an application that comes with the .Net SDK called WinCV.  This little utility is used to quickly scan a group of assemblies for names that match a search string.  It’s a quick way to find the namespace of the class you know has the name “ObscureObject-Something-or-Other”.  Once it finds the objects that match the search you can see the interfaces, methods, members, etc. that the object has.  Almost like an Object browser, except the search is a LOT faster.

You can find it in the default install location of C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\WinCV.exe (or you may have to search for it).  It has an included config file as well (wincv.exe.config).  Thanks to a little trick I saw on a Microsoft webcast I know that you can modify which assemblies the application searches through by changing the configuration file.  If you want to search only your own stuff, or the case of this post the EntLib assemblies, then I suggest making a copy of the exe and config out to another directory that contains the assemblies you want to search and modifying the config file to look in the assemblies you want it to.  Note that while the default config file that comes with the app gives the long form of an assembly (i.e., name, public token, version, etc.), you can just provide the dll name.

You can download a copy of a config file that can be used to search the EntLib assemblies from my site.  Make a copy of the WinCV.exe application from the location above and copy it to the bin directory where all the EntLib assemblies are built (my box had them installed to the default of C:\Program Files\Microsoft Enterprise Library\bin).  Then unzip the contents of the zip file from the download to that directory as well.  Run the winCV.exe from that directory and search away!

You can do this with any group of assemblies you want to search.  If you have large project you are working on it may help newer developers ramp up on what objects exist in your namespaces, what they expose, etc.  Of course, if you were really on the ball all that information would be in .chm files created by nDoc from code comments in your code!