One of the VS.Net tools is WinCV. I’m sure it’s short for Class Viewer. Juval Lowy, in his episode of MSDN TV, introduces WinCV as one of his tips and tricks. In my opinion, everyone who is doing ASP.NET development should have an installation of Web Matrix. Included in that 1.3MB download is a lightweight ASP.NET development tool sans intellisense or code-behind. More importantly, it comes with a program call Matrix ClassBrowser. In my opinion, this tool does a much better job of type discovery than WinCV. WinCV just displays a class outline. ClassBrowser will also do this, but it has several more powerful features. For instance, in ClassBrowser, if you aren’t sure what you are searching for, you can browse by namespace. The feature I use most is the search feature. I can search for a class. Then I can pick from the search results. Once the type is displayed, then the powerful features come into play. I can switch between class outline and description. I prefer the description view where it displays its inheritance hierarchy, and then there are two useful option: Search for types extending the type, and search for types that have this type as a field, property, or method.
Yesterday I posted about the collections built into the .Net Framework. I knew that there were collection based on IList and some bases on IDictionary. In ClassBrowser, I looked up IDictionary, and then searched for types extending IDictionary. I can not do this in WinCV. Searching for types extending this interface quickly returned the information I needed, and this type of search is not even possible in the SDK documentation. I think this is very powerful. Furthermore, ClassBrowser will allow you to view a class definition including members that are inherited from a base class. WinCV only shows the current class outline without inherited members. ClassBrowser can also show you private members if you desire to see them. Two other features I use often are 1: A link to the online MSDN documentation for this type, and 2: A link to the SDK documentation for the type. All in all, it’s a great tool, and I use it almost every day. The only shortfall of the tool is that it is based on v1 of the .Net Framework, so some types have changed, but most types are close enough that it doesn’t make any difference. The link to the SDK documentation for the current type does go to the v1 SDK that I have installed, so to jump over to the SDKv1.1 of the docs, I just have to type in “v1.1” after the “SDK” in the url. I would very much like to see a version of this tool that can search over v1.1 of the Framework and even v2 when it comes out. It’s a little puzzling because through a “customize” option, I can load in my own custom library assemblies, and ClassBrowser will look in those during a search as well, and I can explore my own types just as powerfully as .Net Framework types. Of course, the link to the SDK docs for my types is broken. 🙂
In conclusion, I highly recommend the Web Matrix ClassBrowser for type discovery and research.