Scott Guthrie recently blogged about our plans to “streamline the navigation experience and make it easier to find the .NET Framework information you need” and highlighted some of the changes we were considering.
We used a preview site + online survey combination to test these ideas with Library users during our design phase. Based on survey feedback, we’ve made three changes to the online MSDN Library experience.
#1 Simplified top-level namespace list
Problem: There were 408 top-level namespaces in the .NET Framework 4 Class Library and they were listed alphabetically in the Table of Contents (ToC). That means you had to do a *lot* of scrolling to navigate to a popular namespace like System.Xml.
Solution: We grouped related namespaces into namespace collections. For example, the new System.IO namespaces collection is:
That resulted in only 54 top-level namespaces (see the Before and After thumbnails to the left). We moved the System.* namespaces to the top of the list and removed the word “Namespace” (singular) after every ToC namespace entry to reduce visual clutter.
#2 Comprehensive class overview topics
Problem: Information about a single class was spread across up to six different pages. This often required a lot of back-and-forth clicking, especially when you were learning about a class for the first time.
Solution: We added the member lists into the class topic to create a single comprehensive topic about each class. For example, check out the String Class to see how we’ve included API information from its five member pages into the class overview.
Individual member pages still exist and are a helpful grouping mechanism when you’re working with specific kinds of members, like properties or methods.
#3 Improved topic presentation
Problem: The most important information should be placed near the top of the page to minimize scrolling.
Solution: Based on survey feedback, we placed the inheritance hierarchy information much higher on the page. We constrained the hierarchy list to a maximum of 11 lines so it doesn’t push other important content too far down on the page. For inheritance hierarchies of greater than 11 lines, we added a “More…” link. The System.Exception class provides an example:
We strongly considered moving the Code Examples section higher on the page but chose not to after receiving very mixed feedback on doing this. Code examples can take up a lot of vertical real estate and thus get in the way when all you need is basic API reference information.
A couple of caveats
These improvements only apply to .NET Framework 4. Older versions of the framework currently display as they did before. In addition, we started with the English-United States (EN-US) documentation. These changes will trickle out to other locales as part of the normal documentation update cycle.