Full separation of interface rendering structure and templating, making re-usable
extensions even easier.
-=back
+=bac
+
+=head1 THE BIG PICTURE
+
+ .=========.
+ | Request |
+ '========='
+ |
+ |
+ v
+ .--------------------. .============================.
+ | Web Application | | Interface Model |
+ | Action Dispatching |<--| Object, Collection, Action |
+ '--------------------' '============================'
+ | ^
+ v |
+ .====================. .-------------------.
+ | ViewPort | | Domain Model |
+ | Plain, Collection, | | Business Logic, |
+ | Object, Action | | Persistence Layer |
+ '====================' '-------------------'
+ |
+ v
+ .====================.
+ | FocusStack |
+ | Contains ViewPorts |
+ '===================='
+ |
+ v
+ .-----------. .===================.
+ | View | | RenderingContext |
+ | HTML, PDF |---->| Template Toolkit |----.
+ '-----------' '===================' |
+ | ^ |
+ v | |
+ .======================. | |
+ | LayoutSet / ViewPort | | |
+ | Layouts: widget, foo | | |
+ '======================' | |
+ | | |
+ v | |
+ .========================. | |
+ | Widget / LayoutSet | | |
+ | Fragments: widget, foo |---------' v
+ '========================' .==========.
+ | Response |
+ '=========='
=head1 APPLICATION
=head1 Page rendering
+=head2 A little overview
+
+ .---------------------------------------.
+ | Controller Action |
+ |---------------------------------------|
+ | Decides which logical part to provide |
+ '---------------------------------------'
+ |
+ v
+ .------------------------------.
+ | ViewPort |
+ |------------------------------|----------.
+ | A logical part of the page | |
+ '------------------------------' |
+ | Inner ViewPorts
+ v Data
+ .-------------------------------------. |
+ | LayoutSet | |
+ |-------------------------------------|------.
+ | A representational part of the page | |
+ '-------------------------------------' |
+ | Looks
+ v Structure
+ .-------------------------------. |
+ | Widget | |
+ |-------------------------------|---------.
+ | A functional part of the page | |
+ '-------------------------------' |
+ Preparation
+ Structure
+ .-------------------------------. |
+ | Output | |
+ |-------------------------------|<--------'
+ | The rendered part of the page |
+ '-------------------------------'
+
=head2 Or, how to track why your page failed to render
Catalyst's C<begin> and C<end> actions are supplied by