Condividi tramite


Implementazione di un'applicazione di sincronizzazione

Un'applicazione di sincronizzazione è un componente software che crea una sessione di sincronizzazione, la connette a due provider di sincronizzazione, la utilizza per avviare la sincronizzazione e ospita Sync Framework durante la sincronizzazione. L'applicazione di sincronizzazione può anche effettuare la registrazione per gestire eventi segnalati da Sync Framework.

Nota

Sync Framework non prende in considerazione il modo in cui un'applicazione ottiene e crea un'istanza dei provider, né il modo in cui stabilisce che un provider richiede la sincronizzazione e con quale provider eseguirla.

Implementazione di un'applicazione di sincronizzazione

Un'applicazione di sincronizzazione può essere implementata tramite codice gestito o non gestito.

Security noteSicurezza Nota

In Sync Framework i provider di sincronizzazione vengono considerati codice attendibile. Di conseguenza, un'applicazione che richiama un provider di sincronizzazione deve accertare l'attendibilità del provider acquisendo la conoscenza esplicita del provider oppure utilizzando un qualche altro meccanismo, ad esempio la firma digitale.

Implementazione di un'applicazione di sincronizzazione tramite codice gestito

Un'applicazione crea e avvia una sessione di sincronizzazione effettuando le operazioni seguenti:

  1. Crea un oggetto SyncOrchestrator.

  2. Imposta le proprietà LocalProvider e RemoteProvider dell'agente di orchestrazione.

  3. Imposta la proprietà Direction dell'agente di orchestrazione sulla direzione di sincronizzazione appropriata. Nella direzione di Upload, l'oggetto LocalProvider rappresenta l'origine e l'oggetto RemoteProvider rappresenta la destinazione. Nella direzione di Download, l'oggetto LocalProvider rappresenta la destinazione e l'oggetto RemoteProvider rappresenta l'origine. È opportuno considerare che la sincronizzazione bidirezionale può essere eseguita tramite DownloadAndUpload o UploadAndDownload.

  4. Chiama il metodo Synchronize dell'agente di orchestrazione. In questo modo viene creata una sessione per conto dell'applicazione che gestirà tutte le attività di sincronizzazione aggiuntive. Per annullare la sincronizzazione, l'applicazione può chiamare il metodo Cancel.

Implementazione di un'applicazione di sincronizzazione tramite codice non gestito

Un'applicazione crea e avvia un oggetto sessione di sincronizzazione effettuando le operazioni seguenti:

  1. Crea un oggetto IApplicationSyncServices. Questa operazione viene eseguita chiamando CoCreateInstance e passando a esso CLSID_SyncServices per l'identificatore di classe (CLSID) e IID_IApplicationSyncServices per l'IID.

  2. Crea un oggetto ISyncSession. Questa operazione viene eseguita chiamando il metodo IApplicationSyncServices::CreateSyncSession . A questo metodo vengono passati due provider: uno come provider di destinazione e uno come provider di origine.

  3. Chiama il metodo ISyncSession::Start, quindi Sync Framework gestisce tutte le attività di sincronizzazione aggiuntive. Per annullare la sincronizzazione, l'applicazione può chiamare il metodo ISyncSession::Cancel.

  4. Al termine della sincronizzazione, è possibile eseguire la sincronizzazione bidirezionale creando un altro oggetto di sessione, invertendo il provider di origine e quello di destinazione e chiamando ISyncSession::Start sul nuovo oggetto di sessione.

Per ulteriori informazioni sulla creazione di un'applicazione di sincronizzazione, vedere Procedura: creare un'applicazione di sincronizzazione non gestita.

Eventi di sincronizzazione

Un'applicazione può effettuare la registrazione per ricevere notifica di vari eventi durante la sincronizzazione. I due motivi principali alla base della gestione degli eventi sono la possibilità di rilevare lo stato e di implementare una gestione personalizzata dei conflitti.

Codice gestito Implementa i metodi del gestore eventi e li registra con l'oggetto SyncOrchestrator o un oggetto SyncCallbacks.

Codice non gestito Utilizza il metodo ISyncSession::RegisterCallback per registrare un oggetto che implementa l'interfaccia ISyncCallback.

Per ulteriori informazioni, vedere Risposta agli eventi di sincronizzazione.

Vedere anche

Riferimento

Interfaccia IApplicationSyncServices
Interfaccia ISyncSession
Interfaccia ISyncCallback
SyncOrchestrator
SyncCallbacks

Concetti

Microsoft Sync Framework
Nozioni fondamentali sui provider personalizzati
Risposta agli eventi di sincronizzazione