Devo progettare e implementare un modo per gestire i processi di lunga durata in un'applicazione client/server. Un tipico processo di lunga durata richiederebbe/potrebbe richiedere 2-3 minuti. Devo anche segnalare i progressi nell'interfaccia utente nel frattempo e mantenere l'interfaccia utente reattiva.Notifica di avanzamento in WCF per processi di lunga durata - Come?
Avendo questi nella mia mente anche se, alcune soluzioni:
Una richiesta asincrona per avviare il processo che avvia il processo sul lato server e restituisce un LRPID assegnato (Long esecuzione Process ID) poi sondare periodicamente dal client utilizzando tale LRPID. (Pro: semplice da implementare, senza firewall fare in giro Con: Unelegant, consumo di risorse, ecc)
Utilizzare un duplex vincolante (come NetTcpBinding) e di avviare callback dal server, come si stanno facendo progressi (Pro: Elegante, efficiente, Con: distribuzione incubo)
[Il tuo suggerimento ???]
Quale sarebbe la tua opinione su questo?
Qual è l'applicazione lato client scritto in? –
Incubo di distribuzione? Perché, a causa di IIS/WAS? Quindi non li usano. –
@Daniel Auger: l'app client è scritta in WPF –