Usability Improvements in the Class Library Reference

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.

Before After
image image

Solution: We grouped related namespaces into namespace collections.  For example, the new System.IO namespaces collection is:

systemio

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:

inheritance

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.

This entry was posted in MSDN Library and tagged . Bookmark the permalink. Both comments and trackbacks are currently closed.

One Comment

  1. Posted November 30, 2010 at 4:30 pm | Permalink

    Overall I like all of these changes. My one complaint is that I would rather that the top of the inheritance hierarchy be clipped, instead of the derived types. It is much more likely that I want to see the derived types of System.Windows.Controls.Primitives.Selector than that I want to know that it originally derives from System.Object.

%d bloggers like this: