Vue d'ensemble de WCF Data Services
Services de données WCF permet de créer et de consommer des services de données pour le Web ou un Intranet à l'aide du protocole Protocole OData (Open Data). OData vous permet d'exposer vos données sous forme de ressources adressables par des URI. Cela vous permet d'accéder aux données et de les modifier à l'aide de la sémantique REST (representational state transfer), spécifiquement, les verbes HTTP standard GET, PUT, POST et DELETE. Cette rubrique inclut une vue d'ensemble des modèles et des pratiques définis par OData ainsi que des fonctionnalités fournies par Services de données WCF pour tirer parti de OData dans les applications basées sur .NET Framework.
Adresser des données comme ressources
OData expose les données comme ressources adressables par des URI. Les chemins d'accès aux ressources sont construits selon les conventions de relation d'entité de l'Entity Data Model. Dans ce modèle, les entités représentent des unités opérationnelles de données dans un domaine d'application, par exemple les clients, les commandes, les éléments et les produits. Pour plus d'informations, consultez Entity Data Model.
Dans OData, vous adressez des ressources d'entité comme un jeu d'entités qui contient des instances de types d'entité. Par exemple, l'URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders retourne toutes les commandes du service de données Northwind qui sont associées au client ayant une valeur CustomerID équivalente à ALFKI.
Les expressions de requête vous permettent d'effectuer des opérations de requête traditionnelles sur des ressources, telles que filtrer, trier et paginer. Par exemple, l'URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=Freight gt 50 filtre les ressources de façon à retourner uniquement les commandes dont le coût de fret est supérieur à 50 $. Pour plus d'informations, consultez Accès à un service OData (WCF Data Services).
Accès aux données interopérables
OData tire parti des protocoles Internet standard pour rendre les services de données interactifs avec les applications qui n'utilisent pas .NET Framework. Comme vous pouvez faire appel à des URI standard pour adresser des données, votre application peut accéder à des données et les modifier en utilisant la sémantique REST, en particulier les verbes HTTP standard GET, PUT, POST et DELETE. De cette manière, vous pouvez accéder à ces services depuis tout client qui peut analyser et accéder aux données transmises sur des protocoles HTTP standard.
OData définit un jeu d'extensions au protocole AtomPub. Il prend en charge les requêtes et les réponses HTTP sous plusieurs formats de données pour prendre en charge des plateformes et des applications clientes diverses. Un flux OData peut représenter des données dans Atom, JSON (JavaScript Object Notation), et sous forme de XML ordinaire. Bien qu'Atom soit le format par défaut, le format du flux est spécifié dans l'en-tête de la requête HTTP. Pour plus d'informations, consultez OData : Format Atom et OData : Format JSON.
Lors de la publication de données sous forme de flux OData, Services de données WCF s'appuie sur d'autres outils Internet existants pour ce type d'opération, comme la mise en cache et l'authentification. Pour cela, Services de données WCF s'intègre avec des applications et des services d'hébergement existants, tels qu'ASP.NET, WCF (Windows Communication Foundation) et IIS (Internet Information Services). La sérialisation et la désérialisation des messages OData est effectuée à l'aide de la bibliothèque OData. Si votre service ou application Web fournit déjà des fonctions de messagerie HTTP, envisagez d'utiliser directement la bibliothèque OData pour sérialiser et désérialiser les messages compatibles OData. Pour plus d'informations, consultez Bibliothèque OData.
Indépendance de stockage
Bien que les ressources soient adressées selon un modèle de relation d'entité, Services de données WCF expose les flux OData indépendamment de la source de données. Après l'acceptation par Services de données WCF d'une demande HTTP pour une ressource identifiée par un URI, la demande est désérialisée et une représentation de cette demande est passée à un fournisseur Services de données WCF. Ce fournisseur traduit la requête dans un format spécifique à la source de données et exécute la requête sur la source de données sous-jacente. Services de données WCF effectue l'indépendance de stockage en séparant le modèle conceptuel qui adresse des ressources prescrites par OData du schéma spécifique de la source de données sous-jacente.
Services de données WCF s'intègre à ADO.NET Entity Framework pour vous permettre de créer des services de données qui exposent des données relationnelles. Vous pouvez utiliser les outils Entity Data Model pour créer un modèle de données qui contient des ressources adressables en tant qu'entités et définir en même temps le mappage entre ce modèle et les tables dans la base de données sous-jacente. Pour plus d'informations, consultez Fournisseur Entity Framework (WCF Data Services).
Services de données WCF vous permet également de créer des services de données qui exposent les structures de données qui retournent une implémentation de l'interface IQueryable<T>. De cette manière, vous pouvez créer des services de données qui exposent des données à partir de types .NET Framework. Les opérations de création, de mise à jour et de suppression sont prises en charge lorsque vous implémentez également l'interface IUpdatable. Pour plus d'informations, consultez Fournisseur de réflexion (WCF Data Services). En implémentant un jeu d'interfaces personnalisées de fournisseurs de services de données, vous pouvez utiliser Services de données WCF pour publier des données depuis n'importe quelle source, même lorsque le modèle de données est connu uniquement lors de l'exécution. Pour plus d'informations, consultez Fournisseurs de services de données personnalisés (WCF Data Services).
Pour voir comment Services de données WCF s'intègre avec ces fournisseurs de données, consultez le diagramme architectural plus loin dans cette rubrique.
Logique métier personnalisée
Services de données WCF facilite l'ajout d'une logique métier personnalisée à un service de données via des opérations de service et des intercepteurs. Les opérations de service sont des méthodes définies sur le serveur qui sont adressables par des URI sous la même forme que des ressources de données. Les opérations de service peuvent également utiliser la syntaxe d'expression de requête pour filtrer, classer et paginer des données retournées par une opération. Par exemple, l'URI https://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$orderby=OrderDate&$top=10&$skip=10 représente un appel à une opération de service nommée GetOrdersByCity sur le service de données Northwind qui retourne des commandes de clients de Londres et des résultats paginés triés par OrderDate. Pour plus d'informations, consultez Opérations de service (WCF Data Services).
Les actions de service représentent un type spécial d'opération ; elles peuvent être liées à des ressources de service de données et ont un impact sur le système. Pour plus d'informations, consultez Utilisation des actions OData pour implémenter le comportement côté serveur.
Les intercepteurs permettent à la logique d'application personnalisée d'être intégrée dans le traitement des messages de réponse ou de demande par un service de données. Les intercepteurs sont appelés lorsqu'une action de requête, d'insertion, de mise à jour ou de suppression a lieu dans le jeu d'entités spécifié. Un intercepteur peut alors modifier les données, appliquer la stratégie d'autorisation ou même mettre fin à l'opération. Les méthodes d'intercepteur doivent être enregistrées explicitement pour un jeu d'entités donné exposé par un service de données. Pour plus d'informations, consultez Intercepteurs (WCF Data Services).
Bibliothèque clientes
OData définit un jeu de modèles uniformes pour l'interaction avec les services de données. Ainsi, il est possible de créer des composants réutilisables selon ces services, comme des bibliothèques côté client qui simplifient la consommation de ces services de données.
Services de données WCF inclut des bibliothèques clientes pour les applications clientes .NET Framework et Silverlight. Ces bibliothèques clientes vous permettent d'interagir avec les services de données en utilisant des objets .NET Framework. Elles prennent également en charge des requêtes basées sur des objets et des requêtes LINQ, le chargement des objets connexes, le suivi des modifications et la résolution d'identité. Pour plus d'informations, consultez Client de données (WCF Data Services).
Outre les bibliothèques clientes OData fournies avec le .NET Framework et avec Silverlight, il existe d'autres bibliothèques clientes qui vous permettent d'utiliser un flux OData dans une application cliente, telle que des applications PHP, Java et iOS. Les développeurs d'applications JavaScript peuvent être intéressés par la bibliothèque datajs pour la consommation d'OData.
Vue d'ensemble de l'architecture
Le diagramme suivant illustre l'architecture Services de données WCF pour l'exposition des flux OData et leur utilisation dans les bibliothèques clientes OData :
Voir aussi
Autres ressources
Mise en route de WCF Data Services
Services de données (WCF Data Services)
Accessing a Data Service (WCF Data Services)