Portable documentation and help system for custom Windows applications.


Develop a fully-managed documentation and help system to supersede .CHM.


  1. The Help! project will be written in C# using Visual Studio (preferably 2008 for release and 2005 for the Prototype).

Baseline Functional Specification

  1. The system must be easy-to-use, lightweight and portable.
  2. Stand-alone, compressed binary format that contains:
    1. all HTML topics and resources.
    2. XML-based TOC and index data.
    3. full-text search data.
    4. optionally, web service information for downloading live HTML content from various end-points.
    5. mixed content; e.g., the default topic's content comes from a web service and the remaining content exists in the file itself. (Think VS Start page).
  3. Develop a public UserControl for presentation:
    1. Point it to a binary resource file on disc or on a website.
    2. TOC, index and full-text search tabs.
    3. Content area for viewing topics.
    4. Easily customizable, with the ability to add new tabs for additional HTML content.
  4. Develop a stand-alone WinForms application that integrates the UserControl with the binary data file as an embedded resource.
    1. Support X-copy deployment. There should be no prerequesites on an end-user's system other than the .NET Framework.
  5. Visual Studio project template for building a customized instance of the WinForms application for deployment.
  6. Console and GUI for building the binary resource file, stand-alone.
  7. Expose a public API with the following functions:
    1. Request raw HTML topics by title and collections of topics by keywords.
    2. Add/remove/replace HTML topics that are persisted in the binary resource file.
    3. Invoke a context-sensitive help dialog, tool window or tooltip for a specific topic, keyword or full-text query.
  8. Develop an "extender" component that adds properties to controls for context-sensitive help information and displays a tooltip using the API.
  9. Full support for Unicode data.
  10. CAS security and optional encryption.


Envisioned having a single assembly in the GAC that exposes (publicly) the User Control, the Form (for invoking help dialogs without requiring the WinForms .exe), and the API.


Usage Scenarios

Last edited Oct 8, 2007 at 10:16 AM by davedev, version 15