Общие сведения о службах WCF Data Services

Службы Службы WCF Data Services позволяют создавать и использовать службы данных для Интернета и интрасети с помощью Протокол Open Data Protocol (OData). Службы OData позволяют предоставлять данные в качестве ресурсов, доступ к которым осуществляется с помощью URI. Это позволяет обращаться к данным и изменять данные с помощью семантики REST, особенно для таких команд стандарта HTTP, как GET, PUT, POST и DELETE. В этом разделе приведен обзор обоих шаблонов и рекомендации для OData, а также возможности Службы WCF Data Services по использованию OData в приложениях на базе .NET.

Адресация данных в виде ресурсов

OData предоставляет данные в качестве ресурсов, на которые могут указывать URI. Пути к ресурсам составляются на основе соглашений о связях сущностей модели EDM. Сущности в этой модели представляют операционные единицы данных в домене приложения, таких как клиенты, заказы, элементы и продукты. Дополнительные сведения см. в разделе Entity Data Model.

Адресация ресурсов сущностей в службах OData осуществляется в виде набора сущностей, содержащего экземпляры типов сущностей. Например, следующий URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders возвращает все заказы из службы данных Northwind, связанной с клиентом, параметру CustomerID которого задано значение ALFKI..

Выражения запросов позволяют выполнять традиционные операции с запросами к ресурсам, такие как фильтрация, сортировка и подкачка страниц. Например, URI http://services.odata.org/Northwind/Northwind.svc/Customers('ALFKI')/Orders?$filter=Freight gt 50 фильтрует ресурсы, возвращая только заказы со стоимостью транспортировки, превышающей 50 долларов. Дополнительные сведения см. в разделе Доступ к службе OData (WCF Data Services).

Доступ к данным с возможностью взаимодействия

В сборках OData для обеспечения взаимодействия службы данных с приложениями, которые не используют платформу .NET Framework, используются стандартные протоколы Интернета. Возможность использования стандартных URI для адресации данных позволяет приложению обращаться к данным и изменять их с использованием семантики REST, в частности стандартных команд HTTP, таких как GET, PUT, POST и DELETE. Это позволяет обращаться к службам из любого клиента, поддерживающего синтаксический анализ и доступ к данным, передаваемым по стандартным протоколам HTTP.

OData определяет набор расширений для протокола публикации Atom (AtomPub). Он поддерживает запросы и ответы HTTP в нескольких форматах данных, что позволяет использовать различные клиентские приложения и платформы. Канал OData может представлять данные в формате Atom, формате нотации объектов JavaScript (JSON) и в виде простого XML. Atom является форматом по умолчанию. Формат канала указывается в заголовке HTTP-запроса. Дополнительные сведения см. в разделах OData: формат Atom и OData: формат JSON.

При публикации данных в виде канала OData для таких операций, как кэширование и проверка подлинности службы Службы WCF Data Services, используют другие существующие возможности Интернета. В этих целях Службы WCF Data Services интегрируется с существующими приложениями и службами внешнего размещения, в том числе ASP.NET, Windows Communication Foundation (WCF) и Internet Information Services (IIS). Сериализация и десериализация сообщений OData осуществляется библиотекой OData. Если веб-приложение или служба уже предоставляет возможности обмена сообщениями через HTTP, следует рассмотреть возможность прямого использования библиотеки OData для сериализации и десериализации сообщений, соответствующих требованиям OData. Дополнительные сведения см. в разделе Библиотека OData.

Независимость хранения

Хотя ресурсы адресуются на базе модели EDM, службы Службы WCF Data Services предоставляют каналы OData независимо от базового источника данных. После того как службы Службы WCF Data Services принимают HTTP-запрос на ресурс, идентифицируемый URI, этот запрос десериализуется и представление запроса передается поставщику Службы WCF Data Services. Этот поставщик переводит запрос в формат, относящийся к конкретному источнику данных, и выполняет его в базовом источнике данных. В службах Службы WCF Data Services независимость хранилища достигается путем отделения концептуальной модели, адресующей ресурсы по протоколу OData, от конкретной схемы базового источника данных.

