ASP.NET 3.5 Extensions: introduzione ad ASP.NET MVC

3 pagine in totale: [1] 2 3 Avanti >>

Attenzione: questo codice si basa sulla CTP di dicembre 2007 di ASP.NET MVC.

Nelle applicazioni in generale, sia quelle specifiche per il web che per Windows, la parte più difficile da testare è senza dubbio l'interfaccia, ossia il codice che andiamo a scrivere per mostrare a video le informazioni prelevate dai nostri layer di persistenza.

Il pattern Model View Controller, comunemente chiamato MVC, ci permette di separare la logica della nostra interfaccia dal tipo di applicazione che si sta sviluppando, dandoci così la possibilità di effettuare il test del codice, cosa praticamente impossibile senza questa separazione netta tra gli ambiti. E ci consente, tra le altre cose, di lavorare in TDD (Test Driven Development).

Quasi tutte le tecnologie hanno a disposizione almeno un toolkit per agevolare lo sviluppatore ad utilizzare questo pattern e Microsoft ha recentemente annunciato, tramite il suo General Manager Scott Guthrie, che verrà rilasciato un pacchetto per l'implementazione del pattern MVC all'interno delle ASP.NET 3.5 Extension, previste per l'anno prossimo in versione finale e rilasciate in questi giorni in versione CTP, su cui si basa questo articolo.

Guardando alle alternative, senza la necessità di aspettare l'uscita di questa extension, un framework di terze parti molto diffuso è senza dubbio Monorail di CastleProject, a cui si può dare un'occhiata se si necessita di un prodotto già disponibile su cui basare le proprie applicazioni.

Le componenti di MVC

Andiamo ad analizzare i singoli ruoli di questo pattern, così da capire meglio come agisce e cambia il modo di sviluppare il nostro Presentation Layer.

Il diagramma che segue fa capire che ciò che implementiamo nella nostra interfaccia viene in realtà scomposto in tre layer ben distinti per comportamento e contenuto:

  • il Model avrà il compito di contenere i dati da visualizzare e i metodi che ne permettono l'accesso al nostro engine di persistenza dati;
  • il View avrà il compito di visualizzare i dati da mostrare nella nostra User Interface;
  • il Controller è il vero cuore, si occupa delle iterazioni con l'utente invocando i metodi prensenti nel Model e cambiano l'output della nostra interfaccia tramite il View.

Figura 1

Con una separazione del genere si può intuire che il View sarà "quasi" privo di codice server-side, dando la possibilità ad un grafico non esperto di ASP.NET di creare l'interfaccia web un po' come avviene con Classic ASP o tecnologie simili. E ad un tool di testare in maniera automatica tutto il codice, perchè di fatto non c'è commistione tra le varie parti in cui può essere scomposta l'interfaccia utente.

Perchè un Framework?

Molti si potrebbero chiedere quale bisogno ci sia di implementare un Framework per utilizzare un pattern: la risposta nasce da una serie di funzionalità che facilitano non di poco il lavoro di uno sviluppatore web, come lo stesso motore di Url Rewrite (che andremo a vedere successivamente), con una serie di classi presenti all'interno del namespace System.Web.Mvc, che mettono a disposizione numerose funzionalità che altrimenti andrebbero create manualmente.

Proprio per via di questa complessità intrinseca, il modo di approcciare le applicazioni basate su questo pattern è diametralmente opposta alla filosofia che sta dietro le Web Form di ASP.NET come le conosciamo oggi, con un insieme di funzionalità che non sono disponibili ed un nuovo modo di pensare e creare le singole pagine.

Generalmente, utilizzando il modello offerto dalle WebForm, siamo abituati a demandare gran parte delle funzionalità ai controlli, in certi casi perdendo il controllo sull'HTML prodotto, sfruttando PostBack e ViewState per molte funzionalità di base. Viceversa, il modello offerto da MVC ci consente un controllo nettamente maggiore su quello che deve essere generato, con però il prezzo da pagare della mancanza di PostBack e ViewState, il non funzionamento di alcune caratteristiche come, al momento, ASP.NET AJAX o controlli di terze parti.

3 pagine in totale: [1] 2 3 Avanti >>

Contenuti dell'articolo

Commenti
Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

Per procedere al rating dell'articolo devi essere autenticato.

TUTORIALS
TOP TEN ARTICOLI
NOTIFICHE

Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

Indirizzo e-mail:
PROVIDER ASP.NET 2.0

Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



IN EVIDENZA
MISC