Voglio utilizzare Windows Workflow per fornire un servizio di convalida. La convalida che verrà fornita può avere più livelli con concatenamento e reindirizzamento ad altre fasi di convalida. L'applicazione che genererà i dati per la convalida è un'app Silverlight.
Immagino che la convalida richiederà più tempo di un battito di ciglia, quindi non voglio legare l'utente. Invece, vorrei che l'utente inviasse i dati correnti per la convalida. Se la convalida avviene rapidamente, il servizio eseguirà una richiamata asincrona all'app. Il viewmodel che ha effettuato la chiamata riceverà l'output di convalida e verrà inserito nella visualizzazione.
Se la convalida richiede molto tempo, l'utente può andare avanti nell'app Silverlight, ignorando il potenziale risultato della convalida. Il viewmodel che ha reso la chiamata sarebbe andato. Prevedo che ci sarebbe un altro viewmodel che conterrebbe l'attuale output di validazione nel suo modello. Il valore di convalida cambierà e l'utente riceverà una notifica in un'area di notifica più piccola.
Posso vedere come il viewmodel della vista corrente chiamerebbe la convalida attraverso il viewmodel che contiene l'output di validazione, ma sono preoccupato che la chiamata di servizio scada. Inoltre, penso che l'utente potrebbe aver già modificato i valori della convalida originale, invalidando il feedback.
Sono certo che la convalida asincrona è un problema risolto molte volte, sto cercando di trarre spunto dalla tua esperienza nella risoluzione di questo tipo di problema.
Questo è il giusto approccio al problema, o c'è un modo migliore per avvicinarsi a questo?