View
51
Download
2
Category
Preview:
DESCRIPTION
Windows Communication Foundation – путь к версии 4. Марат Бакиров Эксперт по разработке ПО Microsoft Rus , Ekaterinburg http://blogs.msdn.com/mbakirov. Распределенные приложения. Сеть организации. Сервер Баз данных. Клиент. Сервер. Другой сервер. Интернет. Другой сервер. Сервер. - PowerPoint PPT Presentation
Citation preview
Microsoft TechDays
Windows Communication Foundation – путь к версии 4Марат БакировЭксперт по разработке ПОMicrosoft Rus, Ekaterinburghttp://blogs.msdn.com/mbakirov
Microsoft TechDays
Распределенные приложения
Клиент
Сервер
Сеть организации
Клиент
Сервер
Интернет
СерверБаз
данных
Другойсервер
Другойсервер
Другой сервер
Microsoft TechDays
POST /AccountAccess/Accounts.svcHost: www.quickbank.comSOAPAction: GetBalance…<soap:Envelope xmlns:soap= … <soap:Body> <GetBalance xmlns= … <Account>100</Account> </GetBalance> </soap:Body></soap:Envelope>
Клиент Сервис
Account 1
Account 2
Account 3
Подход SOAP
WSDL
Microsoft TechDays
Подход к программированию.
Server
GetBalance(int AccountId)
Client Proxy
GetBalance(int AccountId)
Client App
POST /AccountAccess/Accounts.svcHost: www.quickbank.comSOAPAction: GetBalance…<soap:Envelope xmlns:soap= … <soap:Body> <GetBalance xmlns= … <Account>2</Account> </GetBalance> </soap:Body></soap:Envelope>
GetBalance(2)
. . . <Balance> 100 </Balance>. . .
100$
Microsoft TechDays
Address, Binding, Contract Адрес, Связывание, Контракт
Клиент Сервис
СообщениеABC A B C
A B C
Address Binding Contract
(Где) (Как) (Что)
Microsoft TechDays
WCF Service
WCF Client
HTTP, TCP, MSMQ, etc.
Transport Channel
Transport Channel
КОД
КОДИРОВКА
EXTRA
КОД
КОДИРОВКА
EXTRA
WCF (Windows Communication Foundation) - реализация
WCF основан на слоях Стандартные слои
Код, сообщения (кодировки),транспортный
Microsoft TechDays
Cool
Один раз пишем код логики, используем (одновременно) разные транспорты.Можно с помощью конфигурации менять порты, адреса, etc.Можно один раз писать код сервиса, и выдавать несколько точек входа (endpoints)Можно обойтись без IIS (консольное приложение или сервис)Много стандартных настроек совместимых с ws-*, MSMQ и т.п.
Microsoft TechDays
Контракт сервиса (WCF 3.0)[ServiceContract]public interface IBalancer{ [OperationContract] Double GetBalance (int AccountId);
[OperationContract] CusttomerDesc GetCustomer (int AccountId);
}
Microsoft TechDays
Сервер
GET www.quickbank.com/Accounts/2
Account 1
Account 2
Account 3
Подход REST
Клиент
<Account> <Name>ZAO MMM</Name> <Owner>Mavrodi</Owner></Account>
Microsoft TechDays
Контракт сервиса (WCF 3.5)[ServiceContract]public interface IBalancer{ [OperationContract] [WebGet(UriTemplate = "Accounts/{AccountId})")] Acccount GetAccount (string AccountId);
[OperationContract] [WebGet(UriTemplate = "Accounts")] Double[] GetCustomers();
[OperationContract] // это для силверлайта [WebGet(UriTemplate = "/clientacccesspolicy.xml")] Stream GetClientPolicy();}
Microsoft TechDays
Astoria.
Server
Customers Orders
….
Client Proxy
Customers*Orders*
…..
Client App
http://service/Accounts?q=....
From Accounts where AccountId=2 select Account
<Account> <Name>ZAO MMM</Name> <Owner>Mavrodi</Owner></Account>
Account ZAO MMM MAvrodi
Microsoft TechDays
Cool
Syndication (почти готовые шаблоны для RSS/Atom)Поддержка JSON и XML
JSON = {“firstnamename”:”vasya”,”lastname”:”pupkin”}
VS 2008: Поддержка для генерации прокси для JavaScript
Microsoft TechDays
WCF REST Starter Kit
HelpHTTP Accept Request HeaderДекларативное кешированиеHttpClientШаблоны
Atom Feed WCF Service REST Singleton WCF ServiceREST Collection WCF Service Atom Publishing Protocol WCF Service HTTP Plain XML WCF Service
Microsoft TechDays
WCF 4.0
Упрощенная конфигурация (можно не писать половину того что мы пишем в app.config)Хостинг в IIS без SVC.UDP обнаружениеRouter (декларативные и императивные фильтры)Улучшенная поддержка RESTУлучшенная интеграция с Workflow
Microsoft TechDays
Итоги + ссылки
Архитектура WCF не претерпевает существенных изменений.Что означает, что она удачна.
Ссылкиhttp://msdn.microsoft.com/wcfhttp://msdn.microsoft.com/wcf/rest
Recommended