Tomorrow, February 10th, we’ll be releasing the Visual Studio 2010 Release Candidate to the public.  If you didn’t have a chance to evaluate Beta 2, we’re shipping a new Help Viewer with Visual Studio.  The new Help Viewer has tight integration with MSDN online providing a product-to-MSDN experience for Search, F1 queries, and on-demand help content updates.


Since Beta 2, we’ve received a lot of feedback from our customers and partners.  I want to thank everyone for logging Connect bugs, completing the Beta2 survey, or providing feedback through the forums or other channels.  We are listening and we’re addressing as much of your feedback as possible before RTM.


The rest of this post will focus on the improvements we’ve delivered in the RC release and those that are in-flight for RTM.  For the RC release, we’ve focused our efforts in the following areas:


·         Keyword Index

·         Help Library Agent

·         Help Library Manager

·         Support for third-party help content

·         F1 Help quality


Keyword Index (and the ms-xhelp API)

The lack of a Keyword Index has clearly been the leading piece of feedback, and we’ve heard that loud and clear.  Our plan to deliver Index functionality has three components:  1) deliver API support for the Index in the RC release, 2) deliver a Keyword Index Power Tool thirty days after Visual Studio 2010 RTM (RTM+30), and 3) target the incorporation of an Index into the Help Viewer in SP1. 


For the RC release, the team worked to ensure that the Help API would support the functional and performance needs of an Index.  More broadly, the Help API enables full access to all Help data in the system.  The feedback we’ve received on the API so far has been positive and we’re already seeing the community begin to leverage it in standalone applications.  We’ll be publishing another blog post in the near future with a full walkthrough of the entire API.  Note that work on the API, especially performance, will continue through RTM.


Help Library Manager

We received a number of requests to lock down the directory where Help Library Manager installs content and we’ve now ACL’ed that directory to restrict permission to update content to members of the HelpLibraryUpdaters security group.  This group is created during setup, and by default, it includes the administrators group and the user account that created the local store.  To enable support for multiple users (non-admins) to update content on the machine, an administrator must add the additional accounts to the HelpLibraryUpdaters security group.  As a further security check, Help Library Manager will also check the digital signature used to sign cabinet files that contain content to be installed locally. When installing content interactively, you can view the certificate of signed MSHCs and approve or reject the content.


In addition, Help Library manager now supports /uninstall and /? command line parameters.


Help Library Agent

The two biggest changes in the Help Library Agent were changing the name (from Help Listener), and changing the default port from 80 to 47873 to reduce the possibility of port conflicts with non HTTP.SYS applications/web servers that require exclusive access to port 80.  Although we did provide a mechanism in Beta 2 for changing the port in the event of a collision, it was not the best out of box experience for most end-users.


Some other changes to the Help Library Agent include:

·         Tray Application (notification area icon): We’ve fixed some accessibility bugs in the tray application.

·         Content Update: The Help Library Agent is automatically restarted every time content is modified by the Help Library Manager application. This prevents potential crashes due to the help content cache being out of synch with the local content store.

·         Crashes: Fixed the following Help Library Agent issues:

o   When there was a port conflict on port 80.

o   When processing an ms-xhelp URL that did not contain any query strings.

o   When processing an ms-xhelp search query URL when no offline content was installed.

·         Assembly version numbers for the Help Viewer have changed from 3.0 to 1.0 as part of the renaming of the product from Help3 to Microsoft Help Viewer.

·         The default setting for help will be Online for RTM.


Partner Support

From Beta 2 to RC we’ve devoted a significant amount of time and effort to ensure that our partner support story is strong.  We’ve addressed bugs in a number of key areas related to content branding:


·         Full support for custom CSS & JS

·         Support for links to external domains

·         Ensuring that all inline script and attributes are honored

·         Fix up of ms-xhelp:/// links in partner content

·         Correct handling of <!DOCTYPE /> elements


We’ve also worked closely with several vendors to ensure that both tool support and conversion scenarios are in place.  Innovasys and ComponentOne will be shipping updated versions of their Help Authoring solutions to support the new MSHC format.  Additionally, one of our Help MVPs has worked very hard to produce a strong conversion tool that will convert both from HTML Help 1.x and MS Help 2.x formats to MSHC.  Paul O’Rear has written a blog post that outlines the tools available for integrating third party content into VS2010.


Finally, we’ve included the Help System in the Visual Studio 2010 Shell (Isolated) and done loads of work to make enabling Help as simple as a configuration change.  A quick overview of Help in the Isolated Shell can be found here.


F1 Help Quality

During the past five weeks, the Visual Studio team has been engaged in a broad effort to improve the quality of F1 Help results.  During this time, approximately 300 F1 bugs were found and addressed.  Some of the resulting improvements include:

·         Correctly resolving WPF vs. Silverlight topics

·         Addressing version confusion between .NET 3.5 and .NET 4.0 topics (across different editors)

·         Enabling multi-targeting for .NET Framework versions < 3.5 (online only)

·         Resolving indeterminate topic results between class topics and member topics across the entire managed reference space


Work underway for RTM

Moving beyond the RC release, there are a number of issues we’re working on for RTM.  The short list includes:




Modify the F1 algorithm to scope by your current coding language


Make the left pane of the Viewer resizable

Testing a 3-state resize solution

Horizontal scrollbar at bottom of right pane obscures test


F1 queries that result in ‘no topic found’ should perform a topic search on the user’s behalf and display the simple search results


Retitle the “Find Content On Disk” dialog to something else (during initial setup)


Re-use tab on multiple F1 calls for IE and Firefox only

Investigating solutions that don’t require changes to global settings


One area, in particular, that is receiving our attention is the presentation of search results.  For example, in Beta 2, a search on “string class” might return the following results (first 3 shown):

          Search Results (before)

This, of course, is not very helpful.  At RTM, improvements to how we package help content will improve both relevance and presentation.  For example, the same query at RTM might yield (first 3 shown):

          Search Results (after) 


Beyond RTM, we now have the ability to improve offline (local) search relevance by adding hints harvested online and delivered via offline updates.


That wraps our overview of the RC release and our preview of work underway for RTM.  Thanks for your patience while we work to address your concerns.  And keep that feedback coming!