Una delle domande che spesso mi viene posta nello sviluppo di web application con Angular è:
“Perchè è necessario creare un ViewModel per la rappresentazione dei dati, e non utilizzare i dati raw (ad esempio in formato Json)?”
L’utilizzo di dati raw in formato Json è sempre possibile, ma un ViewModel è sicuramente la scelta migliore per almeno tre buoni motivi:
- utilizzando Typescript (invece di Javascript), scelta necessaria per poter lavorare in maniera tipizzata, non è possibile utilizzare tipi anonimi per il flusso dei dati;
- i tipi anonimi, ed in particolare le loro proprietà sono difficili da validare
- i tipi anonimi sono difficilmente riusabili, e non sono la soluzione ottimale per le funzionalità di mapping offerte da Angular che richiedono di avere avere istanze di interfacce e/o di tipi
Il ViewModel può essere utilizzato in diversi contesti ed è sicuramente molto utilizzato all’interno della applicazioni .NET MVC.
L’utilizzo di un ViewModel ha il vantaggio di utilizzare solo i dati che ci servono, e nulla di più: non vengono rappresentati tutti i campi del model ma solo il subset strettamente necessario.