Technical Program
Educators' Symposium
Doctoral Symposium
Student Research

Student Volunteers
Special Events
Housing Information
Registration Information

Thursday 11:00-11:45 – Convention Ctr - Exhibit Hall 4A

13 CATfood - A Code Authoring Tool

Robin Reynolds-Haertle
Microsoft Corporation, robinr@microsoft.com

CATfood (Code Authoring Tool) addresses the problem of testing code examples embedded in
programming language documentation. Our code base is created in a development version of
Visual Studio .NET, which may change daily, and small sections of the code base are published
in Word documents. The challenge is to keep the Word documents synchronized with the code
base while constantly updating the code base to match the development environment. Our
solution to these problems is CATfood, a code-authoring tool that automates checking the code
against the development environment, and checking and updating the sections of code in the
documents. The demonstration will include the development environment tools used to check
the code and select sections of code, the Word tools used to check and update the code in the
Word documents, and the auditing tools.

Architecturally, the CATfood system consists of three user interface modules and a library
module, each of which has an object-oriented design. Beyond the basic use of classes, the
design includes inheritance and the Singleton and Façade patterns. The design is unique in
using the new object-oriented language, C#, and bringing together several different applications
and technologies (the .NET Framework, ASP .NET, Microsoft Word, COM, Microsoft Visual
SourceSafe) into a single solution. Since the initial release of CATfood, we have built several
smaller tools by recombining the library classes, thus demonstrating the flexibility of the
original object-oriented design.