L'API di diffusione è progettata per fornire un modello di programmazione indipendente dal formato, che consente di scrivere in rete contenuto diffuso in molteplici formati. Il modello di dati astratto è costituito dalle classi seguenti:
Queste classi eseguono il mapping in modo rigoroso ai costrutti definiti nella specifica Atom 1.0, anche se alcuni dei nomi sono diversi.
In Windows Communication Foundation (WCF), i feed di diffusione vengono modellati come un altro tipo di operazione del servizio, uno in cui il tipo restituito è una delle classi derivate di SyndicationFeedFormatter. Il recupero di un feed è modellato come uno scambio di messaggi richiesta-risposta. Un client invia una richiesta al servizio e il servizio risponde. Il messaggio di richiesta viene impostato in un protocollo dell'infrastruttura, ad esempio il protocollo HTTP non elaborato, e il messaggio di risposta contiene un payload costituito da un formato di diffusione noto (RSS 2.0 o Atom 1.0). I servizi che implementano questi scambi di messaggi sono denominati servizi di diffusione.
Il contratto di un servizio di diffusione è costituito da un set di operazioni che restituisce un'istanza della classe SyndicationFeedFormatter. Nell'esempio seguente viene illustrata una dichiarazione di interfaccia per un servizio di diffusione.
La specifica Atom 1.0 consente di specificare secondi frazionari in uno qualsiasi dei costrutti data. I secondi frazionari verranno ignorati dall'implementazione di WCF durante la fase di serializzazione e deserializzazione.
Modello a oggetti
Il modello a oggetti per la diffusione è costituito dai gruppi di classi riportati nelle tabelle seguenti.
Classe che rappresenta il contenuto di diffusione non destinato alla visualizzazione in un browser.
Le astrazioni dati di base nel modello a oggetti sono Feed e Item, che corrispondono alle classi SyndicationFeed e SyndicationItem. Un Feed espone alcuni metadati di livello feed, ad esempio Title, Description e Author, un percorso per la memorizzazione di estensioni sconosciute e un set di elementi che costituiscono il resto del contenuto di informazioni del feed. Un Item rende disponibili alcuni metadati di livello elemento, ad esempio, Title, Summary e PublicationDate, un percorso per archiviare estensioni sconosciute e un elemento contenuto che include il resto del contenuto di informazioni dell'elemento. Le astrazioni di base di Feed e Item sono supportate da ulteriori classi che rappresentano costrutti dati comuni a cui si fa riferimento nelle specifiche Atom 1.0 e RSS.
Una funzionalità chiave dei protocolli di diffusione è l'estensibilità. Sia Atom 1.0 che RSS 2.0 consentono di aggiungere ai feed di diffusione attributi ed elementi che non sono definiti nelle specifiche. Il modello di programmazione della diffusione WCF prevede due modalità di uso di attributi ed estensioni personalizzati: derivazione di una nuova classe e accesso non fortemente tipizzato. Per altre informazioni, vedere Estendibilità della diffusione.
Le app per la finanza e le operazioni vengono personalizzate mediante le estensioni, che consentono di aggiungere funzionalità agli elementi del modello e al codice sorgente nella Struttura a oggetti applicativi (AOT) usando Visual Studio.