Qual è il Model-View-Controller o MVC?

  Model-View-Controller
  Struttura del pattern MVC.

Il Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllo), in informatica, è un pattern architetturale molto diffuso nello sviluppo di sistemi software, in particolare nell'ambito della programmazione orientata agli oggetti, in grado di separare la logica di presentazione dei dati dalla logica di business.

Questo pattern si posiziona nel livello di presentazione in una Architettura multi-tier.

Utilizzo

Storicamente il pattern MVC è stato implementato lato server. Recentemente, con lo sviluppo e la parziale standardizzazione di JavaScript sono nate le prime implementazioni lato client.

Lato server

Originariamente impiegato dal linguaggio Smalltalk, il pattern è stato esplicitamente o implicitamente sposato da numerose tecnologie moderne, come framework basati su PHP (Symfony, Laravel, Zend Framework, CakePHP, Yii framework, CodeIgniter), su Ruby (Ruby on Rails), su Python (Django, TurboGears, Pylons, Web2py, Zope), su Java (Swing, JSF e Struts), su Objective C o su .NET.

A causa della crescente diffusione di tecnologie basate su MVC nel contesto di framework o piattaforma middleware per applicazioni Web, l'espressione framework MVC o sistema MVC sta entrando nell'uso anche per indicare specificamente questa categoria di sistemi (che comprende per esempio Ruby on Rails, Struts, Spring, Tapestry e Catalyst).

Lato client

Negli ultimi anni è aumentata la richiesta di Rich Internet application che facciano chiamate asincrone al server (AJAX), senza fare redirect per visualizzare i risultati delle elaborazioni. Col crescere del codice JavaScript che veniva eseguito sul client, si è sentita l'esigenza di creare i primi framework che implementino MVC in puro JavaScript. Uno dei primi è stato Backbone.js, seguito da una serie interminabile di altri framework, tra cui JavascriptMVC, Ember ed AngularJS.

Struttura

  Model View Controller
  Tipica interazione tra componenti del pattern MVC.

Il pattern è basato sulla separazione dei compiti fra i componenti software che interpretano tre ruoli principali:

  • il model fornisce i metodi per accedere ai dati utili all'applicazione;
  • il view visualizza i dati contenuti nel model e si occupa dell'interazione con utenti e agenti;
  • il controller riceve i comandi dell'utente (in genere attraverso il view) e li attua modificando lo stato degli altri due componenti.

Questo schema, fra l'altro, implica anche la tradizionale separazione fra la logica applicativa (in questo contesto spesso chiamata "logica di business"), a carico del controller e del model, e l'interfaccia utente a carico del view.

I dettagli delle interazioni fra questi tre oggetti software dipendono molto dalle tecnologie usate (linguaggio di programmazione, eventuali librerie, middleware e via dicendo) e dal tipo di applicazione (per esempio se si tratta di un'applicazione web, o di un'applicazione desktop). Quasi sempre la relazione fra view e model è descrivibile anche come istanza del pattern Observer. A volte, quando è necessario cambiare il comportamento standard dell'applicazione a seconda delle circostanze, il controller implementa anche il pattern Strategy.

RITORNO

  • 1 Utenti hanno trovato utile questa risposta
Hai trovato utile questa risposta?

Articoli Correlati

Che cosa è un dominio Internet?

A domain name is an identification string that defines a realm of administrative autonomy,...

Che cosa è un social media?

Social media, in italiano media sociali , è un termine generico che indica tecnologie e...

Che cos'è il DNS?

Il sistema dei nomi di dominio (in inglese: Domain Name System, DNS), è un sistema utilizzato...

Qual è la nuvola informatica?

Con il termine inglese cloud computing (in italiano nuvola informatica) si indica un paradigma...

Qual è il protocollo Internet IPv6?

IPv6 è la versione dell'Internet Protocol designata come successore dell'IPv4. Tale protocollo...

Powered by WHMCompleteSolution