Overview
DocProject is an open source help authoring tool (HAT) that consists of Visual Studio Project Templates ("documentation" projects), a Visual Studio Add-In and a public API. DocProject provides an open and extensible platform for authoring, managing and building compiled help using Microsoft Sandcastle in Visual Studio 2005, 2008, C# Express, VB.NET Express, on the command-line using MSBuild, on a build server such as Team Build, or in the DocProject External UI program.
Create a new project based on one of the installed Visual Studio project templates, configure it with the New Project Wizard and then build to produce auto-generated reference documentation in various formats. DocProject supports Visual C#, Visual J#, Visual Basic.NET and managed Visual C++ projects as project references. Web Site projects and managed assemblies built outside of the solution, in any language, can be added as external sources.
Author conceptual documentation in Microsoft Assistance Markup Language (MAML) and it will be automatically combined with reference documentation in a single build, using the same presentation style. Drag & drop topic nodes in a tree view to create the table of contents (TOC).
DocProject automates the Help 1.x (.chm) compiler and the Help 2.x (.HxS) compiler to produce compiled help in a single build. You can also extend the build process to include raw HTML topics in the compiled help.
With the Sandcastle build engine you can also choose from various presentation styles, such as one that looks like the documentation for Visual Studio and the .NET Framework.
The following screenshot shows the first 3 steps of the New Project Wizard:
Visual Studio Integration
DocProject integrates seamlessly into Visual Studio and provides many features that will help you to write documentation and configure your projects.
The following screenshot shows DocProject's Topic Explorer, Topic Filters and DocProject Properties tool windows being used to configure an example DocSite in Visual Studio 2005:
For Help Authors
As an author you can use DocProject to write user documentation and produce various output types, such as raw HTML help topics, Help 1.x .chm, Help 2.x .HxS or even an ASP.NET Web Application, called a DocSite, for publishing documentation to the company intranet or the World Wide Web.
The following screenshot shows an example of a DocSite in Internet Explorer 7. The example project uses the BasicBlue theme that comes with DocProject. An auto-generated reference topic built with Sandcastle's Visual Studio 2005 presentation style has been selected in the table of contents (TOC) on the left:
Sandcastle can automatically generate reference documentation for projects within the same solution and external sources. XML documentation comments from your source code are included. You can also use DocProject's Topic Editor to create external comments that will be merged with your code comments during builds.
The following screenshot shows an external summary being edited for an auto-generated reference topic using DocProject's Topic Editor:
For Developers
As a developer you have full control over the entire build process. You can create custom project templates and plug-ins, called Build Engine Providers, which integrate seamlessly into Visual Studio and the external GUI to build help in proprietary formats.
DocProject comes with a plug-in for Sandcastle that you can choose when creating new DocProjects and DocSites. You can even create custom build engine providers that inherit from the Sandcastle provider to add additional features. For example, DocProject has another provider called Sandcastle/Deployment, which extends the base Sandcastle build engine by adding automatic deployment capabilities. It can be used to deploy compiled help and DocSite content to the local computer, the company intranet or an FTP server.
There's also an extensibility feature that works on a per-project basis. It's called a Build Process Component, and each of the built-in project templates provides a basic implementation for you out-of-the-box. A build process component can be edited using the language chosen for the project; e.g., C# or VB.NET. It allows a developer to modify the build process from within the project itself. You can perform external tasks, trace output and even add dynamic build steps in the code editor. Build the project to see your changes take effect immediately.
The following screenshot shows the Build Process Component for an example DocProject in C#. A dynamic build step is inserted into the process in the BuildStarting method:
Application Programming Interface (API)
DocProject's public API provides utilities that you can use while taking advantage of its extensibility features in several different places, such as with custom build engine providers, build process components, Sandcastle build components and dynamic topic filters.
Use the API to help simplify or automate common tasks for users. For example, you can inject custom steps into the New Project Wizard, manage source projects, persist and retrieve project options, engine configuration and various build settings, work with XML documentation and reflection files, create custom menus and tool windows in Visual Studio, and custom toolbars in both VS and the external GUI, run builds, trace output, log runtime exceptions, and more.
Getting Started
First, download the latest release from CodePlex and make sure to read the information on the release page and in the Latest Release Notes before installing DocProject.
Then browse the Wikimap for preliminary documentation and Dave Sexton's blog for supplementary information and previews of upcoming releases.
To provide feedback, please use the facilities of DocProject on CodePlex or contact Dave Sexton through his blog.