Implementando um aplicativo de sincronização
Um aplicativo de sincronização é um componente de software que cria uma sessão de sincronização, conecta-a a dois provedores de sincronização, usa-a para iniciar a sincronização e hospeda o Sync Framework durante a sincronização. O aplicativo de sincronização também pode registrar tratar eventos que são relatados de volta pelo Sync Framework.
Dica
O Sync Framework 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.
Observação sobre segurança |
---|
O Sync Framework 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:
Cria um objeto SyncOrchestrator.
Define as propriedades LocalProvider e RemoteProvider do organizador.
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.
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:
Cria um objeto IApplicationSyncServices. Isso é feito chamando CoCreateInstance e passando para CLSID_SyncServices para o CLSID e IID_IApplicationSyncServices para a IID.
Cria um objeto ISyncSession. Para isso, o método IApplicationSyncServices::CreateSyncSessioné chamado. Dois provedores são passados para este método: um como o provedor de destino e o outro como o provedor de origem.
Chama o método ISyncSession::Start. Então, o Sync Framework 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.
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
Outros recursos
Conceitos básicos sobre provedores personalizados
Respondendo a eventos de sincronização