Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Differenza Model e ViewModel

    Salve a tutti, so che per molti puo sembrare una domanda stupida, ma ho appena iniziato a sviluppare in asp MVC e non ho ben chiara la differenza tra MOdel e ViewModel, il dubbio e:
    Quando usare uno o l altro?vanno usati entrambi? qualcuno puo farmi cortesemente un semplice esempio?
    Grazie a tutti

  2. #2
    non vorrei dire una castroneria, ma il ViewModel, non è del MVVM?
    Non c'entra con MVC

  3. #3
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    In MVC il Model è il "pacchetto dati" che viene preparato dal controller e viene consumato dalla view. il Model quindi non è fatto dalle classi di business o entità (come spesso succede di vedere nei tutorial di MVC) ma da classi strettamente correlate alla View. Per questo motivo alcuni lo definiscono ViewModel (creando confusione con il VM di MVVM come ha ricordato gluck) anche perche poi preferiscono definire Model il modello oggetti al livello di business o di entità.
    Un altro termine per definire il Model di MVC è DTO (Data Transer Object), in realtà questo è un termine piu adatto a scenari tipici dei webservice e si riferiscono a classi di dati privi di logica che vengono serializzate e trasmesse su canali remoti. La natura dei DTO è molto simile al Model di MVC (puri e semplici dati da consumare nella View) da qui l'uso del termine DTO.

    Per farti un esempio pratico: se ho una action/view che mi visualizza l'elenco paginato dei prodotti avrò un entità Prodotto che è il mio modello di business e che chiamo Model ma che non è la M di MVC.
    La M di MVC è il ViewModel (o DTO) e cioè un oggetto che non solo contiene una List<Prodotto> ma anche ulteriori dati ad esclusivo uso e consumo della specifica View ElencoCittà come per esempio il totale dei record, il numero di record per pagina, ecc... tutte informazioni aggiuntive che chi è alle prime armi con il pattern usa inserire nel ViewBag/ViewData.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.