Создание службы данных (краткое руководство по службам WCF Data Services)
В этой задаче на основе образца базы данных Northwind будет создан образец службы данных, предоставляющей канал Протокол Open Data Protocol (OData) . Задача включает следующие основные шаги.
Создание веб-приложения ASP.NET.
Определение модели данных с использованием средств для работы с моделью EDM.
Добавление службы данных в веб-приложение.
Разрешение доступа к службе данных.
Примечание |
---|
Веб-приложение ASP.NET, которое будет создано по завершении этого задания, работает под управлением ASP.NET Development Server, предоставленного Visual Studio.Для упрощения тестирования и устранения неисправностей службы данных во время разработки рассмотрите возможность работы приложения, размещающего службу данных, под управлением служб Internet Information Services (IIS).Дополнительные сведения см. в разделе Как разработать службу данных WCF Data Service, работающую на IIS. |
Создание веб-приложения ASP.NET
В Visual Studio в меню Файл последовательно выберите пункты Создать и Проект.
В диалоговом окне Создать проект выберите Visual Basic или Visual C# в качестве языка программирования.
В области Шаблоны выберите пункт Веб-приложение ASP.NET. Примечание. Если используется среда Visual Studio Web Developer, то вместо нового веб-приложения нужно будет создать новый веб-узел.
Введите NorthwindService в качестве названия проекта.
Нажмите кнопку ОК.
(Необязательно) Укажите конкретный номер порта для веб-приложения. Примечание. В оставшейся части этого краткого руководства используется номер порта
12345
.В обозревателе решений щелкните правой кнопкой мыши имя только что созданного проекта ASP.NET и выберите команду Свойства.
Выберите вкладку Веб и задайте в поле Определенный порт значение
12345
.
Определение модели данных
В обозревателе решений щелкните правой кнопкой мыши имя проекта ASP.NET и выберите команду Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Модель сущность-данные ADO.NET.
В качестве имени модели данных введите Northwind.edmx.
В мастере создания модели сущность-данные выберите Создать из базы данных и нажмите кнопку Далее.
Подключите модель данных к базе данных, выполнив одно из следующих действий, и затем нажмите кнопку Далее.
При отсутствии уже настроенного подключения базы данных выберите пункт Создать подключение и создайте новое подключение. Дополнительные сведения см. в разделе Как создать подключения к базам данных SQL Server. Этот экземпляр SQL Server должен содержать присоединенный образец базы данных Northwind.
— или —
Если имеется уже настроенное подключение к базе данных Northwind, выберите это подключение из списка.
На завершающей странице мастера установите флажки для всех таблиц базы данных и снимите флажки для представлений и хранимых процедур.
Чтобы закрыть мастер, нажмите кнопку Готово.
Примечание Эта сформированная модель данных предоставляет свойства внешнего ключа для типов сущности.Модели данных, созданные с помощью Visual Studio 2008, не включают эти свойства внешнего ключа.В связи с этим перед получением доступа к этой версии службы данных Northwind необходимо обновить клиентские классы службы данных любого клиентского приложения для доступа к службе данных, созданного с помощью среды Visual Studio 2008.
Создание службы данных
В обозревателе решений щелкните правой кнопкой мыши имя проекта ASP.NET и выберите команду Добавить новый элемент.
В диалоговом окне Добавление нового элемента выберите Служба данных ADO.NET.
В качестве имени службы укажите Northwind.
В Visual Studio для новой службы создаются файлы разметки и кодов XML. По умолчанию открывается окно редактора кода. В обозревателе решений для службы будет отображаться имя Northwind с расширением .svc.cs или .svc.vb.
В коде службы данных замените комментарий
/* TODO: put your data source class name here */
в определении класса, задающего службу данных, типом контейнера сущностей модели данных, который в данном случае равенNorthwindEntities
. Определение класса должно выглядеть следующим образом.Public Class Northwind Inherits DataService(Of NorthwindEntities)
public class Northwind : DataService<NorthwindEntities>
Включение доступа к ресурсам службы данных
В коде службы данных замените местозаполнитель в функции
InitializeService
следующим текстом.' Grant only the rights needed to support the client application. config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _ Or EntitySetRights.WriteMerge _ Or EntitySetRights.WriteReplace) config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _ Or EntitySetRights.AllWrite) config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
// Grant only the rights needed to support the client application. config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead | EntitySetRights.WriteMerge | EntitySetRights.WriteReplace ); config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead | EntitySetRights.AllWrite); config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
Это обеспечивает авторизованным клиентам доступ для чтения и записи к ресурсам указанных наборов сущностей.
Примечание Любой клиент, имеющий доступ к приложению ASP.NET, имеет также доступ к ресурсам, предоставляемым службой данных.Для предотвращения несанкционированного доступа к ресурсам производственной службы данных необходимо также установить защиту самого приложения.Дополнительные сведения см. в разделе Securing ASP.NET Web Sites.
Следующие шаги
Итак, мы успешно создали новую службу данных на основе образца базы данных Northwind, которая предоставляет канал OData , и включили доступ к каналу для клиентов, имеющих разрешения на выполнение веб-приложения ASP.NET. Теперь запустим эту службу данных из среды Visual Studio и обратимся к каналу OData с помощью запросов HTTP GET через веб-обозреватель.
Доступ к службе из веб-обозревателя