Albatross does not impose any particular application structure. Following a standard structure makes a developer's life much easier. The standard application design for applications using a user interface is MVC, model-view-controller, and this is ideal for designing usable and maintainable Albatross applications.

Overview of MVC in Albatross

XXX Draw a little MVC diagram

The three components each have specific roles within the application:

The clear separation of each of these roles within the application helps contain application complexity and improves reuse and reliability. The data store can be changed with minimal impact on the controller, additional states can be added, and the display presented to the user can be tailored (using CSS perhaps) without needing changes to the models or controller.

In practice it's hard to partition these three functions cleanly but it's worth striving for.

Application Directory Structure

XXX should follow MVC paradigm

How to design an Albatross application

Draw a state diagram for the application. Each state will represent a controller class which will manage the transitions.

Design the models required to hold and update the users' interactions with the web site and implement them appropriately.

Layout the pages to be presented to the user and implement them to display the models' information as provided in the session context.

Simple application example

None: Application_design (last edited 2011-02-15 06:05:18 by localhost)