Службы данных 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 г.
Внешние ссылки
[ редактировать ]