Al livello del controllo delle applicazioni, i framework si dividono in due classi. Mentre i framework basati sulle azioni (action-based) riproducono lo schema Request-Response tipico del protocollo HTTP, ci si discosta da questo procedimento nei framework basati sui componenti (component-based).
I framework basati sulle azioni: nei framework basati sulle azioni, il Controller serve come istanza centrale, che accetta le richieste del client, le convalida e richiama l’azione corrispondente. Per ogni possibile azione deve essere creato dallo sviluppatore app preventivamente un oggetto, che comprende la corrispettiva logica di applicazione, derivabile solitamente dalle classi astratte. Se l’azione viene portata a termine, il Controller aggiorna il Model e inoltra il risultato al View, che a sua volta crea la risposta e la rinvia al client.
I framework basati su azioni fanno affidamento sul modello MVC e, per via della stretta applicazione dello schema Request-Response, vengono denominati anche request-based. Dei tipici esempi per questo tipo di framework sono:
Visto che le possibili azioni di un framework basato sulle azioni vengono definite dettagliatamente dallo sviluppatore app, si parla di un approccio White Box, che dà agli sviluppatori maggiori libertà. È richiesta però una comprensione più profonda del framework in uso, dato che gli sviluppatori sono responsabili per la creazione di pagine HTML, CSS e JavaScript.
I framework basati sui componenti: a differenza dell’approccio controllato tramite azioni, i framework controllati dai componenti si discostano dallo schema Request-Response del protocollo HTTP, dove l’interfaccia utente di un’applicazione web viene considerata come una collezione di componenti. Per ognuno di questi componenti, che sono collegati con oggetti lato server, vengono definite precise reazioni durante lo sviluppo delle applicazioni web, che si susseguono ad eventi, causati da un’interazione utente con il componente. Si parla perciò anche di framework controllati da eventi. Dei tipici esponenti di questo tipo di framework sono:
L’idea di base dietro ad un approccio basato sui componenti è quella di raggruppare le azioni correlate. Un componente AccountController rappresenta ad esempio azioni come login, logout o getAccount. Un oggetto può così essere responsabile per molte più azioni. I framework basati sui componenti offrono solitamente una grande scelta di componenti riutilizzabili, che nascondono agli sviluppatori di app i dettagli dello schema Request-Response alla base. Si parla in questo contesto di un modello Black Box. I framework di questo tipo sono quindi particolarmente utili per gli sviluppatori che vogliono appoggiarsi prima di tutto a componenti predefiniti. Chi vorrebbe avere maggiori libertà per quanto riguarda il protocollo HTTP e i linguaggi HTML, CSS e JavaScript, farà meglio ad indirizzarsi su un framework basato sulle azioni.