Woof! provides several facilities that streamline the development of Web applications.
The console server
One of the biggest advantages of scripting languages like Tcl is
that they provide interactive programming capabilities that greatly
reduce the development cycles. Woof! includes a Tcl command line
environment that emulates a web server and allows issuing commands
corresponding to HTTP requests such as
POST. Requests can be issued and responses examined
interactively. Any procedure or method can be invoked and debugged on
the fly. These facilities are implemented in
the console server.
Woof! application code is generally very stylized with boilerplate
code. In order to reduce repetitive typing, Woof! provides a means for
scaffolding - automatic generation of the controller and view
template boilerplate text corresponding to URL's through
Some Woof! behaviours depend on whether the system is running in a
production environment or development. For example, the amount of
error detail shown in a HTTP response in a production environment
should be controlled for security reasons. Similarly, when doing
development, caching of scripts for performance reasons should be
disabled so that any script modifications are immediately picked
up. Although these behaviours can be individually controlled, a single
run_mode - sets up sensible defaults depending
on its value,
production. Woof! is
distributed with the value set to
development. To switch
to production mode add the following line:
set run_mode production
to your application.cfg configuration file.
Woof! includes Ruff!, a documentation generation system, and ruffian, a script specific to Woof! for generating program reference documentation from comments. The Woof! documentation is itself generated using this system and can optionally include application program documentation as well.
The BowWow development server
To facilitate development without having having to install a heavy-weight Web server, Woof! includes a basic Web server - BowWow - that can be used to develop applications which can be re-deployed with no changes, to run under production Web servers like Apache.