2010-06-22 12 views

risposta

7

In genere, si dovrà fare riferimento i vostri modelli di dominio nei vostri Visualizza i modelli, o almeno caricare i modelli di dominio in i controller e trasmettere le informazioni al View Model.

Preferisco mantenere Controllers e Views il più semplice/stupido possibile, perché sia ​​i modelli di dominio che i modelli di visualizzazione sono molto più facili da testare.

Quindi, faccio spesso riferimento ai miei modelli di dominio all'interno dei miei modelli di vista. A volte uso l'aggregazione, a volte copio solo le proprietà (in alcuni progetti solo con codice vecchio semplice, in altri progetti che utilizzano un auto mapper)

+0

ma farlo è solo ragionevole e funziona correttamente solo quando il modello di dominio soddisfa le esigenze della vista. Ho sentito che un modello di vista dovrebbe solo contenere quasi delle proprietà di stringa già formate. A proposito, NON è necessario copiare le proprietà. Ti suggerisco di leggere su AutoMapper, basta fare su Google! È un grande strumento imho. – Rookian

+0

Nota Ho detto in alcuni progetti che copio, in altri utilizzo un auto mapper, in particolare, AutoMapper :) Inoltre, faccio sostanzialmente ciò che descrivi. NON utilizzo i miei modelli di dominio come i miei modelli di vista. Lo facevamo e ci ha morso un bel po 'di volte. – CubanX

+0

Quindi, come ho capito bene, si mescolano gli oggetti del modello di vista e gli oggetti del modello di dominio. E si inviano entrambi (vale a dire l'aggregato contenente un oggetto modello di vista e un oggetto modello dominio) anche alla vista? – Rookian

2

Tendo a creare modelli di vista separati che contengono solo ciò che ho bisogno di visualizzare in la vista. AutoMapper è uno strumento di creazione per semplificare questo processo.

+1

Puoi spiegare più in dettaglio perché NON mischiesti gli oggetti del modello di vista con gli oggetti del modello di dominio? Pro e contro ... – Rookian

+0

Le mie classi di modelli di dominio hanno in genere un sacco di metodi di modifica dello stato su di essi. Non voglio esporli direttamente al livello vista semplicemente per evitare confusione su dove questi metodi dovrebbero essere chiamati. Richiedo a tutti i miei comandi di dominio di passare attraverso un livello di servizio che collega le sessioni DB appropriate, i controlli di sicurezza, ecc. Tuttavia, in genere, esporto gli oggetti valore dal mio dominio direttamente al livello MVC. Inoltre, avere una separazione netta tra i modelli di lettura e scrittura (CQS) aiuta a mantenere questo aspetto organizzato. – Ryan

+0

Provo a fare in modo che io abbia un modello di vista per ogni vista e che quel modello di vista abbia quello di cui ha bisogno per creare la vista. Quel modello di visualizzazione potrebbe essere costituito da più modelli di dominio e utilizzerà solo alcuni dei campi di ciascuno. –

Problemi correlati