Essendo
BITS un servizio del core di Windows, è tuttavia interessante sapere che è possibile utilizzarlo anche all'interno di applicativi desktop propri.
Come già detto in precedenza, si potrebbe sindacare sulla bontà dell'implementazione offerta da Microsoft, sia come interfaccia utente sia come efficacia di implementazione, ma dato che il servizio c'è e Microsoft offre tutti i dettagli per il suo utilizzo, ritengo di sicuro interesse perlomeno provare a sfruttarlo:
a caval donato non si guarda in bocca.
Le
API per
BITS non sono numerosissime come le opzioni sulla command line di
bitsadmin menzionate nella
puntata precedente, ma rappresentano comunque una implementazione più che dignitosa.
L'interfaccia offerta è in
linguaggio C++, ciò non costituisce a mio avviso un problema per i programmatori evoluti, che possono agevolmente interfacciarlo con altri linguaggi, eventualmente realizzando opportuni
wrapper.
Vi sono
18 classi (o oggetti), che permettono di accedere e controllare il servizio
BITS abbastanza agevolmente, dato che ogni classe ha al suo interno varie funzioni membro (metodi) per manipolare dati e gestire le notifiche degli eventi.
Microsoft mette a disposizione degli
esempi che utilizzano esplicitamente C++, accanto a quelli contenuti nel
Windows SDK, che sfruttano invece il protocollo HTTP. L'SDK è
gratuitamente scaricabile e permette di sviluppare applicazioni basate sia sul core nativo Windows 32/64 bit sia sul framework .NET.
Dato che gli sviluppatori che utilizzano .NET sono oramai la stragrande maggioranza, ritengo utile segnalare un articolo di MSDN, "
Write Auto-Updating Apps with .NET and the Background Intelligent Transfer Service API", datato, ma a mio avviso sempre molto valido, nel quale viene illustrato dettagliatamente come implementare, nella propria applicazione, un
sistema di aggiornamento automatico, proprio come il famoso (o famigerato?) Windows Update, utilizzando sia C++ che C#.