MVC è stato originariamente progettato per risolvere i problemi nelle GUI di architettura. Scollega il processo di estrazione dei dati dal modello per presentarlo dal processo di presentazione. Fondamentalmente è un'applicazione del Principio di Responsabilità Unica alle GUI.
Questo ha una serie di grandi vantaggi: elimina la necessità di avere codice logico dal livello di presentazione e rende i controllori testabili, aumentando così la qualità e l'affidabilità. Le prime GUI Web, come l'ASP classico, contenevano codice logico incorporato in pagine HTML che era difficile da mantenere e ti faceva sentire sporco.
Il Model
è fondamentalmente una scatola nera che rappresenta l'applicazione e i suoi dati e tipicamente sarà un'applicazione a più livelli. Il View
è quello di visualizzare i dati dall'applicazione e in genere passare comandi e dati indietro per aggiornare l'applicazione. Il Controller
media tra Model
e View
, presentando i dati a View
e comandi a Model
.
Quindi Model
è, come dici tu, il dominio o le regole aziendali (o potrebbe essere solo un database), ma l'intera architettura: viste per presentare dati e controller per passare dati e comandi avanti e indietro tra Model and the Views - è molto un framework GUI.