Questo post è il primo di una serie di approfondimenti sulle tecnologie di sviluppo WEB e il mondo della programmazione in ambiente Microsoft .NET.
Oggi iniziamo con un’analisi introduttiva di ASP.NET MVC che è la soluzione Microsoft per la realizzazione di applicativi WEB di nuova generazione parte integrante del noto Framework ASP.NET.
MVC Design Pattern
Lo scopo principale di MVC è quello di fornire strumenti per lo sviluppo di applicazioni WEB che rendano semplice e veloce l’adozione dei principi della progettazione del software, da cui il nome del framework stesso. MVC sta infatti per Model-View-Controller il nome del famoso pattern architetturale nato negli anni 80 per la realizzazione delle interfacce grafiche.
Il Model è la parte che mantiene la logica dei dati ovvero che rappresenta i concetti del dominio in entità “maneggiabili” dal resto dell’applicazione. In alcune implementazioni si occupa anche del recupero e memorizzazione dei dati stessi da una fonte esterna (e.g. database).La View è la parte dell’applicazione che mantiene la logica per la visualizzazione dei dati presenti nel Model. In alcune implementazioni si occupa anche della validazione che però deve rimanere di stretta natura sintattica e comunque priva di logiche di business.
Il Controller è la parte dell’applicazione che gestisce l’input utente: comanda il flusso di esecuzione, legge i dati dalla View e l’invia al Modello. Mantiene le entità del dominio coerenti fra loro ed è qui che risiede la maggior parte della logica e delle regole di business dell’applicazione. |
La separazione in layer di MVC aiuta lo sviluppatore a gestire la complessità delle applicazioni perché permette di focalizzarsi su un aspetto alla volta incentivando allo stesso tempo la suddivisione dello sviluppo in più gruppi di lavoro paralleli.
ASP.NET MVC
Fin dall’apertura anche del più semplice template (Empty Site) di Visual Studio (l’IDE di sviluppo ufficiale Microsoft) per la tipologia di progetti ASP.NET MVC si ritrovano i concetti finora esposti. Il progetto è infatti suddiviso fondamentalmente in tre cartelle Model, View e Controller. In ognuna delle cartelle andranno inseriti i relativi file: classi C# (o VB.NET) per Model e Controller, pagine CSHTML per la View.
Per quanto detto quindi, prendendo in considerazione un piccolo sistema di gestione di una biblioteca (questo esempio ci accompagnerà anche nei prossimi approfondimenti) si potrebbe avere:
- La classe Book del Model con attributi ISBN, Name, Author etc.
- La classe RentController con i metodi (dette Action) per il recupero dei libri dati in prestito, prestabili e con data resa scaduta, etc.
- Le pagine CSHTML per la visualizzazione delle liste di entità Book recuperate dalle Action del controller
Nei prossimi post approfondiremo con maggiore dettaglio gli step per la realizzazione di questa micro biblioteca 2.0: la sintassi Razor delle View, la decorazione per la validazione del modello e altro ancora.
Autore: Alessandro D’Angiò