may find it repetitive, but others might have interesting comments.
I have been attempting to figure out the best way to present the ACS
to Joe Debian-User, who wants to install the software and create his
site, but also wants the bugfixes and upgrades that will come along.
I was crestfallen to discover how the ACS is constructed with very
little separation between data and presentation. I.e., there
doesn't seem to be an easy way to swap out the mechanisms of the
site (say the pieces that handle user validation, message posting,
etc.) without hand-editing your original files. To do so is likely
to result in loss of any customization you may have done.
This (obviously) makes it very hard (if not impossible) to automate
an upgrade. This is especially true where changes in the data
model are required.
I submit that by-and-large this does not have to be the case. It
seems that the data models, presentation layers, and functionality
could all be provided through a system of separate file/directory
structures. More regular use of cascading style sheets could help
lessen the burden of customizing a site (in terms of its
presentation), and help keep it uniform when changes are made.
I really see two abstractions that could be made to help this. We
could (1) auto-generate the hierarchy based on a set of user-editable
templates to produce the presentation layer, and plug-in the Tcl code
into that template. And (2) separate the data modelling from the Tcl
interface as much as possible. That way different RDBM's could be
swapped with less impact on the site itself.
I'm sure others of you have far more insight into this than I do
(based on my limited experience). I'd like to see what you think.