Partager via


Architecture de syndication

L'API de syndication est conçue pour fournir un modèle de programmation neutre en ce qui concerne le format qui autorise l'écriture du contenu syndiqué sur le fil dans divers formats. Le modèle de données abstrait inclut les classes suivantes :

Ces classes mappent précisément aux constructions définies dans la spécification Atom 1.0, bien que certains noms soient différents.

Dans Windows Communication Foundation (WCF), les flux de syndication sont modelés comme tout autre type d'opération de service, où le type de retour est l'une des classes dérivées de SyndicationFeedFormatter. La récupération d'un flux est modelée comme un échange de messages de demande-réponse. Un client envoie une demande au service et le service répond. Le message de demande est défini sur un protocole d'infrastructure (par exemple, HTTP brut) et le message de réponse contient une charge utile qui se compose d'un format de syndication (RSS 2.0 ou Atom 1.0) communément compris. Les services qui implémentent ces échanges de messages sont appelés « services de syndication ».

Le contrat pour un service de syndication se compose d'un jeu d'opérations qui retourne une instance de la classe SyndicationFeedFormatter. L'exemple suivant montre une déclaration d'interface pour un service de syndication.

La prise en charge de la syndication est construite sur le modèle de programmation Web de WCF qui définit la liaison WebHttpBinding utilisée conjointement à WebHttpBehavior pour rendre les flux disponibles en tant que services. Pour plus d'informations sur le modèle de programmation Web de WCF, consultez Vue d'ensemble du modèle de programmation Web WCF.

Bb412203.note(fr-fr,VS.90).gifRemarque :
La spécification Atom 1.0 permet de spécifier des fractions de seconde dans l'un de ses constructeurs Date. Lors de la sérialisation et de la désérialisation, l'implémentation WCF ignore les fractions de seconde.

Modèle objet

Le modèle objet pour la syndication se compose de groupes de classes répertoriés dans les tableaux suivants.

Classes de formatage :

Classe Description

Atom10FeedFormatter

Classe chargée de sérialiser une instance SyndicationFeed au format Atom 1.0.

Atom10FeedFormatter

Classe chargée de sérialiser des classes dérivées de SyndicationFeed au format Atom 1.0.

Atom10ItemFormatter

Classe chargée de sérialiser une instance SyndicationItem au format Atom 1.0.

Atom10ItemFormatter

Classe chargée de sérialiser des classes dérivées de SyndicationItem au format Atom 1.0.

Rss20FeedFormatter

Classe chargée de sérialiser une instance SyndicationFeed au format RSS 2.0.

Rss20FeedFormatter

Classe chargée de sérialiser des classes dérivées de SyndicationFeed au format RSS 2.0.

Rss20ItemFormatter

Classe chargée de sérialiser une instance SyndicationItem au format RSS 2.0.

Rss20ItemFormatter

Classe chargée de sérialiser des classes dérivées de SyndicationItem au format RSS 2.0.

Classes de modèle objet :

Classe Description

SyndicationCategory

Classe qui représente la catégorie d'un flux de syndication.

SyndicationContent

Classe de base qui représente le contenu de syndication.

SyndicationElementExtension

Classe représentant une extension d'élément de syndication.

SyndicationElementExtensionCollection

Collection d'objets SyndicationElementExtension.

SyndicationFeed

Classe qui représente un objet de flux de niveau supérieur.

SyndicationItem

Classe qui représente un élément de flux.

SyndicationLink

Classe qui représente un lien dans un flux ou un élément de syndication.

SyndicationPerson

Classe qui représente une construction Atom Person.

SyndicationVersions

Classe qui représente les versions du protocole de syndication prises en charge.

TextSyndicationContent

Classe qui représente tout contenu SyndicationItem à afficher pour un utilisateur final.

TextSyndicationContentKind

Énumération qui représente les différents types de contenu de syndication de texte pris en charge.

UrlSyndicationContent

Classe qui représente un contenu de syndication qui se compose d'une URL à une autre ressource.

XmlSyndicationContent

Classe qui représente un contenu de syndication qui ne sera pas affiché dans un navigateur.

Les abstractions des données principales dans le modèle objet sont Flux et Élement, qui correspondent aux classes SyndicationFeed et SyndicationItem. Un flux expose des métadonnées (par exemple, Title, Description et Author) au niveau du flux, un emplacement pour stocker des extensions inconnues et un jeu d'éléments qui composent le reste du contenu d'information du flux. Un élément met à disposition les métadonnées (par exemple, Title, Summary et PublicationDate) au niveau de l'élément, un emplacement pour stocker des extensions inconnues et un élément de contenu qui contient le reste du contenu d'information de l'élément. Les abstractions principales de Flux et Élément sont prises en charge par des classes supplémentaires qui représentent des constructions de données communes référencées dans les spécifications Atom 1.0 et RSS.

Les informations contenues dans une instance de flux peuvent être converties en divers formats XML. Le processus de conversion vers et depuis XML est géré par la classe SyndicationFeedFormatter. Cette classe est abstraite ; les implémentations concrètes sont fournies pour Atom 1.0 et RSS 2.0, Atom10FeedFormatter et Rss20FeedFormatter. Pour utiliser des classes Feed dérivées, utilisez Atom10FeedFormatter ou Rss20FeedFormatter car ils vous permettent de spécifier une classe Feed dérivée. Pour utiliser des classes d'élément dérivées utilisez Atom10ItemFormatter ou Rss20ItemFormatter car ils vous permettent de spécifier une classe d'élément dérivée. Les tiers peuvent dériver leur propre implémentation de SyndicationFeedFormatter pour prendre en charge des formats de syndication différents.

Extensibilité

  • L'une des fonctionnalités clés de protocoles de syndication est l'extensibilité. Atom 1.0 et RSS 2.0 vous permettent d'ajouter aux flux de syndication des attributs et des éléments qui ne sont pas définis dans les spécifications. Le modèle de programmation de la syndication WCF offre deux moyens d'utiliser des attributs personnalisés et des extensions : la dérivation d'une nouvelle classe et l'accès faiblement typé. Pour plus d'informations, consultez Extensibilité de la syndication.

Voir aussi

Concepts

Vue d'ensemble de la syndication WCF
Comment le modèle objet Syndication WCF est mappé à Atom et RSS