Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Introduzione a MVC

L'evoluzione del pattern MVC, il model 2 e il ciclo di vita di una richiesta per ASP.NET MVC
L'evoluzione del pattern MVC, il model 2 e il ciclo di vita di una richiesta per ASP.NET MVC
Link copiato negli appunti

Dopo anni investiti a studiare e implementare applicazioni Web con Asp.Net WebForms, Microsoft decide di introdurre un nuovo framework da "affiancare" a quello esistente per lo sviluppo di applicazioni Web. La domanda è: perché? Qual è la ragione che ha spinto Redmond a mettere in campo due framework con gli stessi scopi? Le risposte possono essere davvero tante ma la questione secondo me continua a risolversi quando ci ricordiamo che nello sviluppo software è "sempre" una questione di requisiti.

Per poter scegliere è necessario conoscere e lo scopo di questa guida è proprio quello di mostrare come funziona Asp.Net MVC in modo da utilizzarlo quando effettivamente da un valore aggiunto, capire quali requisiti aiuta a soddisfare e qual è l'impatto del suo utilizzo sui vari aspetti del progetto, dai tempi di sviluppo alla manutenibilità di quanto realizzato, bilanciando pregi e difetti per raggiungere quello che alla fine è lo scopo dello sviluppo software: soddisfare i requisiti utente.

MVC, acronimo di Model-View-Controller, è un pattern architetturale pensato per lo sviluppo della User Interface. Storicamente introdotto nel '79 in Smalltalk, ma diventato famoso probabilmente per la sua implementazione Java con il framework Struts, permette lo sviluppo di client, restituendo al presentation layer il compito per il quale è concepito: l'interazione con l'utente.

La formulazione originale in realtà poco si adatta allo sviluppo di interfacce Web dato che divide l'applicazione in 3 componenti, appunto Model, View e Controller che interagiscono secondo questo schema:

Figura 1. Formulazione originale di MVC
Formulazione originale di MVC

L'utente seleziona l'azione desiderata interagendo con la View, la quale chiede al controller di farsi carico della richiesta e selezionare la parte del model che può soddisfarla. Sarà il Model a questo punto, finita l'elaborazione richiesta, a notificare alla View l'aggiornamento del proprio stato dandole così la possibilità di interrogarlo per recuperare i dati richiesti.

Nella formulazione adattata per il Web (Figura 2), che va sotto il nome di Model 2, View e Model vengono opportunamente orchestrati dal Controller, il quale è responsabile dell'invocazione della parte di Model implicata nella richiesta: in base al risultato dell'elaborazione sarà proprio il Controller a selezionare la successiva View da restituire.

Figura 2. Model 2
Model 2

Asp.Net MVC basa il suo funzionamento proprio su questo meccanismo, affidandosi al motore di Routing introdotto con il framework 3.5, per capire chi siano il Controller, la Action e la View implicate in una determinata richiesta (Figura 3).

Figura 3. Flusso di gestione di una richiesta da parte di Asp.Net MVC
Flusso di gestione di una richiesta da parte di Asp.Net MVC

Supponendo ad esempio di selezionare da un elenco di news di un portale una determinata news per visualizzarne il dettaglio, la richiesta fatta al server che ospita l'applicazione sarà del tipo:

http://www.miaapplicazione.it/News/Show/10

che verrà interpretato dal framework MVC come l'invocazione del metodo Show della classe denominata NewsController passando come parametro il valore 10. Il risultato dell'elaborazione comporterà di default la visualizzazione della pagina Show.aspx

Figura 4. Esempio di gestione del flusso di una richiesta al framework MVC
Esempio di gestione del flusso di una richiesta al framework MVC

Il meccanismo è perfettamente in linea con il paradigma di Convention over Configuration, il che semplifica molto la scrittura di applicazioni con questo framework. Inoltre, aiutandoci con un po' di "best practices" che vedremo nelle prossime lezioni possiamo migliorare sensibilmente la produttività e la manutenibilità di applicazioni sviluppate con questa tecnologia.

Ti consigliamo anche