Web Oriented Object Framework

User Guide (Version 0.5b4)

User Guide (Version 0.5b4)

Development aids

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 GET and 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.

Application generator

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 the wag stubs command.

Run modes

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 setting - run_mode - sets up sensible defaults depending on its value, either development or 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.

Documentation generation

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.