Progettazione applicazioni web con MVC

Questo è il primo di una serie di articoli che attraverso esempi pratici alternati a considerazioni dettate dall’esperienza di chi scrive, ha lo scopo di spiegare l’utilizzo nel mondo reale di questo potente pattern. L’idea alla base: Progettazione applicazioni web con MVC e jquery nel “mondo reale”..

Perché utilizzare MVC (Model View Controller) per la programmazione di applicazioni web.
Lo confesso. A me che vengo dal mondo ASP dove con anni di esperienza ho creato insieme a validi collaboratori applicazioni versatili e potenti, alcune delle quali ancora oggi normalmente in produzione, le pagine ASPX non sono mai piaciute. Le ho utilizzate anche in progetti interessanti e complessi (che però nascevano contestualmente e quindi avevano una data base adeguato –  vedi progetto europeo MOMAR) ma non le ho mai considerate le vere eredi delle ASP.
Chiaramente ASP non era più la soluzione, il PHP è, nella sua completa sovrapponibilità all’ASP assai più interessante dell’ASP: molte funzioni native, molti esempi facilmente reperibili in rete etc. etc.
Nel cercare di dare l’idea di uno sviluppo equivalente alle applicazioni desktop, Microsoft ha introdotto le pagine ASPX, ricche di controlli lato server, il cui scopo è limitare il codice scritto di chi sviluppa. Purtroppo così il layout risultante, se non si vogliono creare controlli ad hoc, è poco convincente e soprattutto non si divide chiaramente quello che avviene nel server da quello che avviene nel browser ( Ok, vero che c’è il code behind e la vista ma non è proprio la stessa cosa…).
Con MVC è finalmente tornato in auge il vero HTM con robuste iniezioni di codice lato server:
La vista – view (codice html alternato a codice interpretato come nella migliore tradizione ASP) permette un controllo completo del layout e delle funzionalità del codice di scripting lato browser. Con la vista chi programma in PHP o ha programmato in ASP ha un ambiente familiare:

@model myNamespace.myObject
@{
//qui codice interpretato
If(qualcosa)
{

}
<span>
qui codice inviato al direttamente browser
@Model.campo<- questo invia al browser il valore del campo dell’oggetto istanza della classe myObject
</span>
}
Questo va direttamente al browser...

Dove con @ inizia codice che il server deve interpretare (sintassi razor). Con la possibilità di stare su più righe usando @{…..} e di interrompere l’interpretazione lato server appena è digitato un TAG html (sintassi molto potente e flessibile). Inoltre alla view è possibile inviare dati tramite oggetti che con @Model vengono richiamati direttamente nella pagina stessa.
Il buon vecchio <% %> o <?php ?> con grandi agevolazioni, per una progettazione di applicazioni complesse, grazie ad alcune peculiarità di MVC che già si possono intuire e un IDE, Visual Studio, che supporta tutti gli aiuti dei quali abbiamo bisogno.
Il Controller permette di interpreta i vari parametri derivanti da connessioni a DB, da GET, da POST etc. etc. e quindi fare elaborazioni completamente lato server e richiamare la View opportuna.
Il Model permette di creare oggetti personalizzati che possono essere utilizzati per i propri scopi, come per esempio elaborarli con naturalezza nelle viste.
Così torniamo ad essere nuovamente dei programmatori web consapevoli di quello che stiamo facendo…altrimenti non riusciamo a farlo!
E i rich control delle pagine che sono presenti in ASPX? Non se ne sente la mancanza? No! La rivoluzione degli ultimi anni, jquery, ha permesso di avere con poco codice funzionalità complesse e interfacce veramente accattivanti.

Sono talmente convinto della scelta di MVC che, insieme a nuovi e validi colleghi, lo stiamo utilizzando per un progetto complesso e innovativo. Alla prossima puntata con i primi trucchi per il mondo reale…

(1118)

Articoli correlati:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

× Supporto Live

Al momento siamo offline. Potete contattarci via email..