MVVM / WPF / Posto appropriato per il codice

0

Ho una domanda sulla progettazione MVVM e dove dovrei inserire del codice che vorrei aggiungere.

La mia applicazione interroga la directory attiva per i computer e visualizza l'elenco per l'utente. Selezionando un computer vengono visualizzate alcune informazioni generali su Active Directory e WMI relative a quel computer specifico.

Attualmente, ho un "MainWindowViewModel" per la finestra principale dell'applicazione. Ogni computer ha il proprio "ComputerViewModel". ComputerViewModels comunica con un DataService, che a sua volta utilizza i repository ActiveDirectory e WMI per ottenere le informazioni.

Vorreiindicareselamacchinaè"in" o meno "ping". È considerato OK MVVM esercitarsi a inserire il codice pinging in ComputerViewModel, o dovrei inserirlo altrove?

    
posta bdan 13.11.2018 - 16:13
fonte

1 risposta

2

Personalmente, mi piace mantenere ogni ViewModel il più vuoto possibile - includendo solo i metodi / le proprietà che sono direttamente responsabili della fornitura di dati alla vista, come la shell di una funzione attivata da ICommand, o per registrare lo stato dell'oggetto runtime. Tutto il resto va nei servizi (iniettati).

Quindi nel tuo caso, la funzionalità Ping () andrebbe in IDataService, prendendo semplicemente un'istanza di modello del computer come parametro (per l'Id o le proprietà di connessione di quel computer). Il modello di visualizzazione del computer avrebbe una proprietà simile a IsConnected o ConnectionStatus, impostata dal valore di ritorno di Ping ().

Ho coperto questa separazione tra ViewModel e i servizi in un recente post del blog .

    
risposta data 13.11.2018 - 16:30
fonte

Leggi altre domande sui tag