Службы Службы WCF Data Services интегрируются со средой ADO.NET Entity Framework, позволяя создавать службы данных, предоставляющие реляционные данные. Для создания модели данных, содержащей адресуемые ресурсы в виде сущностей и в то же время определяющей сопоставление между этой моделью и таблицами нижележащей базы данных, можно использовать программы для работы с моделью EDM. Дополнительные сведения см. в разделе Поставщик Entity Framework (службы WCF Data Services).

Службы Службы WCF Data Services позволяют создавать службы данных, предоставляющие любые структуры данных, которые возвращают реализацию интерфейса IQueryable<T>. Это позволяет создавать службы данных, предоставляющие данные из типов .NET Framework. Для поддержки операций создания, обновления и удаления должен быть также реализован интерфейс IUpdatable. Дополнительные сведения см. в разделе Поставщик отражения (службы WCF Data Services). Благодаря реализации набора индивидуальных интерфейсов поставщиков служб данных Службы WCF Data Services можно использовать для предоставления данных из любых источников, даже если модель данных известна лишь в процессе выполнения. Дополнительные сведения см. в разделе Специализированные поставщики служб данных (службы WCF Data Services).

Интеграция Службы WCF Data Services с этими поставщиками данных проиллюстрирована на архитектурной диаграмме далее в этом разделе.

Пользовательская бизнес-логика

Службы Службы WCF Data Services упрощают добавление пользовательской бизнес-логики в службу данных с помощью перехватчиков и операций службы. Операции службы — это методы, определенные на сервере и адресуемые с помощью URI в том же формате, что и ресурсы данных. В работе службы также может использоваться синтаксис выражений запросов для фильтрации, упорядочения и разбивки на страницы данных, возвращенных операцией. Например, URI https://localhost:12345/Northwind.svc/GetOrdersByCity?city='London'&$orderby=OrderDate&$top=10&$skip=10 представляет вызов операции службы с именем GetOrdersByCity в службе данных Northwind, возвращающей заказы клиентов из Лондона, с разбиением результатов на страницы и сортировкой по OrderDate. Дополнительные сведения см. в разделе Операции службы (службы WCF Data Services).

Действия службы представляют собой особый тип операций, которые могут быть привязаны к ресурсам службы данных и оказывать влияние на систему. Дополнительные сведения см. в разделе Использование действий OData для реализации поведения на стороне сервера..

Перехватчики позволяют разработчику интегрировать настраиваемую прикладную логику в процесс обработки запросов и ответов службы данных. Перехватчики вызываются при выполнении операции запроса, вставки, обновления или удаления над указанным набором сущностей. При этом перехватчик может изменить данные, применить политику авторизации и даже преждевременно завершить операцию. Методы перехватчика необходимо явно регистрировать для конкретного набора сущностей, предоставляемого службой данных. Дополнительные сведения см. в разделе Перехватчики (службы WCF Data Services).

Клиентские библиотеки

Службы OData определяют набор универсальных шаблонов для взаимодействия со службами данных. Это позволяет создавать на основе этих служб повторно используемые компоненты, включая клиентские библиотеки, упрощающие использование служб данных.

Службы Службы WCF Data Services включают клиентские библиотеки для клиентских приложений как на основе .NET Framework, так и на основе Silverlight. Эти клиентские библиотеки позволяют взаимодействовать со службами данных с помощью объектов .NET Framework. Кроме того, они поддерживают запросы на базе объектов и запросы LINQ, загрузку связанных объектов, отслеживание изменений и разрешение идентификаторов. Дополнительные сведения см. в разделе Данные клиента (WCF Data Services).

Помимо клиентских библиотек OData в составе платформ .NET Framework и Silverlight имеются также другие клиентские библиотеки, позволяющие использовать веб-канал OData в клиентских приложениях, в том числе на основе PHP, Java и iOS. Разработчиков приложений на Javascript может заинтересовать библиотека datajs, предназначенная для использования OData.

Общие сведения об архитектуре

На следующей диаграмме показана архитектура Службы WCF Data Services для предоставления веб-каналов OData и их использования в клиентских библиотеках, поддерживающих OData.

Схема архитектуры служб WCF Data Services

См. также

Другие ресурсы

Службы WCF Data Services

Приступая к работе со службами WCF Data Services

Служба данных (WCF Data Services)

Accessing a Data Service (WCF Data Services)

Данные клиента (WCF Data Services)

Передача состояния представления (REST)