Domanda

Sono qui molto scettico sul design della mia applicazione .....

Ecco il diagramma per la mia applicazione

Diagramma della mia applicazione

è giusto ??ot ho bisogno di cambiare qualcosa ...

Elaborerò il diagramma ....:

Libreria comune: contiene classi ErrorCodes, classi di utilità ecc.
Logger: quadro di registrazione
Gestione delle eccezioni: Framework per la gestione delle eccezioni

Visualizza: contiene: tutti i diversi XAML per visualizzazioni come UserControls, Windows, Popup

ViewModel: contiene ViewModel per le diverse viste.

Modello: contiene i diversi livelli come ... Livello aziendale, livello di accesso ai dati ecc.

Livello entità: contiene gli oggetti entità come dipendente, azienda, ecc.

Casella file: specifica la lettura / scrittura da un file / database ....

È stato utile?

Soluzione

È difficile dire cosa stai cercando di fare con la tua domanda, ma a mio parere i livelli MVVM dovrebbero assomigliare a questo:

  • Modello : dati grezzi e convalida di dati non elaborati. Forse anche un INotifyPropertyChanged, ma nient'altro

  • ViewModel : logica aziendale, accesso ai dati, convalida avanzata basata su regole aziendali e così via

  • Visualizzazioni : grazioso livello dell'interfaccia utente che consente agli utenti di interagire con i ViewModel. Nient'altro.

Ad esempio, un modello potrebbe avere una proprietà File, ma non dovrebbe essere responsabile della visualizzazione della finestra di dialogo del file, del salvataggio del file nel database o della verifica che il file abbia un'estensione .pdf. Questo genere di cose è compito del ViewModel.

<”Modifica

Vedo l'aggiornamento che hai apportato alla tua domanda. È un buon inizio, ma ecco i problemi che ho con esso:

  • I tuoi modelli dovrebbero essere oggetti di dati grezzi. Non dovrebbero contenere nulla di più avanzato di qualcosa come la convalida della lunghezza di una proprietà.

  • Onestamente non consiglierei di separare le viste, i modelli e i modelli di visualizzazione in 3 livelli separati. L'ho fatto una volta e si è rivelato essere un incubo di manutenzione. Ora metto insieme tutti gli oggetti correlati. Ad esempio, metterei FileModel, FileViewModel e FileView insieme e SearchModel, SearchViewModel e SearchView insieme

  • Creerei un livello di accesso ai dati che sarebbe responsabile di eseguire tutti i dati di lettura / scrittura nel / dal database (suppongo che questo potrebbe essere il tuo "livello entità").

  • Per piccoli progetti, tendo a usare i miei oggetti entità come i miei modelli, quindi i modelli diventano parte del mio livello DAL, anche se so che non è consigliato.

  • Non dimenticare che con MVVM i tuoi ViewModels sono la tua applicazione, non le tue viste. La vista dovrebbe riflettere il contenuto del ViewModel e non viceversa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top