Übersicht
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Übersicht über WCF Data Services

 

WCF Data Services ermöglicht mithilfe des Open Data Protocol (OData) das Erstellen und Verwenden von Datendiensten für das Internet oder ein Intranet. Mit OData können Sie Daten als Ressourcen verfügbar machen, die mit URIs adressierbar sind. Dies ermöglicht es Ihnen, mit der REST-Semantik (Representational State Transfer) und insbesondere mit den standardmäßigen HTTP-Verben GET, PUT, POST und DELETE auf Daten zuzugreifen und Daten zu ändern. Dieses Thema bietet eine Übersicht über die in OData definierten Muster und Methoden und die von WCF Data Services bereitgestellten Funktionen, mit denen OData in .NET Framework-basierten Anwendungen verwendet werden kann.

OData macht Daten als Ressourcen verfügbar, die anhand von URIs adressiert werden können. Die Ressourcenpfade werden basierend auf den Entitätsbeziehungskonventionen des Entity Data Model erstellt. In diesem Modell stellen Entitäten Operationseinheiten von Daten in einer Anwendungsdomäne dar, z. B. Kunden, Bestellungen, Artikel und Produkte. Weitere Informationen finden Sie unter Entity Data Model.

In OData werden Entitätsressourcen als Entitätenmenge adressiert, der Instanzen von Entitätstypen enthält. So gibt beispielsweise der URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders alle Bestellungen des Northwind-Datendiensts zurück, die mit dem Kunden mit dem CustomerID-Wert ALFKI. verknüpft sind.

Mit Abfrageausdrücken können Sie herkömmliche Abfragevorgänge für Ressourcen ausführen, z. B. Filtern, Sortieren und Paging. Der URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=Freight gt 50 filtert z. B. die Ressourcen, um nur die Bestellungen mit Frachtkosten von über 50 Dollar zurückzugeben. Weitere Informationen finden Sie unter Zugreifen auf Datendienstressourcen (WCF Data Services).

OData beruht auf Standardinternetprotokollen, um die Interaktion von Datendiensten mit Anwendungen, die .NET Framework nicht verwenden, zu ermöglichen. Da Sie Daten mithilfe von Standard-URIs adressieren können, kann die Anwendung mit der REST-Semantik ( Representational State Transfer), speziell mit den Standard-HTTP-Verben GET, PUT, POST und DELETE, auf Daten zugreifen und diese ändern. Dies ermöglicht Ihnen den Zugriff auf diese Dienste von einem Client, der über Standard-HTTP-Protokolle übertragene Daten analysieren und darauf zugreifen kann.

OData definiert einen Satz von Erweiterungen für das Atom Publishing Protocol (AtomPub). HTTP-Anforderungen und -Antworten werden in mehreren Datenformaten unterstützt, um verschiedene Clientanwendungen und -plattformen zu unterstützen. Ein OData-Feed kann Daten in Atom, JavaScript Object Notation (JSON) und als einfaches XML darstellen. Atom ist zwar das Standardformat, das Format des Feeds wird jedoch im Header der HTTP-Anforderung angegeben. Weitere Informationen finden Sie unter OData: Atom-Format und OData: JSON-Format.

Beim Veröffentlichen von Daten als OData-Feed erfordert WCF Data Services für Vorgänge wie das Zwischenspeichern und die Authentifizierung weitere vorhandene Internetfunktionen. Hierzu wird WCF Data Services in vorhandene Hostinganwendungen und Dienste integriert, z. B. ASP.NET, Windows Communication Foundation (WCF) und Internetinformationsdienste (IIS).

Obwohl Ressourcen auf Grundlage eines Entitätsbeziehungsmodells adressiert werden, macht WCF Data Services OData-Feeds unabhängig von der zugrunde liegenden Datenquelle verfügbar. Nachdem WCF Data Services eine HTTP-Anforderung für eine von einem URI identifizierte Ressource akzeptiert hat, wird die Anforderung deserialisiert, und eine Darstellung dieser Anforderung wird an einen WCF Data Services-Anbieter übergeben. Dieser Anbieter übersetzt die Anforderung in ein datenquellenspezifisches Format und führt die Anforderung für die zugrunde liegende Datenquelle aus. WCF Data Services erreicht Speicherunabhängigkeit, indem das konzeptionelle Modell, das von OData vorgeschriebene Ressourcen adressiert, vom spezifischen Schema der zugrunde liegenden Datenquelle getrennt wird.

