|UPDATE: This post describes features introduced in Microsoft Help Viewer 2.0 Beta. Introducing Microsoft Help Viewer 2.0 provides an overview of the final, released product.|
Visual Studio 11 Beta is out and, with it, the release of Microsoft Help Viewer 2.0 Beta. Get started by downloading the bits at:
- Download Visual Studio 11 Beta (general availability)
- Download Visual Studio 11 Beta (MSDN Subscribers)
The Help Viewer team’s been busy since I blogged about new features in the Developer Preview. In this post, I’ll cover new features we’ve added in the Beta release:
- TOC Filter
- Keyword Index: “Begins With” vs. “Contains”
- Docking Windows
- Color Themes
- Search Filter UI
- Improved Performance
Setup and Configuration
If you’re performing a clean install of Visual Studio Professional, Premium or Ultimate, you’ll be offered the chance to download local Help content at Visual Studio first run or when you first set your Help Preference to “Use Local Help.”
Installing content during first run is a convenience, not a necessity. You can download and install local Help content from within the Help Viewer at any time.
Online Help is the Visual Studio default as it was in Visual Studio 2010. If you’re doing a clean install of Visual Studio and you want to use the Help Viewer, you’ll need to set your Help Preference to “Use Local Help” From the Visual Studio Help menu.
Table of Contents (TOC) Filter
The TOC Filter displays all topics with titles that contain an input filter string. But instead of displaying the results in a flat list, topics are presented in a sparse tree with their relative relationships intact. This view of the TOC can help you discover topics that are distributed across the TOC and clusters of content that represent in-depth treatment. The filtered view of the TOC can also help developers better understand how our reference content is organized.
For example, if I filter on ‘system.xml’, I can see topics in the .NET framework documentation where I expect to see them. But there’s a cluster of documentation in the Visual Studio debugging content that discusses troubleshooting exceptions. It would have been time-consuming to build this mental model of related content through Search queries alone.
To keep the list compact and manageable, we collapse empty TOC levels with an ellipsis (…). Placing your cursor over an ellipsis reveals the path to a topic or topic group.
If it takes a long time to construct the filter view (as it does in the above example), we display a banner message: “This filter may take a long time. You can change the filter or use search instead.” You can cancel the filter, switch to the search pane or just wait for the filter action to complete.
Keyword Index: “Begins With” vs. “Contains”
The keyword index now functions in either of two modes: “Begins With” or “Contains.” In “Begins With” mode, the keyword index displays items that begin with a given input string. This is the traditional behavior of the index control. When the keyword index is in “Contains” mode, it depicts items that contain the input string. To toggle between modes, click on the filter icon or press Ctrl + K.
Let’s look at how the same ‘sql’ filter string offers a different result list in these two modes:
Docking windows were present in the earlier Developer Preview but they were still a work-in-progress. By supporting this capability, Help Viewer provides greater consistency with the Visual Studio IDE and it addresses a set of scenarios that might otherwise have required additional Viewer Options. (If you’re unfamiliar with Visual Studio docking windows, you may want to learn How To: Arrange and Dock Windows.)
While the possible configurations are nearly endless, some scenarios in which this feature can be helpful:
Example 1: Navigation panel docked on the right side of the content pane. This common configuration was a Viewer Option in Help Viewer 1.1.
Example 2: Navigation panel docked above the content pane. This configuration minimizes horizontal real estate which can be helpful when developing on a single display, for example, a laptop.
Example 3: Search pane docked in content window. This configuration is nice if you want to have more area to display search results.
You can also display topics side-by-side or drag topics outside of the main Help Viewer window. As you’d expect, your docking customizations persist across Help Viewer sessions.
Finally, if you want to restore the Help Viewer to “factory settings,” open the Viewer Options dialog (Ctrl + O) and “Reset Window Layout” by selecting the ‘Reset’ button.
Visual Studio 11 Beta introduces a new visual design and user interface. As a companion app to the IDE, Help Viewer 2.0 Beta provides the same visual design and color themes.
You select your Visual Studio color theme in the Options window of the IDE.
The next time you launch the Help Viewer, it will honor your Visual Studio color theme. Currently there are two theme options: Light and Dark.
|Help Viewer Light Theme||Help Viewer Dark Theme|
NOTE: We’re currently receiving a flood of strong feedback on the user interface changes and it’s likely we’ll make revisions in response to that feedback. Whatever changes are made in the IDE will be reflected in the Help Viewer. If you’d like to weigh in on the new user interface, the best place to be heard is on our Visual Studio UserVoice site or on Visual Studio Connect.
Search Filter UI
We now have UI support for the search filters I described in my post on the Developer Preview. When entering a string into the search box, you’ll see a list of your last three searches followed by filter options. The filter options enable you to discover the available filters and add them to your search query. For example, clicking on ‘title:’ automatically appends it to the search string.
Performance is a key focus of Visual Studio 11 and that extends to the Help Viewer. Help Viewer 2.0 is faster than Help Viewer 1.1 in all of our performance benchmark tests.
Our biggest gains come in moving from an HTTP API to a COM API (with a managed wrapper for .NET programmers). We no longer pay the HTTP network cost before retrieving data. (And you no longer have the Help Library Agent sitting in your taskbar.) Because the Help API is a core component of Windows 8, we had encouragement from our friends in the Windows team to optimize both our performance and memory footprint.
Other improvements include:
- F1 Help – We revised viewer code to reduce UI blocking tasks and to optimize for fast startup by delay- or background-loading of nonessential data with the goal of delivering as fast an F1 response as possible. If you haven’t tried F1 help in a while, I encourage you to give it a look.
- Search Index – Index functions have been parallelized using the .NET Parallel Constructs which speed index functions on multi-core machines. We’ve made a number of non-specific tweaks to fine tune performance including denormalizing data to reduce the number of index lookups per query. Finally, several caches are created at index creation time to improve search times.
- Table of Contents (TOC) – We modified the TOC API code to reduce the number of calls necessary to determine if a TOC topic has children or not. We also cache the results of TOC filter operation to increase the speed of repeatedly used filters. Note that the filter cache is reset on any ‘Manage Content’ operation.
- Content Download – We optimized our use of BITS to improved content download times. In addition, content merge time have been reduced by over 50%.
…and much, much more
We’ve made numerous fit and finish improvements throughout the Help Viewer, for example, in the area of keyboard support. I’ve already blogged about some of the other significant improvements so if you’re interested in the following features, please read my earlier post on new features in the Developer Preview:
- Simpler setup and configuration
- Integrated content management
- Search filters
- New help runtime (no more Help Library Agent!)
Finally, we’ve added improved support for content management in enterprise and behind-the-firewall scenarios. I’ll save the details of those features for a future blog post.
To provide feedback on these new features in Help Viewer 2.0 Beta: