'

Создание приложений для Vista с использованием Windows Communication Foundation Сергій Байдачний Фахівець з питань розробки ПЗ Майкрософт Україна Віктор.

Понравилась презентация – покажи это...





Слайд 0


Слайд 1

Создание приложений для Vista с использованием Windows Communication Foundation Сергій Байдачний Фахівець з питань розробки ПЗ Майкрософт Україна Віктор Шатохін Фахівець з питань розробки ПЗ Майкрософт Україна


Слайд 2

Windows Communication Foundation "Indigo[WCF] is lubrication for software…it reduces friction between the moving parts." -- Don Box


Слайд 3

Windows Communication Foundation (WCF) Что такое WCF? Унифицированная платформа построения распределенных приложений Позволяет создавать безопасные, надежные и транзакционные Веб-сервисы Взаимодействие с различными платформами Интеграция с существующими решениями Использует и расширяет существующие технологии построения распределенных систем Microsoft Enterprise Services System.Messaging Microsoft .NET Remoting ASMX WSE


Слайд 4

Что такое Windows Communication Foundation? Много, путано и непонятно Remoting COM D/COM COM+ MSMQ WSE ASMX Один подход на все случаи жизни Windows Communication Foundation Было: Стало:


Слайд 5

Разработка в Visual Studio .NET 2003


Слайд 6

Разработка в Visual Studio .NET 2003 с использованием WSE


Слайд 7

[ServiceContract] class HelloService { [OperationContract] [PrincipalPermission(SecurityAction.Demand, Role = “Adminstrators")] [TransactionFlow(TransactionFlowOption.Mandatory)] [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)] String Hello(String Greeting) {return Greeting;} } <bindings> <wsHttpBinding> <binding name="Binding1“ transactionFlow="true"> <security mode="Message"> <message clientCredentialType="Windows“/> </security> <reliableSession enabled="true" /> </binding> </wsHttpBinding> </bindings> Разработка в Visual Studio 2005 + WCF


Слайд 8

Как это работает? Данные Описание сервиса Адрес, Привязка, Контракт, и Поведение Канальный уровень Протоколы, Кодировщики, и каналы передачи Сообщения Метаданные


Слайд 9

Клиент Сервис Конечные точки Endpoint Endpoint Endpoint Endpoint


Слайд 10

Сервис Клиент Адрес, Привязка, Контракт


Слайд 11

proxy.cs Клиент app/web.config Публикация & конфигурирование конечных точек GetMetadata WSDL Сервис ?


Слайд 12

Создание сервиса и клиента Client Service


Слайд 13

Создание сервиса


Слайд 14

Контракты Overview Контракт сервиса Определяет список операций Отражение CLR типов в WSDL Контракт данных Определяет структуру данных Отражение CLR типов в XSD Контракт сообщения Определяет структуру сообщения Отражение CLR типов в SOAP сообщения


Слайд 15

Контракты [ServiceContract] public interface IMyInterface { [OperationContract] public MyOutputType MyMethod(MyInputType myData); } Как возвращаемые и передаваемые типы сариализуются в сообщение? Сериализация осуществляется с помощью DataContractSerializer по умолчанию Обработка“встроенных” .NET типов автоматически Пользовательские типы необходимо определить как Data Contracts: [DataContract] public class MyDataContract { [DataMember] public string MyField; } [ServiceContract] [XmlSerializerFormat] public interface IMyInterface При желании, можно использовать XmlSerializer:


Слайд 16

Адрес Часть адреса определяет транспортный протокол.


Слайд 17

Задание адреса <services> <host> <baseAddresses> <add baseAddress="http://localhost:8000/MyBaseAddress"/> </baseAddresses> </host> <service name=“MyService”> <endpoint address=“MyEndpointAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/> </services>


Слайд 18

Привязка Транспорт IPC MSMQ Custom TCP HTTP Протокол Кодировка .NET TX Custom Security Reliability Привязка HTTP TX Security Reliability Text Text Binary Custom TCP Binary


Слайд 19

Встроенные привязки <endpoint name=“MyService” address=“MyAddress” binding=“netTcpBinding” contract=“IMyInterface” />


Слайд 20

<services> <service name=“MyService”> <endpoint address=“MyAddress” binding=“wsHttpBinding” bindingConfiguration=“MyReliableBinding” contract=“IMyInterface” /> <service/> </services> <bindings> <wsHttpBinding> <binding name=“MyReliableBinding”> <reliableSession enabled=“true” ordered=“true” </binding> </wsHttpBinding> </bindings> Модификация встроенных привязок


Слайд 21

<?xml version=“1.0” encoding=“UTF-8” ?> <configuration> <system.serviceModel> <services> <service name=“MyService”> <endpoint address=“MyAddress” binding=“customBinding” bindingConfiguration=“MyCustomBinding” contract=“IMyInterface” /> </service> </services> <bindings> <customBinding> <binding name="MyCustomBinding"> <reliableSession advancedFlowControl="true” /> <security authenticationMode=“Kerberos” /> <binaryMessageEncoding /> <tcpTransport maxMessageSize=“9223372036854775807" /> </binding> </customBinding> </bindings> </system.serviceModel> </configuration> Создание собственной привязки


Слайд 22

Поведение Поведение локально Разработчики могут изменять поведение Параллельное выполнение, модель создания, … Любые аспекты, которые могут повлиять на корректность работы сервиса Администраторы могут изменить поведение Пропускная способность, публикация метаданных, информация о маршрутизации, … Любые аспекты, которые могут повлиять на выполнение сервиса Все что можно задать в конфигурационном файле, можно сделать в коде Кто главнее – элементы заданные в коде имеют приоритет над элементами в конфигурационном файле (Атрибуты -> Конфигурационный файл -> Исходный код)


Слайд 23

Возможности изменения поведения Значения времени ожидания (закрытия, открытия, простоя) Параллельное выполнение, создание, привязка к потоку Пропускная способность Обработка ошибок и исключительных ситуаций Имперсонификация, авторизация, аудит AutoEnlist, AutoComplete, Timeout, Isolation Serialization, MustUnderstand Метаданные …


Слайд 24

Гарантированная доставка Демонстрация


Слайд 25

Really Simple Syndication (RSS) Платформа RSS Просмотр Поиск Подписка


Слайд 26

Платформа RSS веб-каналов Механизм загрузки RSS 0.9x RSS 1.0 RSS 2.0 Atom Ссылки Фотографии Контакты … Новости Блоги Фотографии Музыка Календари Списки Механизм слияния Общий список Веб-каналов Элементы Вложения Объектная модель RSS Хранилище Сервис API


Слайд 27

API веб-каналов COM API Два типа: Automation-friendly (IFeed…) Early-bound (IXFeed…) Возможно использование из управляемого кода Поставляется библиотека типов FeedsManager Feed FeedFolder FeedItem FeedEnclosure


Слайд 28

Работа с подписками Демонстрация


Слайд 29


Слайд 30

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


×

HTML:





Ссылка: