Службы данных WCF
Оригинальный автор(ы) | Майкрософт |
---|---|
Первоначальный выпуск | 11 августа 2008 г |
Стабильная версия | 5.6.0
|
Операционная система | Microsoft Windows , Linux , MacOS |
Веб-сайт | документы |
WCF Службы данных (ранее ADO.NET Data Services , [ 1 ] кодовое имя «Астория» [ 2 ] ) — это платформа для того, что Microsoft называет службами данных . На самом деле это комбинация среды выполнения и веб-службы , через которую эти службы предоставляются. Он также включает набор инструментов Data Services Toolkit , который позволяет создавать Astoria Data Services изнутри самого ASP.NET . О проекте Astoria было объявлено на выставке MIX 2007, а первая предварительная версия для разработчиков была доступна 30 апреля 2007 года. Первая CTP-версия была доступна как часть предварительной версии расширений ASP.NET 3.5. Окончательная версия была выпущена как часть пакета обновления 1 .NET Framework 3.5 11 августа 2008 года. Об изменении названия с ADO.NET Data Services на WCF data Services было объявлено на PDC 2009 года .
Обзор
[ редактировать ]Службы данных WCF предоставляют данные, представленные как модели данных сущности объекты (EDM), через веб-службы, доступ к которым осуществляется через HTTP . К данным можно обращаться с помощью REST -подобного URI . Служба данных при доступе через метод HTTP GET с таким URI вернет данные. Веб-сервис можно настроить для возврата данных в формате XML , JSON или RDF+XML . В первоначальной версии такие форматы, как RSS и ATOM, не поддерживаются, хотя они могут появиться в будущем. Кроме того, данные также можно обновить, используя другие методы HTTP, такие как PUT, POST или DELETE. POST можно использовать для создания новых объектов, PUT для обновления объекта и DELETE для удаления объекта.
Описание
[ редактировать ]Windows Communication Foundation (WCF) приходит на помощь, когда мы обнаруживаем, что не можем достичь того, чего хотим, используя веб-службы, то есть поддержки других протоколов и даже дуплексной связи. С помощью WCF мы можем один раз определить нашу службу, а затем настроить ее таким образом, чтобы ее можно было использовать через HTTP, TCP, IPC и даже очереди сообщений. Мы можем использовать веб-службы, используя сценарии на стороне сервера (ASP.NET), нотации объектов JavaScript (JSON) и даже REST (передача репрезентативного состояния).
Понимание основ
Когда мы говорим, что службу WCF можно использовать для связи с использованием разных протоколов и из разных типов приложений, нам необходимо понять, как мы можем этого добиться. Если мы хотим использовать службу WCF из приложения, у нас возникает три основных вопроса:
1. Где находится служба WCF с точки зрения клиента? 2. Как клиент может получить доступ к услуге, т. е. к протоколам и форматам сообщений? 3. Какую функциональность сервис предоставляет клиентам?
Как только мы получим ответ на эти три вопроса, нам станет намного проще создавать и использовать службу WCF. В службе WCF используется концепция конечных точек. Служба WCF предоставляет конечные точки, которые клиентские приложения могут использовать для взаимодействия со службой WCF. Ответ на эти вопросы — это так называемая азбука служб WCF, которая фактически является основными компонентами службы WCF. Итак, давайте разберемся с каждым вопросом по отдельности.
Адрес. Как и веб-служба, служба WCF также предоставляет URI, который клиенты могут использовать для доступа к службе WCF. Этот URI называется адресом службы WCF. Это решит первую проблему: «где найти службу WCF?» для нас.
Привязка: как только мы сможем найти службу WCF, следует подумать о том, как взаимодействовать со службой (с точки зрения протокола). Привязка — это то, что определяет, как служба WCF обрабатывает связь. Он также может определять другие параметры связи, такие как кодировка сообщений и т. д. Это решит вторую проблему: «как взаимодействовать со службой WCF?» для нас.
Контракт: Теперь остался единственный вопрос о функциях, которые предоставляет служба WCF. Контракт — это то, что определяет общедоступные данные и интерфейсы, которые служба WCF предоставляет клиентам.
URI, представляющие данные, будут содержать физическое местоположение службы, а также имя службы. Также необходимо будет указать набор объектов EDM или конкретный экземпляр объекта, как в соответственно
http://dataserver/service.svc/MusicCollection
или
http://dataserver/service.svc/MusicCollection[SomeArtist]
В первом будут перечислены все объекты в наборе Collection , тогда как во втором будет перечислен только тот объект, который проиндексирован SomeArtist .
URI также могут указывать обход отношений в модели данных сущности. Например,
http://dataserver/service.svc/MusicCollection[SomeSong]/Genre
проходит связь Genre (на языке SQL объединяется с таблицей Genre ) и извлекает все экземпляры Genre , связанные с сущностью SomeSong . В URI также можно указать простые предикаты, например
http://dataserver/service.svc/MusicCollection[SomeArtist]/ReleaseDate[Year eq 2006]
получит элементы, проиндексированные SomeArtist и выпущенные в 2006 году . Информация о фильтрации и разделах также может быть закодирована в URL-адресе как
http://dataserver/service.svc/MusicCollection?$orderby=ReleaseDate&$skip=100&$top=50
Хотя наличие ключевых слов Skip и Top указывает на поддержку разбиения на страницы, в Data Services версии 1 нет метода определения количества доступных записей и, следовательно, невозможно определить, сколько страниц может быть. Спецификация OData 2.0 добавляет поддержку сегмента пути $count (чтобы вернуть только количество сущностей) и $inlineCount (чтобы получить количество сущностей на странице и общее количество без отдельного обратного прохождения....). [ 3 ]
Ссылки
[ редактировать ]- ^ «Упрощение нашей многоуровневой платформы разработки: сделать 3 вещи 1 вещью» . Блог группы служб данных ADO.NET. 17 ноября 2009 г. Проверено 17 декабря 2009 г.
- ^ «Выпущена CTP-версия служб данных ADO.NET!» . Проверено 12 ноября 2007 г.
- ^ Архив документов. «Что нового в службах данных WCF 5.0» . docs.Microsoft.com . Проверено 9 марта 2019 г.
- «Кодовое имя «Астория»: Службы данных для Интернета» . Проверено 30 апреля 2007 г.
Внешние ссылки
[ редактировать ]