Selezionando MVC per lo sviluppo del nostro nuovo sito, mi trovo nel mezzo delle "migliori pratiche" sviluppate intorno a me in tempo reale apparente. Due settimane fa, NerdDinner è stata la mia guida, ma con lo sviluppo di MVC 2, anche se sembra obsoleto. È un'esperienza elettrizzante e mi sento privilegiata a stare in stretto contatto quotidianamente con i programmatori intelligenti.Best practice riguardanti il modello di visualizzazione e gli aggiornamenti del modello con un sottoinsieme di campi
In questo momento sono incappato in un problema su cui non riesco a ottenere una risposta diretta - da tutti i blog comunque - e mi piacerebbe avere una visione della comunità. Si tratta di modifica (leggi: Modifica azione). La maggior parte del materiale, tutorial e blog, si occupa della creazione e visualizzazione del modello. Quindi, anche se questa domanda potrebbe non enunciare una domanda, spero di portare avanti qualche discussione, contribuendo alla mia decisione sul percorso di sviluppo che devo intraprendere.
Il mio modello rappresenta un utente con diversi campi come nome, indirizzo ed e-mail. Tutti i nomi, infatti, sul campo ciascuno per nome, cognome e secondo nome. La vista Dettagli visualizza tutti questi campi ma è possibile modificare solo un set di campi alla volta, ad esempio i tuoi nomi. L'utente espande un modulo mentre gli altri campi sono ancora visibili sopra e sotto. Quindi il modulo che viene pubblicato di nuovo contiene un sottoinsieme dei campi che rappresentano il modello.
Mentre questo è interessante per noi e il nostro problema di layout, per vari motivi, è da evitarlo da parte degli sviluppatori di MVC. Ho letto alcuni schemi e best practice e sembra che questo non sia in linea con il paradigma viewmodel == view. O mi sono sbagliato?
In ogni caso, NerdDinner detta usando FormCollection och UpdateModel. Tutti i campi nulli sono felicemente ignorati. Da allora, la comunità MVC ha abbandonato questo approccio a tal punto che non è stato rilevato un bug in MVC 2. UpdateModel non funziona senza un modello completo nella raccolta dei moduli.
Il view model pattern riceve più lode sembra essere Dedicato modello di vista che contiene una vista del modello personalizzato entità ed è l'unico che il mio problema di progettazione potrebbe essere reso compatibile con. Esso comporta una quantità noiosa di mappatura, anche se alleggerito dall'uso di AutoMapper e dallo ideas di Jimmy Bogard, che può o non può essere utile. Propone anche una relazione 1: 1 tra vista e modello di vista.
In linea con questi paradigmi di progettazione, devo creare una vista e una vista associata per ciascuno dei miei insiemi di campi in espansione. I modelli di visualizzazione sarebbero quasi identici, differendo solo nei campi che sono di sola lettura, le viste contenenti anche marcature molto ripetute. Questo mi sembra assurdo. In futuro potrei voler visualizzare contemporaneamente due, più o tutti i gruppi di campi aperti.
Leggerò con molta attenzione la discussione che spero di suscitare. Molte grazie in anticipo.
"La visualizzazione Dettagli visualizza tutti questi campi ma è possibile modificare solo un set di campi alla volta, ad esempio i propri nomi. "Perché? Questo è più amichevole di lasciare che un utente regoli l'intero modulo in una volta?" – jfar
Hai ragione, lo riformulerò. È solo meno disordinato e più compatto. Puoi avere più indirizzi, aggiungere, eliminare ma siamo ancora lo voglio su una pagina – Martin
Hai spiegato molto bene la tua preoccupazione, ho riscontrato lo stesso problema e mi sono mosso verso il modello 1: 1: ViewModel descritto da Jimmy Bogard. Il problema principale che sto ancora affrontando è mappatura di ViewModels che contengono più modelli di dominio. – WDuffy