- Пошаговое руководство. Создание простой службы WCF в Windows Forms Walkthrough: Create a simple WCF service in Windows Forms
- Создание службы Create a service
- Тестирование службы Test the service
- Доступ к службе Access the Service
- Ссылка на службу WCF Reference the WCF service
- Создайте клиентское приложение Build a client application
- Создание службы данных Create the data service
- Создание веб-приложения ASP.NET Create the ASP.NET web app
- Определение модели данных Define the data model
- Создание службы данных WCF Create the WCF data service
- Разрешение доступа к ресурсам службы данных Enable access to data service resources
Пошаговое руководство. Создание простой службы WCF в Windows Forms Walkthrough: Create a simple WCF service in Windows Forms
В этом пошаговом руководстве показано, как создать простую службу Windows Communication Foundation (WCF), проверить ее, а затем получить к ней доступ из Windows Forms приложения. This walkthrough demonstrates how to create a simple Windows Communication Foundation (WCF) service, test it, and then access it from a Windows Forms application.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в этой статье. Your computer might show different names or locations for some of the Visual Studio user interface elements in this article. Возможно, вы используете другой выпуск Visual Studio или другие параметры среды. You may be using a different edition of Visual Studio or different environment settings. Дополнительные сведения см. в разделе Персонализация среды IDE. For more information, see Personalize the IDE.
Создание службы Create a service
- Запустите Visual Studio. Open Visual Studio.
В меню Файл щелкните Создать > Проект. On the File menu, choose New > Project.
В диалоговом окне Новый проект разверните узел Visual Basic или Visual C# и выберите WCF, а затем — библиотеку служб WCF. In the New Project dialog box, expand the Visual Basic or Visual C# node and choose WCF, followed by WCF Service Library.
Чтобы создать проект, нажмите кнопку ОК . Click OK to create the project.
На начальном экране выберите Создать проект. On the start window, choose Create a new project.
Введите библиотеку служб WCF в поле поиска на странице Создание нового проекта . Type wcf service library in the search box on the Create a new project page. Выберите шаблон C# или Visual Basic для библиотеки службы WCF, а затем нажмите кнопку Далее. Select either the C# or Visual Basic template for WCF Service Library, and then click Next.
Если шаблоны не отображаются, может потребоваться установить компонент Windows Communication Foundation Visual Studio. If you don’t see any templates, you may need to install the Windows Communication Foundation component of Visual Studio. Выберите установить дополнительные инструменты и компоненты , чтобы открыть Visual Studio Installer. Choose Install more tools and features to open Visual Studio Installer. Перейдите на вкладку отдельные компоненты , прокрутите вниз до пункта действия разработки, а затем выберите Windows Communication Foundation. Choose the Individual components tab, scroll down to Development activities, and then select Windows Communication Foundation. Нажмите кнопку Изменить. Click Modify.
На странице Настройка нового проекта нажмите кнопку создать. On the Configure your new project page, click Create.
Будет создана работающая служба, которую можно протестировать и использовать. This creates a working service that can be tested and accessed. Следующие два действия демонстрируют, как можно изменить метод по умолчанию для использования другого типа данных. The following two steps demonstrate how you might modify the default method to use a different data type. В реальном приложении необходимо также добавить к службе ее специальные функции. In a real application, you would also add your own functions to the service.
В Обозреватель решений дважды щелкните IService1. vb или IService1. CS. In Solution Explorer, double-click IService1.vb or IService1.cs.
Найдите следующую строку: Find the following line:
Измените тип value параметра на String: Change the type for the value parameter to string:
В приведенном выше коде обратите внимание на атрибуты или [OperationContract] . In the above code, note the or [OperationContract] attributes. Эти атрибуты обязательны для любого метода, предоставляемого службой. These attributes are required for any method exposed by the service.
В Обозреватель решений дважды щелкните Service1. vb или Service1. CS. In Solution Explorer, double-click Service1.vb or Service1.cs.
Найдите следующую строку: Find the following line:
Измените тип value параметра на String: Change the type for the value parameter to string:
Тестирование службы Test the service
Нажмите клавишу F5, чтобы запустить службу. Press F5 to run the service. Откроется форма тестового клиента WCF , которая загружает службу. A WCF Test Client form appears and loads the service.
В форме Тестовый клиент WCF дважды щелкните метод GetData() в разделе IService1. In the WCF Test Client form, double-click the GetData() method under IService1. Откроется вкладка GetData . The GetData tab appears.
В диалоговом окне Запрос выберите поле Значение и введите Hello . In the Request box, select the Value field and type Hello .
Нажмите кнопку Вызвать. Click the Invoke button. Если появится диалоговое окно » предупреждение системы безопасности «, нажмите кнопку ОК. If a Security Warning dialog box appears, click OK. Результат отобразится в поле ответ . The result displays in the Response box.
В меню Файл щелкните Выход, чтобы закрыть тестовую форму. On the File menu, click Exit to close the test form.
Доступ к службе Access the Service
Ссылка на службу WCF Reference the WCF service
В меню файл выберите команду Добавить , а затем — Новый проект. On the File menu, point to Add and then click New Project.
В диалоговом окне Новый проект разверните узел Visual Basic или Visual C# , выберите пункт Windows, а затем выберите Windows Forms приложение. In the New Project dialog box, expand the Visual Basic or Visual C# node, select Windows, and then select Windows Forms Application. Нажмите кнопку ОК, чтобы открыть проект. Click OK to open the project.
Щелкните правой кнопкой мыши WindowsApplication1 и выберите команду Добавить ссылку на службу. Right-click WindowsApplication1 and click Add Service Reference. Откроется диалоговое окно Добавить ссылку на службу. The Add Service Reference dialog box appears.
В диалоговом окне Добавление ссылки на службу выберите Найти. In the Add Service Reference dialog box, click Discover.
Service1 отображается в области службы . Service1 displays in the Services pane.
Нажмите кнопку ОК, чтобы добавить ссылку на службу. Click OK to add the service reference.
Создайте клиентское приложение Build a client application
В Обозревателе решений дважды щелкните Form1.vb или Form1.cs, чтобы открыть конструктор Windows Forms, если он еще не открыт. In Solution Explorer, double-click Form1.vb or Form1.cs to open the Windows Forms Designer if it is not already open.
Из Панели элементов перетащите на форму элемент управления TextBox , элемент управления Label и элемент управления Button . From the Toolbox, drag a TextBox control, a Label control, and a Button control onto the form.
Дважды щелкните Button и добавьте следующий код в обработчик событий Click : Double-click the Button , and add the following code in the Click event handler:
В Обозревателе решений щелкните правой кнопкой мыши WindowsApplication1 и выберите команду Назначить запускаемым проектом. In Solution Explorer, right-click WindowsApplication1 and click Set as StartUp Project.
Нажмите клавишу F5 , чтобы запустить проект. Press F5 to run the project. Введите любой текст и нажмите кнопку. Enter some text and click the button. На этой метке отображается введенный текст:. The label displays «You entered:» and shows the text that you entered.
Создание службы данных Create the data service
Службы данных WCF является устаревшим и больше не будет доступен для скачивания из центра загрузки Майкрософт. WCF Data Services has been deprecated and will no longer be available for download from the Microsoft Download Center. Службы данных WCF поддерживали только более ранние версии протокола Microsoft OData (v1-v3) и не были активны в рамках активной разработки. WCF Data Services supported earlier versions of the Microsoft OData (V1-V3) protocol only and has not been under active development. OData v1-v3 заменена OData версии 4, которая является отраслевым стандартом, опубликованным OASIS и ратифицирован по ISO. OData V1-V3 has been superseded by OData V4, which is an industry standard published by OASIS and ratified by ISO. OData v4 поддерживается в базовых библиотеках, совместимых с OData V4, доступных в Microsoft. OData. Core. OData V4 is supported through the OData V4 compliant core libraries available at Microsoft.OData.Core. Документация по поддержке доступна по адресу OData.NET, а библиотеки служб OData v4 доступны в Microsoft. AspNetCore. OData. Support documentation is available at OData.Net, and the OData V4 service libraries are available at Microsoft.AspNetCore.OData.
Рестиер — это последующий службы данных WCF. RESTier is the successor to WCF Data Services. Рестиер помогает в минутах запрашивать стандартизированный, поддерживающий запросы интерфейс RESTFUL на основе HTTP. RESTier helps you bootstrap a standardized, queryable, HTTP-based REST interface in minutes. Как и службы данных WCF, Рестиер предоставляет простые и понятные способы формирования запросов и перехвата отправок до и после попадания в базу данных. Like WCF Data Services before it, Restier provides simple and straightforward ways to shape queries and intercept submissions before and after they hit the database. И, как и веб-API + OData, у вас по-прежнему есть гибкость в добавлении собственных настраиваемых запросов и действий с помощью уже знакомых методов. And like Web API + OData, you still have the flexibility to add your own custom queries and actions with techniques you’re already familiar with.
В этом разделе вы создадите образец службы данных, который использует службы данных WCF для предоставления веб-канала Open Data Protocol (OData), основанного на образце базы данных Northwind. In this topic, you create a sample data service that uses WCF Data Services to expose an Open Data Protocol (OData) feed that’s based on the Northwind sample database. Задача включает следующие основные шаги. The task involves the following basic steps:
создайте веб-приложение ASP.NET; Create an ASP.NET Web application.
Определение модели данных с использованием средств для работы с моделью EDM. Define the data model by using the Entity Data Model tools.
Добавление службы данных в веб-приложение. Add the data service to the Web application.
Включите доступ к службе данных. Enable access to the data service.
Создание веб-приложения ASP.NET Create the ASP.NET web app
В Visual Studio в меню Файл выберите пункты Создать > Проект. In Visual Studio, on the File menu, select New > Project.
В диалоговом окне Новый проект в разделе Visual Basic или Visual C# выберите категорию веб-узел , а затем выберите ASP.NET Web Application (веб-приложение). In the New Project dialog box, under either Visual Basic or Visual C# select the Web category, and then select ASP.NET Web Application.
Введите в NorthwindService качестве имени проекта и нажмите кнопку ОК. Enter NorthwindService as the name of the project and then select OK.
В диалоговом окне новое веб-приложение ASP.NET выберите пусто и нажмите кнопку ОК. In the New ASP.NET Web Application dialog, select Empty and then select OK.
(Необязательно) Укажите конкретный номер порта для веб-приложения. (Optional) Specify a specific port number for your Web application. Примечание. номер порта 12345 используется в этой серии кратких руководств. Note: the port number 12345 is used in this series of quickstart topics.
В Обозреватель решений щелкните правой кнопкой мыши только что созданный проект ASP.NET, а затем выберите пункт свойства. In Solution Explorer, right-click on the ASP.NET project that you just created, and then choose Properties.
Перейдите на вкладку веб и задайте для параметра конкретный порт значение 12345 . Select the Web tab, and set the value of the Specific port text box to 12345 .
Определение модели данных Define the data model
В Обозреватель решений щелкните правой кнопкой мыши имя проекта ASP.NET и выберите команду Добавить > новый элемент. In Solution Explorer, right-click the name of the ASP.NET project, and then click Add > New Item.
В диалоговом окне Добавление нового элемента выберите категорию данные , а затем выберите ADO.NET EDM. In the Add New Item dialog box, select the Data category, and then select ADO.NET Entity Data Model.
В качестве имени модели данных введите Northwind.edmx . For the name of the data model, enter Northwind.edmx .
В мастере EDM выберите элемент конструктор EF из базы данных, а затем нажмите кнопку Далее. In the Entity Data Model Wizard, select EF Designer from Database, and then click Next.
Подключите модель данных к базе данных, выполнив одно из следующих действий, а затем нажмите кнопку Далее. Connect the data model to the database by doing one of the following steps, and then click Next:
Если подключение к базе данных уже не настроено, щелкните создать подключение и создайте новое подключение. If you don’t have a database connection already configured, click New Connection and create a new connection. Дополнительные сведения см. в разделе How to: Create Connections to SQL Server Databases. For more information, see How to: Create Connections to SQL Server Databases. Этот экземпляр SQL Server должен содержать присоединенный образец базы данных Northwind. This SQL Server instance must have the Northwind sample database attached.
Если имеется уже настроенное подключение к базе данных Northwind, выберите это подключение из списка. If you have a database connection already configured to connect to the Northwind database, select that connection from the list of connections.
На завершающей странице мастера установите флажки для всех таблиц базы данных и снимите флажки для представлений и хранимых процедур. On the final page of the wizard, select the check boxes for all tables in the database, and clear the check boxes for views and stored procedures.
Нажмите кнопку Готово , чтобы закрыть мастер. Click Finish to close the wizard.
Создание службы данных WCF Create the WCF data service
В Обозреватель решений щелкните правой кнопкой мыши проект ASP.NET и выберите команду Добавить > новый элемент. In Solution Explorer, right-click on the ASP.NET project, and then choose Add > New Item.
В диалоговом окне Добавление нового элемента выберите шаблон элемента службы данных WCF из категории веб . In the Add New Item dialog box, select the WCF Data Service item template from the Web category.
Шаблон службы данных WCF доступен в visual Studio 2015, но не в visual Studio 2017 или более поздней версии. The WCF Data Service template is available in Visual Studio 2015, but not in Visual Studio 2017 or later.
В качестве имени службы введите Northwind . For the name of the service, type Northwind .
В Visual Studio для новой службы создаются файлы разметки и кодов XML. Visual Studio creates the XML markup and code files for the new service. По умолчанию открывается окно редактора кода. By default, the code-editor window opens. В Обозреватель решений служба имеет имя Northwind с расширением SVC. CS или . svc. vb. In Solution Explorer, the service has the name Northwind with the extension .svc.cs or .svc.vb.
В коде службы данных замените комментарий /* TODO: put your data source class name here */ в определении класса, задающего службу данных, типом контейнера сущностей модели данных, который в данном случае равен NorthwindEntities . In the code for the data service, replace the comment /* TODO: put your data source class name here */ in the definition of the class that defines the data service with the type that is the entity container of the data model, which in this case is NorthwindEntities . Определение класса должно выглядеть следующим образом. The class definition should look this the following:
Разрешение доступа к ресурсам службы данных Enable access to data service resources
В коде службы данных замените код местозаполнителя в функции InitializeService следующим текстом: In the code for the data service, replace the placeholder code in the InitializeService function with the following:
Это обеспечивает авторизованным клиентам доступ для чтения и записи к ресурсам указанных наборов сущностей. This enables authorized clients to have read and write access to resources for the specified entity sets.