Ho un file XML che contiene informazioni di configurazione per un sistema. Posso serializzare / deserializzare l'XML in una gerarchia di oggetti che descrivono la configurazione (e non più) e quindi passare quegli oggetti a un'attività che esegue il lavoro in base ai dati negli oggetti.
Quello che voglio fare è costruire un editor specializzato per il mio XML per consentire a un utente di costruire il file di configurazione tramite punta e clicca anziché aprirlo in un editor di testo e modificare manualmente le cose. L'idea è di fornire coerenza e controllo degli errori quando vengono immesse le informazioni di configurazione (al contrario del sistema di run time che dice FU e di dover capire cosa hai sbagliato). A causa della normalizzazione dei dati nell'XML ci sarebbe quasi una corrispondenza 1: 1 di elementi / attributi XML ai campi di modifica dell'utente sullo schermo.
Tuttavia, quando penso a questo in termini MVVM, sembra che abbia due scelte, nessuna delle quali mi piace.
-
Una gerarchia del modello di vista separata duplica tutti i campi nel modello XML aggiungendo il controllo degli errori e tutto il resto necessario (come associazione di dati e aggiornamenti delle proprietà ecc.) per accoppiare un modello di vista a una vista in WPF utilizzando MVVM .
-
Il modello XML assorbe tutto ciò che farebbe un modello di vista separato, ma finisco per avere una singola (sebbene orrenda) gerarchia di oggetti coerenti.
Quindi sembra che io duplichi la gerarchia, crei problemi di coerenza, o violi avere una vista separata e modelli di dominio e crei una grande palla di codice.
C'è un altro modo in cui posso strutturare il mio editor che evita questi due progetti e le loro insidie?
Questa domanda del 2012 ha chiesto che cosa potrebbe sembrare un duplicato , ma le risposte sono incoerenti a dir poco.