SlideShare a Scribd company logo
Автоматизация
   тестирования WCF


Сарварова Руфина
С чего начиналось..
WCF 4.5
.Net 4.5
SQL Server 2012
Snip C#
Visual Studio 2012
Azure, Azure SQL Databases
Team Foundation Server 2012
• программный фреймворк, используемый для обмена
  данными между приложениями входящими в
  состав .NET Framework.
Хостинг WCF
•   IIS
•   Windows Activation Service
•   Windows Service
•   Self-hosting
WCF : Client
• Service - функциональный модуль доступный извне
• Client - сторона, использующая функциональность
  службы
WCF : Service
•   Service Contract
•   Operation Contract
•   Data Contract
•   Data Member
WCF: Binding
   BasicHttpBinding
   WsHttpBinding
   WsDualHttpBinding
   WsFederationHttpBinding
   NetNamedPipeBinding
   NetTcpBinding
   NetPeerTcpBinding
   NetMsmqBinding
WCF: Binding
WCF : Endpoint
• Address - куда следует отправлять сообщения
• Binding - как необходимо отправлять сообщения
• Contract - что должно содержать сообщение
WCF config editor
Тестирование WCF
1. Вручную с помощью интерфейса.
2. Отладка операций службы при помощи
   WcfTestClient.exe.
3. Добавление ссылки на службу и создание прокси-
   класса в клиенте.
4. Генерация прокси-класса с помощью SvcUtil.
5. Тестирование и настройка специализированного
   клиента (Channel Factory).
WcfTestClient
WcfTestClient




    Входные данные для вызова
             функций




                     Полученный результат,
                    возвращаемый сервисом
Service Reference                         Кнопка для поиска
                                         служб внутри проекта



           Вставляем скопированный
              адрес метаданных
                и нажимаем Go




                                                   Доступ к метаданным через
                                                           MEX-точку:



            Доступные конечные
                                                    Операции службы
           точки службы Service1
                                                        Service1




           Пространство имён в котором
            будет создан прокси-класс
Client

               Прокси-класс для взаимодействия
                          со службой
               (к имени службы добавлено слово
                            Client)




  В приложение была
 добавлена ссылка на
        службу
ServiceModel Metadata Utility
           Tool
Спасибо!
Rufina.Sarvarova@ts.fujitsu.com

More Related Content

Similar to Автоматизация тестирования WCF сервисов

8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation
KewpaN
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
Igor Shkulipa
 
Wcf Part 2
Wcf Part 2Wcf Part 2
Wcf Part 2
Igor Venzhyk
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисов
KewpaN
 
"Пряники" - система мотивации и Microsoft Azure
"Пряники" - система мотивации и Microsoft  Azure"Пряники" - система мотивации и Microsoft  Azure
"Пряники" - система мотивации и Microsoft Azure
Alexey Lyubko
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
KewpaN
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
Igor Shkulipa
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5Docsvision
 
Migration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service FabricMigration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service Fabric
GlobalLogic Ukraine
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
Alexander Feschenko
 
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Cisco Russia
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
Pavel Tsukanov
 
1. предзащита
1. предзащита1. предзащита
1. предзащитаDmitry Dushkin
 
Microsoft Azure Pryaniky.com
Microsoft Azure Pryaniky.comMicrosoft Azure Pryaniky.com
Microsoft Azure Pryaniky.com
Alexey Lyubko
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4
Dima Dzuba
 
Windows Server 2008 семинар 15.05
Windows Server 2008   семинар 15.05Windows Server 2008   семинар 15.05
Windows Server 2008 семинар 15.05Alexander Babich
 
Integrating Exchange Online And Azure With Ad Sotnikov
Integrating Exchange Online And Azure With Ad   SotnikovIntegrating Exchange Online And Azure With Ad   Sotnikov
Integrating Exchange Online And Azure With Ad SotnikovLiudmila Li
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
Fwdays
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Ontico
 

Similar to Автоматизация тестирования WCF сервисов (20)

8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation8 создание приложений по технологии windows communications foundation
8 создание приложений по технологии windows communications foundation
 
C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
 
Wcf Part 2
Wcf Part 2Wcf Part 2
Wcf Part 2
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисов
 
