Produzione di feed RSS e Atom

I componenti della sincronizzazione Web di Sync Framework consentono a una replica di pubblicare dati ai sottoscrittori interessati come feed RSS o Atom. I componenti della sincronizzazione Web rappresentano internamente il feed come un provider di sincronizzazione e utilizzano altri componenti di Sync Framework per sincronizzare gli elementi del feed tra il provider del feed e un provider che rappresenta la replica. Grazie a questa funzionalità, un'applicazione deve unicamente implementare i metodi per convertire gli ID e i dati dell'elemento nel formato XML previsto dal feed. Sync Framework si occupa delle attività di sincronizzazione comuni, ad esempio il rilevamento di modifiche, il rilevamento di conflitti e l'applicazione di modifiche al feed prodotto.

Per produrre un feed, un'applicazione crea un oggetto producer di feed e fornisce gli elementi seguenti:

  • Un provider di sincronizzazione che rappresenta la replica da produrre.

  • Oggetti convertitore di ID e di elementi.

  • Un flusso che contiene un feed RSS o Atom vuoto.

L'applicazione chiama quindi il metodo appropriato dell'oggetto producer di feed per produrre il feed. A tale scopo, Sync Framework esegue il wrapping del feed in un provider di sincronizzazione e avvia una sessione di sincronizzazione che utilizza il provider locale come provider di origine e il provider del feed come provider di destinazione. Durante l'elaborazione, Sync Framework chiama i convertitori di ID e di elementi per convertire gli ID e i dati dell'elemento in un formato XML valido, quindi inserisce i dati XML nel percorso appropriato all'interno del flusso. Al termine dell'elaborazione, il feed del flusso contiene gli elementi della replica unitamente ai relativi metadati FeedSync. Questo flusso può essere quindi pubblicato per i sottoscrittori del feed tramite un meccanismo appropriato.

Per ulteriori informazioni sull'implementazione di oggetti convertitore di ID e di elementi, vedere Conversione di ID ed elementi per feed RSS e Atom.

Per ulteriori informazioni sui feed FeedSync, vedere il sito Web FeedSync.

Produzione del feed tramite codice gestito

Per produrre un feed, creare innanzitutto un oggetto FeedProducer utilizzando FeedProducer e passando a esso gli oggetti seguenti:

Successivamente, chiamare ProduceFeed e passare a esso un oggetto Stream che contiene un feed RSS o Atom vuoto. Al termine dell'elaborazione, questo oggetto Stream contiene un feed FeedSync in cui sono presenti gli elementi della replica. È opportuno considerare che il flusso deve essere aperto con accesso in lettura e scrittura.

Per produrre un feed parziale, passare un oggetto EndpointState a ProduceFeed. In questo modo è possibile stabilire una linea di base per un feed incrementale che contiene tutti gli elementi della replica non presenti nella linea di base.

Produzione del feed tramite codice non gestito

Per produrre un feed, creare innanzitutto un oggetto IFeedProducerConsumerServices passando CLSID_FeedSyncServices e IID_IFeedProducerConsumerServices alla funzione CoCreateInstance. Successivamente creare un oggetto IFeedProducer tramite IFeedProducerConsumerServices::CreateFeedProducer.

Per produrre il feed, chiamare IFeedProducer::ProduceFeed e passare a esso gli oggetti seguenti:

  • Un oggetto IFeedIdConverter implementato da un'applicazione.

  • Un oggetto IFeedItemConverter implementato da un'applicazione.

  • Un oggetto ISyncProvider che rappresenta la replica da produrre.

  • Un oggetto IStream che contiene un feed RSS o Atom vuoto. È opportuno considerare che il flusso deve essere aperto con accesso in lettura e scrittura.

Al termine dell'elaborazione, l'oggetto IStream contiene un feed FeedSync in cui sono presenti gli elementi della replica.

Per produrre un feed parziale, passare un oggetto IEndpointState a IFeedProducer::ProduceFeed. In questo modo viene stabilita una linea di base per un feed incrementale che contiene tutti gli elementi della replica non presenti nella linea di base.

Vedere anche

Riferimento

Microsoft.Synchronization.FeedSync
FeedProducer
EndpointState

Concetti

Sincronizzazione di feed Web

Altre risorse

Componenti di sincronizzazione Web di Sync Framework
Interfaccia IFeedProducerConsumerServices
Interfaccia IFeedProducer
Interfaccia IEndpointState