The Monolith web application framework
Monolith is a unique approach to creating web applications in Perl. It provides an interface which is much closer to that of a traditional GUI toolkit such as GTK, Qt or Swing. As programmers familiar with these toolkits will expect, the core of the system is a collection of reusable widgets. This infrastructure only became feasible with the development of clever application state checkpointing code.
This uses the standard Data::Dumper module to save the entire application state to disk or a database. A cookie is then set, so when the user next requests a page in the application it can tell which checkpoint to restore.
The core Monolith distribution contains a fairly generic collection of widgets. I've written a number of add on modules which many people will find useful when writing real world applications.
CGI::Appi::Util
Since Data::Dumper has no way of saving the state of file handles those unfamiliar with Monolit will encounter some, apparently bizarre, problems when using DBI. This library provides a slightly higher level wrapper which avoids many of these problems and also provides persistent connections when combined with mod_perl. This database module is integrated with advanced error handling. The entire execution of the application is placed within a database transaction. Upon error this can be rolled back thus ensuring data integrity. At the same time a (reasonably) friendly error message is presented to the user, a summary of application state together with the error message is sent to the error logs, and the entire application state is dumped to disk (kind of like a higher level core dump).
Download
- CGI-Appi-Util-0.1.0.tar.gz The first public release of the CGI::Appi::Util modules.
CGI::Appi::Auth
After database integration, the next most common requirement for web development is user authentication. This module is provides a simpler database backed system whose features include password authentication, user profiles and group management. And of course at set of widgets for manipulating this database is also included.
Download
- CGI-Appi-Auth-0.1.0.tar.gz The first public release of the CGI::Appi::Auth modules.