MVC o Model – View – Controller è una soluzione progettuale molto diffusa (un pattern architetturale molto diffuso) nello sviluppo di applicazioni object-oriented.
Al di là dei termini abbastanza incomprensibili per chi non è un tecnico del settore il concetto è che vengono divisi i compiti tra i diversi componenti dell’Applicazione come potete vedere nella figura sottostante…
Quindi un Utente attraverso un URL, cliccando su un link o inserendo dei dati in una pagina fa partire una classica richiesta (HTTP Request) ad un’azione specifica che viene gestita dal Controller (in Italiano Controllore – è un pò il centralinista dell’Applicazione),…
…il quale appunto controlla se il Model (in Italiano Modello – si occupa esclusivamente della comunicazione con il DataBase) ha dei dati nel DataBase che fanno riferimento alla richiesta dell’Utente e lo comunica nuovamente al Controller,…
…a questo punto la View (in Italiano Vista – la parte grafica che vedono gli Utenti) s’incarica di visualizzare i dati forniti dal Controller ed elaborati appunto da un opportuno Model,…
…quindi la View non è altro che un Template (grafica, testo, css, ecc…) che visualizza i dati inviati dal Controller ed elaborati dal Model, e comunica nuovamente al Controller quale template grafico usare per la visualizzazione finale,…
…infine il Controller risponde (HTTP response) all’iniziale richiesta dell’Utente fornendo gli esatti dati e veste grafica per per la richiesta iniziale dell’Utente.
Naturalmente il discorso è stato semplificato al massimo perchè questo articolo non è indirizzato a Sviluppatori Esperti ma ad Utenti che vogliono comprendere il vantaggio di un’Applicazione realizzata con questo approccio di sviluppo.
Ma alla fine quali sono i Vantaggi dell’ MVC?
- Si seguono degli standard di programmazione internazionali che consentono ad altri sviluppatori di comprendere facilmente il codice e al Cliente di poter cambiare agenzia in qualsiasi momento.
- Modifiche più rapide perchè posso cambiare facilmente una particolare richiesta al DataBase agendo solo sul Model appropriato, o posso cambiare la Grafica di una sezione agendo solamente sulla View.
- Possibilità di sviluppare un’applicazione Modulare.
- Software più flessibile, manutenibile, aggiornabile nel tempo.
- Costi di sviluppo Ridotti, grazie alla separazione dei compiti e alla possibilità di operare su un singolo componente indipendente.