The core classes in the desktop object model are depicted here:

The Application is a singleton object that represents the application as a whole and implements IApplicationRoot. All public methods are static.
The application manages a collection of DesktopWindow objects, which represent application main windows on the desktop (ClearCanvas is similar to applications like Firefox in that it supports having multiple main windows that all belong to the same process).
A desktop window maintains a set of Workspace objects in its Workspaces collection. A workspace typically corresponds to a “document”, although a workspace can be used to display any data. Each desktop window therefore acts as an MDI container, and each workspace acts as an MDI document.
A desktop window also maintains a set of Shelf objects in its Shelves collection. A shelf allows for auxiliary user-interface components to be displayed alongside the documents that occupy the workspaces.
A desktop window may also display a modal dialog through the use of a DialogBox object. In contrast to workspaces and shelves, the desktop window does not expose a collection of dialog boxes.
The actual content of workspaces, shelves, and dialog boxes is provided by application components. Each instance of a workspace, shelf or dialog box acts as a host for an application component. Application components are explained in the next section.