Where is my Source Browser?

If you're an experienced Visual C++ 6.0 user, chances are you've become quite attached to the Source Browser tool. This tool provided rich browsing functionality for any project that generated a .bsc file. It was accessible from the Alt+F12 shortcut, and users could obtain information for an identifier. The choices were things like "Definitions and References", "Base Classes", "Derived Classes" and "Call/Callers Graph". Well needless to say, if you have used Whidbey, you know that we have made sure to provide all this functionality. In addition, we have made it much simpler to use and more ubiquitous. In other words, much of the functionality is available through direct means such as the "Class View" window, which shows base and derived classes. In addition to spreading the functionality across the IDE, we have a browsing tool called the Object Browser (so don't go looking for the name Source Browser). This feature was sorely lacking from 2002 and 2003 and we took special care to re-create it and improve it. For example, creating the bsc file was always a bit of an issue, as it could add 10-15% to a project's build time, and more importantly, it meant that the information visible in the source browser was only as fresh as the last compilation. With Visual C++ 2005, we have eliminated the need for that file, instead the Intelllisense engine adds that information to its store so that it is always available and always live. On the other hand, you can still generate the file and it can opened in the Object Browser in order to get this information without having a project for it. I recently came across a customer who asked why he could browse the entire .NET framework in the Object Browser but could not do the same for MFC. I was happy to reply that is very easy to do this! All one needs to do is add the mfc.bsc file into the Custom Component Set of the Object Browser and voila!

Well, that's enough of a spiel (I have to figure out how to add pictures to this post as it would definitely help :)

Finally, I urge you to send me/us your feedback on this area because we really want to make sure it meets the needs of every single VC++ 6.0 user. And by the way, the Call Graph (a.k.a. Call Browser) functionality is *only* available in C++. Take that C#!