Что такое WCF?
Управление безопасностью WCF сервисов
Расширяемость WCF сервисов
WCF 4.0 What’s new?
Ссылка на примеры кода: https://www.dropbox.com/s/9anx0ptow2q96zz/HelloWCF.part2.zip
Migration of Cloud Services to Microsoft Azure Service FabricGlobalLogic Ukraine
This report provide a basic understanding of the process of transferring applications from cloud services to Service Fabric. The talk reveal the architectural and structural differences between cloud services and Service Fabric.
This presentation by Stanislav Zbitnyev, Engineering Consultant at GlobalLogic Kharkiv, was delivered at GlobalLogic Kharkiv MS TechTalk #2 on November 4, 2017.
Presentation about a most powerfull HTML5 technologies such as WebSockets and WebWorkers. Presentation also covers a main principles about working with ASP.NET SignalR Library
Реализация REST и SOAP сервисов с помощью WCFPavel Tsukanov
На сегодняшний день одним из важнейших направлений в области разработки ПО является направление (веб)-сервисов. Сервисы позволяют строить большие распределенные системы. При этом подходов к построению сервисов сегодня как минимум два - SOAP и REST. В докладе расскажу как реализовать их при помощи WCF
В рамках доклада я хотел бы рассмотреть сложности, которые мы испытываем с построением инфраструктуры распределенных систем.
Можно ли строить приложения и не думать о серверах и контейнерах? Насколько это будет дорого?
Ответить на эти вопросы помогут принципы «Бессерверной архитектуры». На простых примерах мы рассмотрим из чего состоит приложение, не зависящее от серверов. А также, рассмотрим возможности, которые предоставляют популярные провайдеры облачных сервисов, для построения таких приложений.
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Что такое WCF?
Управление безопасностью WCF сервисов
Расширяемость WCF сервисов
WCF 4.0 What’s new?
Ссылка на примеры кода: https://www.dropbox.com/s/9anx0ptow2q96zz/HelloWCF.part2.zip
Migration of Cloud Services to Microsoft Azure Service FabricGlobalLogic Ukraine
This report provide a basic understanding of the process of transferring applications from cloud services to Service Fabric. The talk reveal the architectural and structural differences between cloud services and Service Fabric.
This presentation by Stanislav Zbitnyev, Engineering Consultant at GlobalLogic Kharkiv, was delivered at GlobalLogic Kharkiv MS TechTalk #2 on November 4, 2017.
Presentation about a most powerfull HTML5 technologies such as WebSockets and WebWorkers. Presentation also covers a main principles about working with ASP.NET SignalR Library
Реализация REST и SOAP сервисов с помощью WCFPavel Tsukanov
На сегодняшний день одним из важнейших направлений в области разработки ПО является направление (веб)-сервисов. Сервисы позволяют строить большие распределенные системы. При этом подходов к построению сервисов сегодня как минимум два - SOAP и REST. В докладе расскажу как реализовать их при помощи WCF
В рамках доклада я хотел бы рассмотреть сложности, которые мы испытываем с построением инфраструктуры распределенных систем.
Можно ли строить приложения и не думать о серверах и контейнерах? Насколько это будет дорого?
Ответить на эти вопросы помогут принципы «Бессерверной архитектуры». На простых примерах мы рассмотрим из чего состоит приложение, не зависящее от серверов. А также, рассмотрим возможности, которые предоставляют популярные провайдеры облачных сервисов, для построения таких приложений.
Чему мы научились, разрабатывая микросервисы / Вадим Мадисон (RuTube)Ontico
Начав разработку нового продукта через микросервисы, мы неожиданно для себя обнаружили, что микросервисы — это не просто "вместо одного большого приложения теперь пишем много маленьких". При разработке большой системы она сама собой через какое-то время становится набором отдельных сервисов, которые должны взаимодействовать между собой, поэтому стабильная работа сервисов и их взаимодействие не стало чем-то новым. Неожиданностью стало то, что система стала значительно более динамической, она стала постоянно изменяться отдельными небольшими частями, сервисы стали часто перезапускаться, а количество запущенных нод сервисов стало расти по экспоненте.
Очень быстро стал актуальным вопрос конфигурирования — если раньше, выкатив новую версию монолита с единым конфигом, мы применяли правки на всю систему сразу, то с микросервисами все сложнее — пара сотен работающих нод и всем нужно применить изменения. Требования к деплою также поменялись — он стал частью процесса разработки, а тестирование стало частью деплоя. Количество необходимого ПО для функционирования системы также стало некоторым сюрпризом.
В докладе я расскажу о том, как в итоге это работает у нас, как мы решили такие вопросы как:
- конфигурирование сервисов;
- интеграция между собой;
- тестирование;
- версионирование;
- масштабирование.
Расскажу, какие тулзы мы в итоге используем, а от каких отказались.
Similar to Автоматизация тестирования WCF сервисов (20)
This document discusses continuous performance testing (CPT) and introduces the Jagger CPT solution. It provides an overview of why performance testing is important, outlines the principles and goals of CPT, and describes the key parts of the Jagger CPT platform including load generation, metrics collection, test data management, and environment management. It also provides an example customer success story where Jagger was used for continuous performance testing of a large ecommerce site.
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
This document provides an overview of the JDI (Java UI test automation framework). It discusses features of JDI including being UI element oriented, providing common UI elements and solutions to common problems. It provides examples of how to write tests using JDI annotations and page object pattern. The document also summarizes benefits of JDI such as reducing test code, improving test clarity, reuse across projects. Finally it outlines new features planned for JDI 2.0 including layout verification, page object generator, integration with Selenium and expanding JDI to other languages like Python.
The document discusses testing of geolocation systems. It provides an overview of geolocation, including definitions and importance. It then outlines the speaker's experience and work testing GIS systems. The rest of the document details approaches to testing geolocation, including simulating calls, checking responses and databases, and verifying accuracy. It also discusses common data formats, projections, tools like PostGIS and QGIS, and potential bugs to watch for like coordinate jumbling. The conclusion emphasizes starting simple, practicing to improve, and for tests to grow with knowledge as geolocation is important for future IT.
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)
В приложение была
добавлена ссылка на
службу
С чего начиналось.. Наша компания начала новую разработку для Retail – заказ был на полный рефакторинг существующей очень крупной системы – Store Center. Скорей всего все вы когда-нибудь сталкивались с такими системами на кассах в магазине. Существующая система на протяжении многих лет была на поддержке и теперь ведется активная разработка новой архитектуры. Было принято решение отдать на разработку нашему филиалу центрального модуля этой системы. Так как такие системы как правило используются десятилетиями, решили использовать самые последние технологии в разработке данной системы.
Подобно веб-службам, службы WCF позволяют создавать распределенные системы с помощью ориентированной на службы архитектуры. Однако службы WCF предоставляют гораздо большую гибкость (например, выбор транспортного протокола) и дополнительный набор компонентов (например, операции и безопасность).
Класс службы 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 имеются достоинства и недостатки, зависящие от конкретного случая разработки.
Модель программирования WCF основана на коммуникации между двумя сущностями: службой WCF и клиентом WCF.Эта модель программирования инкапсулирована в пространство имен System.ServiceModel в .NET Framework. служба - функциональный модуль доступный извне. клиентом службы называется сторона, использующая функциональность службы. Клиенты и службы взаимодействуют друг с другом отправляя и принимая сообщения. Клиент WCF состоит из прокси , позволяющего приложению сообщаться со службой (WCF), и конечной точки, соответствующей конечной точке, заданной для этой службы.Прокси создается на стороне клиента в файле app.config и включает информацию о типах и методах, предоставляемых службой.В случае служб, предоставляющих несколько конечных точек, клиент может выбрать одну, лучше всего соответствующую его требованиям; например, клиент может выбрать способ сообщения посредством протокола HTTP и проверку подлинности Windows. В WCF клиент никогда не взаимодействует со службой напрямую, вызов всегда осуществляется через посредника (proxy). Посредник предоставляет те же операции, что и служба, а так же ряд управляющих методов. Служба WCF основана на интерфейсе, задающем контракт между службой и клиентом.
[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 к каждому члену типа контракта данных, чтобы указать, что он является членом данных , который необходимо сериализовать.
Служба WCF предоставляется для использования посредством того, что называется конечной точкой .Конечная точка ― это единственный способ сообщения с этой службой; невозможно получить к ней доступ посредством прямой ссылки, в отличие от других классов.. Конечная точка состоит из адреса, привязки и контракта. Адрес задает расположение сервера; это может быть URL-адрес, FTP-адрес, а также сетевой или локальный путь. Привязка задает способ сообщения с этой службой.Привязки WCF предоставляют гибкую модель для задания протокола, например HTTP или FTP, механизма обеспечения безопасности, например проверка подлинности Windows или имена и пароли пользователей, и многого другого. Контракт включает операции, предоставляемые классом службы WCF. Иначе говоря, Address – определяет куда следует отправлять сообщения; Binding – определяет как необходимо отправлять сообщения; Contract – определяет что должно содержать сообщение. Для одной службы WCF может быть предоставлено несколько конечных точек.Это дает возможность разным клиентам взаимодействовать с одной и той же службой разными способами.Например, банковская служба может предоставить одну конечную точку для сотрудников, а другую ― для внешних клиентов, причем каждая конечная точка будет использовать другой адрес, привязку и/или контракт.
Самый простой тип тестирования службы WCF включает проверку правильности работы функций операций службы. Один из возможных подходов заключается в тестировании службы WCF вручную с помощью пользовательского интерфейса приложения. Но, хотя тестирование вручную является необходимым, использование этого подхода для тестирования основных функций службы WCF требует много времени, приводит к ошибкам, является неэффективным и попросту нудным. Более приемлемый подход заключается в создании программы автоматизации тестирования. Особенно это было актуально для нашего проекта, потому что у нас не было никакого UI а тестировать через браузер было не удобно и не достаточно эффективно. К тому же в случае с Odata binding WcfTestClient не работал. Так что, мы решили автоматизировать тестирование.
На этом слайде представлена тулза WcfTestClient, к которой можно добавить несколько сервисов. На этом слайде мы добавляем наш запущенный Wcf Service. WcfTestClient.exe находится в следующей папке с вижуал студией, его также можно вызвать вне Visual Studio для проверки произвольной службы в Интернете. Кроме гуишного интерфейса у него есть возможность тестирования WCF из командной строки. Тестовый клиент WCF допускает использование любого числа универсальных кодов ресурса (URI) в качестве аргументов командной строки. Это универсальные коды ресурса служб, которые могут быть проверены. wcfTestClient.exe URI1 URI2 … После открытия окна тестового клиента WCF выберите в меню Файл -> команду Добавить службу и введите адрес конечной точки службы, которую нужно открыть Тестовый клиент WCF можно использовать с одной или несколькими службами.
Тестовый клиент Windows Communication Foundation (WCF) (WcfTestClient.exe) представляет собой средство с графическим интерфейсом пользователя, позволяющее вводить тестовые параметры, отправлять их в службу и просматривать ответную реакцию службы. При совместном использовании с узлом службы WCF это обеспечивает удобную практику тестирования служб. Ввод тестовых параметров Для просмотра тестовых параметров дважды щелкните операцию, чтобы открыть ее в правой области. Параметры по умолчанию показаны в представлении Форматированные , и в рамках тестирования службы для них можно вводить произвольные значения. Для просмотра текста XML сообщения щелкните XML . Для передачи их в службу нажмите кнопку Вызвать . Для параметра DataSet нажмите кнопку ... рядом с кнопкой Изменить , чтобы изменить параметр в новом окне, отображающем DataGrid. Обратите внимание, что появились кнопки Копировать DataSet и Вставить DataSet . Если схема объекта DataSet неизвестна при первом изменении, то DataGrid будет пустым. Необходимо вставить в текущий объект в DataGrid объект DataSet с такой же схемой. (Учтите, что перед операцией вставки потребуется скопировать схему из другого места.) Также можно скопировать объект DataSet для использования в дальнейшем, нажав кнопку Копировать DataSet . Ответ службы отображается под тестовыми параметрами.
Для того, чтобы создать прокси классы для клиента, необходимо создать клиентское приложение и добавить к нему Service Reference, как это представлено на слайде.
Но в реальности на других компонентах системы не будет использоваться такой подход, к тому же по Idesign не рекомендуется генерировать автоматически клиентов. Поэтому мы использовали максимально приближенный к реальному клиент, для создания которого мы использовали Channel Factory.
Svcutil.exe может создавать код для контрактов службы, клиентов и типы данных из документов метаданных. Документы метаданных могут находиться в устойчивом хранилище или извлекаться в оперативном режиме. Svcutil.exe создает клиент на основе файла WSDL или файла политики, полученного от службы. После того, как эта утилита создаст конфиг и класс прокси, его необходимо будет добавить к клиентскому приложению.