"Пряники" - система мотивации и Microsoft Azure
"Пряники" - система мотивации и Microsoft  Azure"Пряники" - система мотивации и Microsoft  Azure
"Пряники" - система мотивации и Microsoft Azure
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
 
C# Web. Занятие 01.
C# Web. Занятие 01.C# Web. Занятие 01.
C# Web. Занятие 01.
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5
 
Migration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service FabricMigration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service Fabric
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
HTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkersHTML5 WebSockets and WebWorkers
HTML5 WebSockets and WebWorkers
 
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0. Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
Новые возможности решений на базе Cisco Unified Contact Center в версии 9.0.
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
1. предзащита
1. предзащита1. предзащита
1. предзащита
 
Microsoft Azure Pryaniky.com
Microsoft Azure Pryaniky.comMicrosoft Azure Pryaniky.com
Microsoft Azure Pryaniky.com
 
МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4МАИ, Сети ЭВМ, Лекция №4
МАИ, Сети ЭВМ, Лекция №4
 
Windows Server 2008 семинар 15.05
Windows Server 2008   семинар 15.05Windows Server 2008   семинар 15.05
Windows Server 2008 семинар 15.05
 
Integrating Exchange Online And Azure With Ad Sotnikov
Integrating Exchange Online And Azure With Ad   SotnikovIntegrating Exchange Online And Azure With Ad   Sotnikov
Integrating Exchange Online And Azure With Ad Sotnikov
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)
 

More from SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
SQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
SQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
SQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
SQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
SQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
SQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
SQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
SQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
SQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
SQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
SQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
SQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
SQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
SQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
SQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
SQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
SQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
SQALab
 

More from SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Автоматизация тестирования WCF сервисов

  • 1. Автоматизация тестирования WCF Сарварова Руфина
  • 2. С чего начиналось.. WCF 4.5 .Net 4.5 SQL Server 2012 Snip C# Visual Studio 2012 Azure, Azure SQL Databases Team Foundation Server 2012
  • 3. • программный фреймворк, используемый для обмена данными между приложениями входящими в состав .NET Framework.
  • 4. Хостинг WCF • IIS • Windows Activation Service • Windows Service • Self-hosting
  • 5. WCF : Client • Service - функциональный модуль доступный извне • Client - сторона, использующая функциональность службы
  • 6. WCF : Service • Service Contract • Operation Contract • Data Contract • Data Member
  • 7. WCF: Binding  BasicHttpBinding  WsHttpBinding  WsDualHttpBinding  WsFederationHttpBinding  NetNamedPipeBinding  NetTcpBinding  NetPeerTcpBinding  NetMsmqBinding
  • 9. WCF : Endpoint • Address - куда следует отправлять сообщения • Binding - как необходимо отправлять сообщения • Contract - что должно содержать сообщение
  • 11. Тестирование WCF 1. Вручную с помощью интерфейса. 2. Отладка операций службы при помощи WcfTestClient.exe. 3. Добавление ссылки на службу и создание прокси- класса в клиенте. 4. Генерация прокси-класса с помощью SvcUtil. 5. Тестирование и настройка специализированного клиента (Channel Factory).
  • 13. WcfTestClient Входные данные для вызова функций Полученный результат, возвращаемый сервисом
  • 14. Service Reference Кнопка для поиска служб внутри проекта Вставляем скопированный адрес метаданных и нажимаем Go Доступ к метаданным через MEX-точку: Доступные конечные Операции службы точки службы Service1 Service1 Пространство имён в котором будет создан прокси-класс
  • 15. Client Прокси-класс для взаимодействия со службой (к имени службы добавлено слово Client) В приложение была добавлена ссылка на службу

