Come posso utilizzare Windows Workflow per la convalida di un'applicazione Silverlight?

3

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?

    
posta Josh C. 01.09.2011 - 15:31
fonte

1 risposta

1

Prima di tutto, mi piacerebbe presumere che si stia utilizzando un servizio WCF che fornisce servizi di validazione scritti in Windows Workflow e il client Silverlight utilizza il servizio per convalidare alcuni tipi di dati o avviare un'operazione di convalida.

In questo scenario, è necessario separare le operazioni di convalida di lunga durata e di breve durata e fornire una struttura dell'interfaccia utente diversa per ciascuna di esse. La breve esecuzione deve essere gestita con il solito modello di richiesta-risposta asincrono utilizzato da Silverlight, il che significa che l'utente attenderà (senza bloccare) il risultato della convalida. Questo è il flusso ordinario della maggior parte delle applicazioni Silverlight. La valutazione a lungo termine dovrebbe essere gestita in un modo diverso. Non è possibile utilizzare forzare l'utente ad attendere un risultato. Probabilmente è meglio utilizzare un meccanismo di notifica " per notificare all'utente in modo asincrono i risultati della convalida e fornire un modo per" modificare "o" inviare nuovamente "l'operazione nel caso in cui la convalida restituisca un errore o un errore.

In altre parole, Windows Workflow è solo un modo per "incollare" i passaggi di convalida. Dovresti gestire la progettazione e l'implementazione del resto.

    
risposta data 23.02.2012 - 10:25
fonte

Leggi altre domande sui tag