Compartilhar via


Produzindo RSS e Atom feeds

Os componentes de sincronização da Web do Sync Framework permitem que uma réplica publique seus dados para assinantes interessados como um RSS ou Atom feed. Os componentes de sincronização da Web representam internamente o feed como um provedor de sincronização e usa outros componentes do Sync Framework para sincronizar itens de feed entre o provedor do feed e um provedor que representa a réplica. Por causa disso, um aplicativo só precisa implementar métodos para converter IDs e dados de item para o formato XML esperado pelo feed. O Sync Framework executa as tarefas de sincronização comuns, como detectar alterações e conflitos, e aplicar alterações ao feed produzido.

Para produzir um feed, um aplicativo cria um objeto de produtor de feed e fornece os seguintes itens:

  • Um provedor de sincronização que representa a réplica a ser produzida.

  • Objetos de conversor de ID e item.

  • Um fluxo que contém um RSS ou Atom feed vazio.

O aplicativo chama o método apropriado do objeto de produtor de feed para produzir o feed. Para produzir o feed, o Sync Framework encapsula o feed em um provedor de sincronização e inicia uma sessão de sincronização que usa o provedor local como o provedor de origem e o provedor do feed como o provedor de destino. Durante o processamento, o Sync Framework chama os conversores de ID e de item para converter IDs e dados de item em um formato XML válido e, em seguida, insere os dados XML no local apropriado no fluxo. Quando o processamento é concluído, o feed do fluxo contém os itens da réplica e os metadados do FeedSync sobre eles. Esse fluxo pode ser publicado para assinantes do feed usando um mecanismo apropriado.

Para obter mais informações sobre como implementar objetos de conversão de ID e de item, consulte Convertendo IDs e itens para RSS e Atom Feeds.

Para obter mais informações sobre feeds do FeedSync, consulte o site do FeedSync.

Produzindo o feed usando código gerenciado

Para produzir um feed, primeiro crie um objeto FeedProducer usando FeedProducer e passando-o para estes objetos:

Em seguida, chame ProduceFeed e passe-o para um objeto Stream que contém um RSS ou Atom feed vazio. Quando o processamento for concluído, este objeto Stream conterá um a FeedSync feed que conterá os itens da réplica. Lembre-se que o fluxo deve estar aberto com acesso de leitura e gravação.

Para produzir um feed parcial, passe um objeto EndpointState para ProduceFeed. Isso estabelece uma linha de base para um feed incremental que contém todos os itens de réplica que não estão contidos na linha de base.

Produzindo o feed usando código não gerenciado

Para produzir um feed, primeiro crie um objeto IFeedProducerConsumerServices passando CLSID_FeedSyncServices e IID_IFeedProducerConsumerServices para a função CoCreateInstance. Depois, crie um objeto IFeedProducer usando IFeedProducerConsumerServices::CreateFeedProducer.

Para produzir o feed, chame IFeedProducer::ProduceFeed e passe-o para estes objetos:

  • Um objeto IFeedIdConverter implementado por um aplicativo.

  • Um objeto IFeedItemConverter implementado por um aplicativo.

  • Um objeto ISyncProvider que representa a réplica a ser produzida.

  • Um objeto IStream que contém um RSS ou Atom feed vazio. Lembre-se de que o fluxo deve estar aberto com acesso de leitura e gravação.

Quando o processamento é concluído, o objeto IStream contém um feed do FeedSync contendo os itens da réplica.

Para produzir um feed parcial, passe um objeto IEndpointState para IFeedProducer::ProduceFeed. Isso estabelece uma linha de base para um feed incremental que contém todos os tipos de réplica não contidos na linha de base.

Consulte também

Referência

Interface IFeedProducerConsumerServices
Interface IFeedProducer
Interface IEndpointState
Microsoft.Synchronization.FeedSync
FeedProducer
EndpointState

Conceitos

Sincronizando Web feeds
Componentes de sincronização da Web do Sync Framework