WCF Data Services ist in ADO.NET Entity Framework integriert, sodass Sie Datendienste erstellen können, die relationale Daten verfügbar machen. Sie können die Entity Data Model-Tools verwenden, um ein Datenmodell zu erstellen, das adressierbare Ressourcen als Entitäten enthält, und gleichzeitig die Zuordnung zwischen diesem Modell und den Tabellen in der zugrunde liegenden Datenbank definieren. Weitere Informationen finden Sie unter Entity Framework-Anbieter (WCF Data Services).

WCF Data Services ermöglicht außerdem das Erstellen von Datendiensten, die alle Datenstrukturen verfügbar machen, die eine Implementierung der IQueryable<T>-Schnittstelle zurückgeben. Dies ermöglicht das Erstellen von Datendiensten, die Daten aus .NET Framework-Typen verfügbar machen. Erstellungs-, Aktualisierungs- und Löschvorgänge werden unterstützt, wenn Sie außerdem die IUpdatable-Schnittstelle implementieren. Weitere Informationen finden Sie unter Reflektionsanbieter (WCF Data Services).

Ein Beispiel für die Integration von WCF Data Services in diesen Datenanbietern finden Sie im Architekturdiagramm weiter unten in diesem Thema.

WCF Data Services vereinfacht das Hinzufügen benutzerdefinierter Geschäftslogik zu einem Datendienst mithilfe von Dienstvorgängen und Interceptors. Dienstvorgänge sind auf dem Server definierte Methoden, die genau wie Datenressourcen über URIs adressierbar sind. Für Dienstvorgänge kann auch Abfrageausdruckssyntax zum Filtern, Sortieren und Paging der von einem Vorgang zurückgegebenen Daten verwendet werden. Der URI http://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$orderby=OrderDate&$top=10&$skip=10 stellt z. B. einen Aufruf des Dienstvorgangs mit dem Namen GetOrdersByCity im Northwind-Datendienst dar, der Aufträge für Kunden aus London mit nach OrderDate sortierten Seitenergebnissen zurückgibt. Weitere Informationen finden Sie unter Dienstvorgänge (WCF Data Services).

Mit Interceptoren können Sie eine benutzerdefinierte Anwendungslogik in die Verarbeitung von Anforderungs- oder Antwortnachrichten durch einen Datendienst integrieren. Interceptors werden aufgerufen, wenn für die angegebene Entitätenmenge ein Abfrage-, Einfüge-, Aktualisierungs- oder Löschvorgang durchgeführt wird. Dadurch kann ein Interceptor die Daten ändern, eine Autorisierungsrichtlinie erzwingen oder sogar den Vorgang beenden. Interceptormethoden müssen explizit für eine bestimmte Entitätenmenge, die von einem Datendienst zur Verfügung gestellt wird, registriert werden. Weitere Informationen finden Sie unter Interceptoren (WCF Data Services).

OData definiert eine Reihe einheitlicher Muster zum Interagieren mit Datendiensten. Dies ermöglicht das Erstellen wiederverwendbarer Komponenten auf Grundlage dieser Dienste, z. B. clientseitiger Bibliotheken, die die Verwendung dieser Datendienste erleichtern.

WCF Data Services enthält Clientbibliotheken sowohl für .NET Framework-basierte als auch für Silverlight-basierte Clientanwendungen. Diese Clientbibliotheken ermöglichen die Interaktion mit Datendiensten mithilfe von .NET Framework-Objekten. Zudem werden objektbasierte Abfragen und LINQ-Abfragen, das Laden verknüpfter Objekte, die Änderungsnachverfolgung und die Identitätsauflösung unterstützt. Weitere Informationen finden Sie unter WCF Data Services-Clientbibliothek.

Neben den in .NET Framework und Silverlight enthaltenen OData-Clientbibliotheken sind weitere Clientbibliotheken verfügbar, mit denen Sie einen OData-Feed in Clientanwendungen nutzen können, z. B. PHP-, AJAX- und Java-Anwendungen. Weitere Informationen finden Sie unter OData SDK.

Das folgende Diagramm veranschaulicht die WCF Data Services-Architektur zum Verfügbarmachen von OData-Feeds und zur Verwendung dieser Feeds in OData-fähigen Clientbibliotheken:

WCF Data Services-Architekturdiagramm
Anzeigen:
© 2016 Microsoft