Controller concerns deal with routing events between the view and the model, keeping these two in sync, while taking care that the model and its presentation stay decoupled (Model_view_controller). Controller concerns are thus core to the specification of the dynamic behaviour of a UI.

The client-server nature of a web-based UI is a more restrictive execution environment than what is available to a normal GUI application. Hence, controller concerns in web applications typically boil down to deciding how to relay events generated in the browser to the model, and how to generate a web page (presentation) in response. Page-flow-centric approaches (see below) expand the scope of controller concerns in an important way to include the relationship between different pages in a UI.

Here is the taxonomy for strategies for dealing with controller concerns. See ControllerTaxonomyDiscussion for a discussion about the taxonomy.

  1. ControllerTaxonomy

    1. StaticFiles

    2. DynamicContent

      1. MixedConcerns

        1. ExecutableTemplates

        2. PublishedCode

        3. PublishedObjects

      2. SeparatedConcerns

        1. PhasedRequest

        2. EventListenerModels

        3. ActionResponseModels

    3. PageFlowCentric

      1. RuleBased

      2. FiniteStateMachineBased

      3. AlgorithmicApproaches

    4. AjAx

ControllerTaxonomy (last edited 2006-01-23 09:02:13 by IwanVosloo)