Editor's Notes

  1. С чего начиналось.. Наша компания начала новую разработку для Retail – заказ был на полный рефакторинг существующей очень крупной системы – Store Center. Скорей всего все вы когда-нибудь сталкивались с такими системами на кассах в магазине. Существующая система на протяжении многих лет была на поддержке и теперь ведется активная разработка новой архитектуры. Было принято решение отдать на разработку нашему филиалу центрального модуля этой системы. Так как такие системы как правило используются десятилетиями, решили использовать самые последние технологии в разработке данной системы.
  2. Подобно веб-службам, службы WCF позволяют создавать распределенные системы с помощью ориентированной на службы архитектуры. Однако службы WCF предоставляют гораздо большую гибкость (например, выбор транспортного протокола) и дополнительный набор компонентов (например, операции и безопасность). 
  3. Класс службы WCF не может существовать самостоятельно. Каждая служба WCF должна находиться под управлением некоторого процессаWindows, называемого хостовым процессом. Существуют несколько вариантов хостинга: Автохостинг (т.е. хост-процессом является, к примеру, консольное или графическое Windows приложение) Хостинг в одной из служб Windows Хостинг с использованием IIS (Internet Information Server) или WAS (Windows Activation Services) Self-hosting и Windows service hosting требуют, чтобы код размещения являлся частью приложения. Служба реализуется как консольное приложение и содержит собственный код размещения. В других средах размещения, таких как служба активации Windows (WAS), размещающих в IIS, писать код размещения необязательно. Тестируемая система состоит из серверной службы WCF и веб-приложения ASP.NET, которое использует службу WCF. Службы WCF обладают выдающейся гибкостью. Одним из важнейших решений при создании службы WCF является выбор для службы механизма размещения. Существует четыре основных варианта: использование IIS, использование Windows ®  Service, размещение на собственном сервере и использование WAS (Windows Activation Service — служба активирования Windows). Возможно, вы знакомы с использованием IIS и Windows. Размещение на собственном сервере влечет размещение WCF в программе, управляемой Microsoft ®  .NET Framework, например, консольном приложении. WAS представляет собой новый механизм активирования процесса, имеющийся в Windows Server ®  2008 и Windows Vista ® . У каждого варианта размещения WCF имеются достоинства и недостатки, зависящие от конкретного случая разработки. 
  4. Модель программирования WCF основана на коммуникации между двумя сущностями: службой WCF и клиентом WCF.Эта модель программирования инкапсулирована в пространство имен System.ServiceModel  в .NET Framework. служба - функциональный модуль доступный извне. клиентом службы называется сторона, использующая функциональность службы. Клиенты и службы взаимодействуют друг с другом отправляя и принимая сообщения. Клиент WCF состоит из  прокси , позволяющего приложению сообщаться со службой (WCF), и конечной точки, соответствующей конечной точке, заданной для этой службы.Прокси создается на стороне клиента в файле app.config и включает информацию о типах и методах, предоставляемых службой.В случае служб, предоставляющих несколько конечных точек, клиент может выбрать одну, лучше всего соответствующую его требованиям; например, клиент может выбрать способ сообщения посредством протокола HTTP и проверку подлинности Windows. В WCF клиент никогда не взаимодействует со службой напрямую, вызов всегда осуществляется через посредника (proxy). Посредник предоставляет те же операции, что и служба, а так же ряд управляющих методов. Служба WCF основана на интерфейсе, задающем контракт между службой и клиентом.
  5. [DataContract] –  класс, который определяет контракт данных. [DataMember] –  каждое поле этого класса, которое будет участвовать в обмене данными 4 главные компоненты сервиса: Service Contract Operation Contract Data Contract Data Member Service contract контракт, который определяет направление и тип сообщения . В WCF прилолжении service contract определяется интерфейсом или классом ( Idesign standard рекомендует чтобы это был интерфейс). Service contract это своего рода gateaway для внешнего приложения и хотя бы service contract должен быть определен. Контракты данных позволяют передавать структурированные данные в службы и из служб.  operation contract определяет методы сервиса, которые будут доступны внешним системам. Для сериализации новых созданных сложных типов необходимо определить контракты данных.  Data contract определяет тип данных с набором полей и свойств, который будет использоваться сервисом. атрибут DataMemberAttribute к каждому члену типа контракта данных, чтобы указать, что он является  членом данных , который необходимо сериализовать.
  6. Служба WCF предоставляется для использования посредством того, что называется  конечной точкой .Конечная точка ― это единственный способ сообщения с этой службой; невозможно получить к ней доступ посредством прямой ссылки, в отличие от других классов.. Конечная точка состоит из адреса, привязки и контракта. Адрес задает расположение сервера; это может быть URL-адрес, FTP-адрес, а также сетевой или локальный путь. Привязка задает способ сообщения с этой службой.Привязки WCF предоставляют гибкую модель для задания протокола, например HTTP или FTP, механизма обеспечения безопасности, например проверка подлинности Windows или имена и пароли пользователей, и многого другого. Контракт включает операции, предоставляемые классом службы WCF. Иначе говоря, Address – определяет куда следует отправлять сообщения; Binding – определяет как необходимо отправлять сообщения; Contract – определяет что должно содержать сообщение. Для одной службы WCF может быть предоставлено несколько конечных точек.Это дает возможность разным клиентам взаимодействовать с одной и той же службой разными способами.Например, банковская служба может предоставить одну конечную точку для сотрудников, а другую ― для внешних клиентов, причем каждая конечная точка будет использовать другой адрес, привязку и/или контракт.
  7. Самый простой тип тестирования службы WCF включает проверку правильности работы функций операций службы. Один из возможных подходов заключается в тестировании службы WCF вручную с помощью пользовательского интерфейса приложения. Но, хотя тестирование вручную является необходимым, использование этого подхода для тестирования основных функций службы WCF требует много времени, приводит к ошибкам, является неэффективным и попросту нудным. Более приемлемый подход заключается в создании программы автоматизации тестирования. Особенно это было актуально для нашего проекта, потому что у нас не было никакого UI а тестировать через браузер было не удобно и не достаточно эффективно. К тому же в случае с Odata binding WcfTestClient не работал. Так что, мы решили автоматизировать тестирование.
  8. На этом слайде представлена тулза WcfTestClient, к которой можно добавить несколько сервисов. На этом слайде мы добавляем наш запущенный Wcf Service. WcfTestClient.exe находится в следующей папке с вижуал студией, его также можно вызвать вне Visual Studio для проверки произвольной службы в Интернете. Кроме гуишного интерфейса у него есть возможность тестирования WCF из командной строки. Тестовый клиент WCF допускает использование любого числа универсальных кодов ресурса (URI) в качестве аргументов командной строки. Это универсальные коды ресурса служб, которые могут быть проверены. wcfTestClient.exe URI1 URI2 … После открытия окна тестового клиента WCF выберите в меню  Файл -> команду  Добавить службу  и введите адрес конечной точки службы, которую нужно открыть Тестовый клиент WCF можно использовать с одной или несколькими службами.
  9. Тестовый клиент Windows Communication Foundation (WCF) (WcfTestClient.exe) представляет собой средство с графическим интерфейсом пользователя, позволяющее вводить тестовые параметры, отправлять их в службу и просматривать ответную реакцию службы. При совместном использовании с узлом службы WCF это обеспечивает удобную практику тестирования служб. Ввод тестовых параметров Для просмотра тестовых параметров дважды щелкните операцию, чтобы открыть ее в правой области. Параметры по умолчанию показаны в представлении Форматированные , и в рамках тестирования службы для них можно вводить произвольные значения. Для просмотра текста XML сообщения щелкните  XML . Для передачи их в службу нажмите кнопку  Вызвать . Для параметра DataSet нажмите кнопку  ...  рядом с кнопкой  Изменить , чтобы изменить параметр в новом окне, отображающем DataGrid. Обратите внимание, что появились кнопки  Копировать DataSet  и  Вставить DataSet . Если схема объекта DataSet неизвестна при первом изменении, то DataGrid будет пустым. Необходимо вставить в текущий объект в DataGrid объект DataSet с такой же схемой. (Учтите, что перед операцией вставки потребуется скопировать схему из другого места.) Также можно скопировать объект DataSet для использования в дальнейшем, нажав кнопку  Копировать DataSet . Ответ службы отображается под тестовыми параметрами.
  10. Для того, чтобы создать прокси классы для клиента, необходимо создать клиентское приложение и добавить к нему Service Reference, как это представлено на слайде.
  11. Но в реальности на других компонентах системы не будет использоваться такой подход, к тому же по Idesign не рекомендуется генерировать автоматически клиентов. Поэтому мы использовали максимально приближенный к реальному клиент, для создания которого мы использовали Channel Factory.
  12. Svcutil.exe может создавать код для контрактов службы, клиентов и типы данных из документов метаданных. Документы метаданных могут находиться в устойчивом хранилище или извлекаться в оперативном режиме. Svcutil.exe создает клиент на основе файла WSDL или файла политики, полученного от службы. После того, как эта утилита создаст конфиг и класс прокси, его необходимо будет добавить к клиентскому приложению.