In a Nutshell
Lattis uses a configuration file to load all necessary resources into memory.
This file should be created by the framework users and must be called Application.config.
It also needs to be placed at the application's root directory.
Although it's possible to specify other resources in Application.config, the actions
might the most important one.
Actions are described in terms of user defined classes that must
inherit from Lattis.Control.Action or Lattis.Control.LookupAction.
Lattis.Control.Action class provides a method that should be overridden by
the user defined subclasses to determine the desired behaviour. This method must
return an instance of a Lattis.Control.ActionForward, a data structure that
contains the necessary information about the destiny of the request. Usually,
there are more than one Lattis.Control.ActionForward mapped for each requested
Lattis.Control.Action. Lattis.Control.LookupAction works in a similar
way to Lattis.Control.Action (actually, it extends it), however it will use reflection
and a query string key to determine which method of the user defined
subclass should be invoked. The user implemented methods must also return
a Lattis.Control.ActionForward instance. Here's a simple configuration file
example.
<Application-Config>
<Actions-Config>
<Action-Config
Path="ActionDoMyStuff.aspx"
Class="MyApplication.Actions.ActionDoMyStuff"
Assembly="MyApplication">
<Exceptions-Config>
<Exception-Config
Class="System.Exception"
Path="MyExceptionPage.aspx">
</Exception-Config>
</Exceptions-Config>
<Forwards-Config>
<Forward-Config
Name="Success"
Path="SuccessPage.aspx"
Redirect="true">
</Forward-Config>
<Forward-Config
Name="Failure"
Path="FailurePage.aspx">
</Forward-Config>
</Forwards-Config>
</Action-Config>
</Actions-Config>
</Application-Config>
This file describes that when a request identified by the path
ActionDoMyStuff.aspx hits the Web server, the application's FrontController
will delegate - the details about how it happens don't matter at this
moment - it to the user defined class MyApplication.Actions.ActionDoMyStuff.
In this case, this class inherits from Lattis.Control.Action and override it's Execute()
method - this is the method actually called by the framework. Inside the
Execute() method of MyApplication.Actions.ActionDoMyStuff class, the user
shoud write the necessary code to accomplish all business needs, what could be
accessing the application's façades, data access objects, persistence mechanisms
or any other legacy systems or data structures.
After the business job is done,
the Execute() method should return a Lattis.Control.ActionForward instance.
The Lattis.Control.ActionForward options are identified by the Forward-Config
tags in Application.config file and can be located by their names. For instance,
if the Execute() method of MyApplication.Actions.ActionDoMyStuff returns a
Lattis.Control.ActionForward identified by the name Success, the request will
be forwared to page SuccessPage.aspx. Additionally, if a System.Exception is
raised during the execution of method Execute() the request will automatically
be forwarded to page MyExceptionPage.aspx.
|