Writing a Dashboard Backend

Introduction

  Dashboard backends are pieces of code that take information from
applications (clues), and return information that is either displayed directly
within Dashboard (matches) or used to obtain more detailed information (more
matches).

   Dashboard provides an infrastructure to allow you to write your own
backends quickly and easily.  The rest of this document covers the specifics
of backends and how to create them.

Simple

   A simple backend takes each clue as a separate entity and attempts to
provide one or more matches as a result.  This is the most common method used
in writing a backend, as more often than not the information held in separate
clues is not of interest to the backend in combination.

   An example of a simple backend might be one that searches through a user's
bookmarks for any references to a piece of text.  Each separate piece of text
(i.e. each clue) is unrelated to all other pieces of text provided, so the
simple approach is appropriate for this backend.

   Simple backends are called with the following method:

   ArrayList ProcessClueSimple(Clue);

   The ArrayList returned is an array of Match objects, where each match is
an item to display.

Advanced


   An advanced backend obtains more detailed information about the clues
passed in, including their grouping (clues are grouped together into a single
entity knows as a cluepacket) and the clues that spawned them (if any).  This
allows for returning more sophisticated matches, and often extra clues.

Clue chaining

   Clue chaining is the act of using the clues given to a backend to provide
further clues.

   Some examples of clue chaining are a backend that picks email addresses
out of a block of HTML information and returns those email addresses as new
clues, or a backend that looks up an email address in an addressbook and
returns information such as full name, IM handles, etc.  It can be seen from
these simple examples that clue chaining allows
