Aplicativos de sincronização

Um aplicativo de sincronização é um componente de software que cria uma sessão de sincronização, conecta com dois provedores de sincronização, usa para iniciar a sincronização e hospeda o Estrutura de sincronização durante a sincronização. O aplicativo de sincronização também pode registrar tratar eventos que são relatados de volta pelo Estrutura de sincronização.

Dica

O Estrutura de sincronização não abrange como um aplicativo obtém e instancia provedores, nem como o aplicativo determina que um provedor está solicitando sincronização e com qual provedor deseja sincronizar.

Implementando um aplicativo de sincronização

Um aplicativo de sincronização pode ser implementado usando código gerenciado ou não gerenciado.

Security noteSegurança Observação:

O Estrutura de sincronização trata provedores de sincronização como código de confiança. Portanto, um aplicativo que invoca um provedor de sincronização deve estabelecer que o provedor é de confiança ou tendo conhecimento explícito do provedor ou usando outro mecanismo como uma assinatura digital.

Implementando um aplicativo de sincronização usando código gerenciado

Um aplicativo cria e inicia uma sessão de sincronização fazendo o seguinte:

  1. Cria um objeto SyncOrchestrator.

  2. Define as propriedades LocalProvider e RemoteProvider do organizador.

  3. Define a propriedade Direction do organizador para a direção de sincronização apropriada. Na direção Upload, o objeto LocalProvider é a origem e o objeto RemoteProvider é o destino. Na direção Download, o objeto LocalProvider é o destino e o objeto RemoteProvider é a origem. Lembre-se de que a sincronização bidirecional pode ser executada usando DownloadAndUpload ou UploadAndDownload.

  4. Chama o método Synchronize do organizador. Isso cria uma sessão em nome do aplicativo que tratará de todas as tarefas de sincronização adicionais. Se o aplicativo deseja cancelar a sincronização, pode chamar o método Cancel.

Implementando um aplicativo de sincronização usando código não gerenciado

Um aplicativo cria e inicia um objeto de sessão de sincronização fazendo o seguinte:

  1. Cria um objeto IApplicationSyncServices. Isso é feito chamando CoCreateInstance e passando para CLSID_SyncServices para o CLSID e IID_IApplicationSyncServices para a IID.

  2. Cria um objeto ISyncSession. Isso é feito chamando o método IApplicationSyncServices::CreateSyncSession . Dois provedores são passados para este método: um como o provedor de destino e o outro como o provedor de origem.

  3. Chama o método ISyncSession::Start. Então, o Estrutura de sincronização trata de todas as tarefas de sincronização adicionais. Se o aplicativo deseja cancelar a sincronização, o método ISyncSession::Cancel pode ser cancelado.

  4. Depois que a sincronização for concluída, a sincronização bidirecional pode ser obtida criando outro objeto de sessão, revertendo qual provedor é a origem e o destino, assim como chamando ISyncSession::Start no novo objeto de sessão.

Para obter mais informações sobre como criar um aplicativo de sincronização, consulte Como criar um aplicativo de sincronização não gerenciado.

Eventos de sincronização

Um aplicativo pode registrar ser notificado sobre vários eventos durante a sincronização. As duas razões principais para tratar de eventos são rastrear o progresso e implementar o tratamento de conflitos personalizado.

Código gerenciado Implemente métodos de manipulador de eventos e registre-os com o objeto SyncOrchestrator ou um objeto SyncCallbacks.

Código não gerenciado Use o método ISyncSession::RegisterCallback para registrar um objeto que implementa a interface ISyncCallback.

Para obter mais informações, consulte Respondendo a eventos de sincronização.

Consulte também

Referência

Interface IApplicationSyncServices
Interface ISyncSession
Interface ISyncCallback
SyncOrchestrator
SyncCallbacks

Conceitos

Conceitos básicos sobre sincronização de dados
Respondendo a eventos de sincronização

Outros recursos

Microsoft Sync Framework