Come riscontrato su più siti Web in cui viene chiesto di compilare un modulo, spesso vengono visualizzati campi obbligatori. Tali campi vengono spesso convalidati tramite Javascript per gli input non vuoti e all-numerici, ad esempio.
Sì, è meglio che il back-end esegua il lavoro sporco, ma l'interfaccia utente assicura che l'input di informazioni sia fornito, quindi l'input viene ulteriormente convalidato nel codice back-end.
MVC
In un'applicazione MVC , avrai la vista valida per i campi vuoti obbligatori e il L'interfaccia utente non consente l'inserimento vuoto nei campi obbligatori. Quindi, una volta fornite le informazioni obbligatorie, appartiene al controller per inviare le informazioni al modello per la corretta convalida.
Per ulteriori informazioni sul modello di architettura MVC, è possibile visitare il sito Web di Martin Fowler sull'argomento.
MVP
In un'applicazione MVP, avrai due approcci : Controllore supervisore e Vista passiva .
Controller di supervisione
La vista è a conoscenza di alcune regole come l'attivazione di un pulsante una volta che tutti i campi richiesti sono stati compilati correttamente. Anche per la convalida del formato! Ad esempio, la tua vista deve presentare controlli adeguati per input diversi come un calendario a discesa, una casella combinata, un numero-su-giù, ecc. Quindi, si assicura di abilitare il pulsante di invio solo e solo se tutto è richiesto le informazioni sono compilate.
Vista passiva
La vista è stupida. Tutto passa sul diritto di informazione al Presenter che convalida nel back-end se l'informazione è buona o meno. È facile configurare un modello di Visualizzazione passiva come un Windows Form o simili, ma chiaramente fuorvianti (IMHO) in un'applicazione web.
MVVM
La vista e il modello di vista sono uniti insieme in modo che il modello di vista possa indicare se tutti i campi richiesti sono stati compilati correttamente e agire di conseguenza sulla vista. Inoltre, è molto più preferibile, dal mio punto di vista, lasciare che sia la possibilità, ad esempio, di abilitare un pulsante quando l'informazione in sé cambia, in base allo stato del modello di vista. Questa è la vista che legge lo stato del modello di vista, e il modello di vista deve quindi dire alla vista se il pulsante deve essere abilitato o meno.
Ci sono anche più modelli di architettura che gestiscono diversamente le cose differenti. Hanno tutti i loro benefici e compromessi. MVVM è ottimo per applicazione WPF , e MVP è la soluzione migliore per < a href="http://www.asp.net/web-forms"> Webforms applicazione, in quanto MVC è la soluzione migliore per l'applicazione Web in generale. Potresti anche preferire un approccio ibrido come MVP-C-VM, ecc. Basato sulle tue conoscenze e competenze. L'idea è di mantenere il codice il più semplice possibile e facile da mantenere il più possibile. Quindi, in pratica, è piuttosto una questione di preferenza basata sulla tua esperienza ed esperienza.
Alla fine, per quanto mi riguarda, mi piace di più avere alcune convalide di base direttamente nella vista (livello dell'interfaccia utente) per offrire un'esperienza utente migliore ed evitare alcuni ritardi che possono verificarsi con il back-end . Quindi, quando l'utente invia effettivamente le informazioni, può verificarsi una convalida più efficace.