Portable documentation and help system for custom Windows applications.
Develop a fully-managed documentation and help system to supersede .CHM.
- The Help! project will be written in C# using Visual Studio (preferably 2008 for release and 2005 for the Prototype).
Baseline Functional Specification
- The system must be easy-to-use, lightweight and portable.
- Stand-alone, compressed binary format that contains:
- all HTML topics and resources.
- XML-based TOC and index data.
- full-text search data.
- optionally, web service information for downloading live HTML content from various end-points.
- 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).
- Develop a public UserControl for presentation:
- Point it to a binary resource file on disc or on a website.
- TOC, index and full-text search tabs.
- Content area for viewing topics.
- Easily customizable, with the ability to add new tabs for additional HTML content.
- Develop a stand-alone WinForms application that integrates the UserControl with the binary data file as an embedded resource.
- Support X-copy deployment. There should be no prerequesites on an end-user's system other than the .NET Framework.
- Visual Studio project template for building a customized instance of the WinForms application for deployment.
- Console and GUI for building the binary resource file, stand-alone.
- Expose a public API with the following functions:
- Request raw HTML topics by title and collections of topics by keywords.
- Add/remove/replace HTML topics that are persisted in the binary resource file.
- Invoke a context-sensitive help dialog, tool window or tooltip for a specific topic, keyword or full-text query.
- Develop an "extender" component that adds properties to controls for context-sensitive help information and displays a tooltip using the API.
- Full support for Unicode data.
- 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.