The HTDB design philosphy is simple, and conforms to what is known
as the "Model-View-Controller" architecture.
The HTDB library contains a full-featured set of functions
and imposes a certain structure for those desiring to create
web (or stand-alone) applications.
never embed HTML in your compiled program. instead,
store HTML as named resource fragments within resource files.
keep logic embedded in HTML fragments to a minimum so that
your designers do not trip over program logic.
At its most basic, libhtdb provides for many common CGI processing tasks: form
value handling, file upload, and provides for an abstracted database access layer.
libhtdb communicates purely via name/value pairs stored in-memory.
These values are populated, per page, with server environment values,
and any processed GET/POST form values. In addition, programmers
use this store for accessing computational results and HTML snippets.
Using libhtdb, one does not "preprocess" an HTML-looking document. Instead, one
drops everything into memory, and then picks out what is needed
to create a page - typically by filling in a web template of some form.
The act of accessing values from the template causes
values referenced within that object to be evaluated in-place.
HTDB can work with a database underneath, or without.
If a database (currently either msql or mysql) is running,
then libhtdb transparently handles issues of user sessioning,
browser/page/referer tracking and page hits.
All applications written using libhtdb look to
the config.htdb file for runtime-tweakable definitions,
such as the locations of the database and how sessioning and
cryptography is to be handled.
del - Tue Aug 10 11:49:09 PDT 1999