Domanda

Una delle mie applicazioni hobbistiche utilizza un back-end SQLite per archiviare i dati dell'applicazione. L'applicazione è configurata in modo che l'utente possa fare clic sul tipico " Controlla aggiornamenti " pulsante, che interrogherà un servizio web per vedere se è disponibile un aggiornamento. In tal caso, l'utente fa clic su " aggiorna " pulsante e scarica un nuovo database (tramite HTTP) che viene quindi installato nell'applicazione. Questo processo è attualmente "modale" in quanto l'utente non può fare nient'altro nell'applicazione fino al completamento del download e dell'installazione.

Sto lavorando per aggiornare l'applicazione e una cosa che voglio realizzare è che questo processo di aggiornamento avvenga dietro le quinte, su Windows Update. Quando l'applicazione viene avviata, viene interrogato il servizio e, se è disponibile un aggiornamento, verrà automaticamente scaricato, ma in background in modo che l'utente possa continuare a fare il proprio lavoro. Una volta completato il download, all'utente verrà richiesto di installare l'aggiornamento.

Ho esaminato ampiamente BITS e anche se non ci sono API che ho visto finora per sfruttare la tecnologia, ho visto del codice di esempio e credo di poterlo far funzionare.

Ma è questo il modo migliore per avvicinarsi a un "aggiornamento in background" per una libreria di dati o ci sono altre soluzioni / approcci là fuori?

È stato utile?

Soluzione

Se si esegue solo su MS Windows e i client utilizzano una versione abbastanza nuova del sistema operativo per supportare BITS, penso che dovresti certamente sfruttare la funzionalità già integrata nella piattaforma, anziché fare ciò che tutti gli altri fa e scrive il tuo controllo degli aggiornamenti in background che si trova nell'area di notifica della mia barra delle applicazioni e utilizza inutilmente le risorse di sistema.

Per quanto riguarda le informazioni sui BITS:

Informazioni sui BITS

Riferimento BITS

Servizio di trasferimento intelligente in background, da Wikipedia

Altri suggerimenti

Sono il PM del team BITS di Windows: sì, la tecnologia BITS è adatta per molte volte in cui è necessario scaricare (o caricare) i dati in un modo che sia amichevole per l'utente. BITS cerca di fare attenzione a controllare la larghezza di banda della rete, lo stato di alimentazione corrente e i costi di rete e riproverà automaticamente i download in caso di errore. Abbiamo anche appena creato un nuovo programma BITS Manager su GitHub per tutti coloro che programmano in C # e .NET!

Sembra davvero che dovresti prendere in considerazione Sync Framework http: // msdn. microsoft.com/en-us/sync/bb736753.aspx anziché BITS.

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