XML::LibXML::SAX::Builder 0.14 review
DownloadBigtop::Docs::Tutorial is a simple case study of building a web app with bigtop. Note on What to Read This document explains how
|
|
Bigtop::Docs::Tutorial is a simple case study of building a web app with bigtop.
Note on What to Read
This document explains how to build an app of moderate complexity by typing in a bigtop file. Since it was written, tentmaker has come along. It is a browser delivered editor for bigtop files, see Bigtop::Docs::TentTut for details.
If you need a simpler example than the one shown here, consider the one table address book example in Gantry::Docs::Tutorial.
Driving Idea
Many (not all) applications are mostly data managers. That is, they are really intermediaries between users and various tables in a database. A bigtop file is meant to be a single place to describe all (or practically all) facits of the data in an application. This includes at least:
The name and special features of each controller.
The name of each table in the database.
A description of each column (field) in each table in the database. This includes at least:
its name and SQL type
the label the user sees for it when it appears on the screen
what type of html form element the user uses to enter or update it
how the data is validated and filtered on its way into and out of the database (filtering not yet supported)
which table the field refers to if it is a foreign key
etc.
All of these things, and more, are described in a Bigtop file. That file can be given to bigtop to build the application. Once it is built, it can be safely rebuilt so that only the generated bits are changed (this is accomplished by maintaining a clean separation between generated and hand edited files, and by config options in the bigtop file).
Notice that nothing in the above has committed you or me to any particular web application framework, data modeling scheme, templating system, or web server. Bigtop is neutral (think big tent), at least for Perl apps delivered via the web.
Requirements:
Perl
XML::LibXML::SAX::Builder 0.14 search tags