Cartella is based on the ASP.NET MVC system. This makes it possible to separate model-view-controller into individual modules. Each module may be customized without compromising the core system or requiring recompilation of the code.

A gallery page is used as an example. The URL to this page is “/Folio/20966/Module/Galleries/Item/21008”. The page is assembled using a master page and a collection of partial-view pages.

Overview

The URL request (to display the page) goes first to the “FolioItemController” where it is assigned to the Action method as “Index”. This method passes the resulting data into the view code. The view module is not involved in data retrieval.

The assembled package is collected as “ViewData”. It contains a strongly typed object “SingleItemFolioModuleWrapper” as the main holder of information.

ViewData is sent to the View Layer, starting with the designated view “FolioModule/Index”. This view entry point brings in the master page and all the necessary Partial views. It constructs the presentation and returns it to the browser as an HTTP response.

The Controller code is embedded in the DLLs; ViewData is decided by the controller. Only the View Layer may be customized.