Note that there are some explanatory texts on larger screens.

plurals
  1. POWhat kind of web MVC pattern is this?
    text
    copied!<p>I was wondering what kind of MVC pattern the illustration below is. We are developing a web application according to this pattern using ColdFusion and it goes pretty well so far. But is it even some kind of MVC at all?</p> <p><img src="https://i.stack.imgur.com/fBh6P.png" /></p> <p>A frontend page usually consists of:<br> - including the corresponding gateways (each model component has its own gateway with dedicated functionality)<br> - using the provided GATEWAY struct (contains components, arrays, structs etc. representing the desired data) to render output<br> - simple flow control (if/else/loops) to iterate through the provided data or distinguish view states<br> - if required: build forms (POST to same page) and name their field names according to GATEWAY specifications</p> <p>The GATEWAY file (always separated from frontend page) validates the request (usually POST data) and takes care of the data retrieval (i.e. selects/inserts/updates on database). Usually the GATEWAY requests data regardless of actions (evaluation of runetime data like SESSION). All operations are fail-safe, so either there is data in the resulting struct or the data is empty. Either way, two arrays (success, errors) in the struct provide a log of all performed actions during the processing to react accordingly on the frontend page. Most data is provided as components (objects), but all in all it is not a fully object-orientied approach. The only thing they have in common is: they all describe input parameters (GET, POST, Session, Cookie) and outgoing parameters, like a (RESTful) web service.</p> <p>I came up with a lot of ideas about the used pattern, but I wasn't able to match it in all regards yet.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload