Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Windows communication foundation<br />Калита Роман, kalita.roman@gmail.com<br />
SOA, зачем?<br />Распределенные-приложения(четкие границы)<br />Повторное использование кода<br />Кроссплатформенность(сов...
WCF, зачем?<br />	WCF - это единая программная модель, предназначенная для создания сервис-ориентированных приложений<br /...
Проблемы которые решает WCF<br />Объединяет различные программные модели для различных задач<br />Потребность в надежного ...
WCF, объединенная модель<br />
WCF, ПРЕИМУЩЕСТВА<br />
WCF, Типичный сценарий<br />Presentation<br />Client<br />Application<br />UI<br />MVC/MVP:<br />View, Presenter<br />“Dat...
Основные концепции WCF<br />Endpoint – Точка ПРивязки<br />
Address, Binding, Contract<br />Endpoint<br />A<br />B<br />C<br />A<br />B<br />C<br />A<br />B<br />C<br />Client<br />S...
WCF. АРХИТЕКТуРА<br />Transport<br />Encoder<br />Protocol(s)<br />Transport<br />Encoder<br />Protocol(s)<br />Service<br...
WCF. ТИПЫ КОНТРАКТОВ<br />
взаимодействие – OPERATION CONTRACT<br />One Way<br />Client<br />Service<br />Request-Reply<br />Duplex (Dual)<br />Однос...
WCF. УПРАВЛЕНИЕ ЭКЗЕМПЛЯРАМИ<br />
ПРОСТОЙ WCF SERVICE<br />Service Contract Definition<br />[ServiceContract]<br />public interface IMyInterface<br />{<br /...
WCF. SERVICE ConTRACT<br />using System.ServiceModel; <br />[ServiceContract]<br />public interface ICalculate<br />{ <br ...
WCF. DUPLEX режим<br />[ServiceContract(Session=true, <br />CallbackContract=typeof(ICalculatorResults)]<br />public inter...
WCF. DATA CONTRACT<br />[DataContract]<br />public class ComplexNumber<br />{<br />[DataMember] public double Real = 0.0D;...
WCF. MESSAGE CONTRACT<br />[MessageContract]<br />public class ComplexProblem<br />{<br />[MessageHeader] public string op...
WCF. DEFINING ENDPOINTS<br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;<br />&lt;configuration xmln...
WCF. CONFIGURING BINDINGS<br />&lt;endpoint address=&quot;Calculator&quot;          bindingSectionName=&quot;basicProfileB...
WCF. CUSTOM BINDINGS<br />&lt;bindings&gt;<br />    &lt;customBinding&gt;<br />&lt;binding configurationName=&quot;Binding...
WCF. КЛИеНТ<br /><ul><li>Клиент использует прокси класс для соединения с сервисом
Прокси класс:
CLR интерфейс и класс представляющий все методы и объекты сервиса
Содержит дополнительные методы для управления прокси классом и соединением</li></li></ul><li>WCF. КЛИеНТ<br /><ul><li>Клие...
Прокси класс:
CLR интерфес и класс представляющий все методы и объекты сервиса
Upcoming SlideShare
Loading in …5
×

Введение в Windows Communication Foundation

6,487 views

Published on

Калита Роман. Введение в Windows Communication Foundation.

Published in: Technology
  • Be the first to comment

Введение в Windows Communication Foundation

  1. 1. Windows communication foundation<br />Калита Роман, kalita.roman@gmail.com<br />
  2. 2. SOA, зачем?<br />Распределенные-приложения(четкие границы)<br />Повторное использование кода<br />Кроссплатформенность(совместимость сервисов определяется политикой)<br />Масштабируемость(сервисы самостоятельны)<br />Защита кода (схема и контракт)<br />
  3. 3. WCF, зачем?<br /> WCF - это единая программная модель, предназначенная для создания сервис-ориентированных приложений<br />Построение распределенных приложений, где есть сервис, который отвечает за бизнес-логику, есть клиенты. При том, если нужны различные транспорты, сценарии безопасности, балансировка нагрузки и т.д.<br />
  4. 4. Проблемы которые решает WCF<br />Объединяет различные программные модели для различных задач<br />Потребность в надежного и защищенного обмена<br />Взаимодействие с клиентами на различных платформах<br />Продуктивная сервис-ориентированая модель программирования<br />
  5. 5. WCF, объединенная модель<br />
  6. 6. WCF, ПРЕИМУЩЕСТВА<br />
  7. 7. WCF, Типичный сценарий<br />Presentation<br />Client<br />Application<br />UI<br />MVC/MVP:<br />View, Presenter<br />“Data Storage and Management”<br />WCF Service<br />Service<br />Application<br />MVC/MVP:<br />Model<br />Business<br />Data Access<br />Data Storage<br />
  8. 8. Основные концепции WCF<br />Endpoint – Точка ПРивязки<br />
  9. 9. Address, Binding, Contract<br />Endpoint<br />A<br />B<br />C<br />A<br />B<br />C<br />A<br />B<br />C<br />Client<br />Service<br />Endpoints<br />Message<br />Address<br />Binding<br />Contract<br />(куда)<br />(как)<br />(что)<br />
  10. 10. WCF. АРХИТЕКТуРА<br />Transport<br />Encoder<br />Protocol(s)<br />Transport<br />Encoder<br />Protocol(s)<br />Service<br />Contract<br />andBehaviors<br />Client<br />Dispatcher<br />Binding<br />Address<br />
  11. 11. WCF. ТИПЫ КОНТРАКТОВ<br />
  12. 12. взаимодействие – OPERATION CONTRACT<br />One Way<br />Client<br />Service<br />Request-Reply<br />Duplex (Dual)<br />Одностороннее (One way): <br />«Вызвал и забыл»<br />Запрос-Ответ (Request-Reply)<br />Клиент отправляет запрос и блокируется до получения ответа<br />Дуплексное (Duplex)<br />Ответ получаем позже и реагируем на него через callback<br />
  13. 13. WCF. УПРАВЛЕНИЕ ЭКЗЕМПЛЯРАМИ<br />
  14. 14. ПРОСТОЙ WCF SERVICE<br />Service Contract Definition<br />[ServiceContract]<br />public interface IMyInterface<br />{<br />[OperationContract]<br /> void MyMethod();<br />}<br />Service Implementation<br />public class MyService: IMyInterface<br />{<br /> public void MyMethod() {/* do something */}<br />}<br />&lt;service name=&quot;MyService&quot;&gt;<br />&lt;endpoint<br /> address=“net.tcp://localhost:1234/MySvc&quot;<br /> binding=&quot;netTcpBinding&quot;<br /> contract=&quot;IMyInterface“<br />/&gt;<br />Endpoint Definition<br />Address + Binding <br />+ Contract<br />
  15. 15. WCF. SERVICE ConTRACT<br />using System.ServiceModel; <br />[ServiceContract]<br />public interface ICalculate<br />{ <br />[OperationContract(IsOneWay=true)] <br />void StoreProblen( ComplexProblem problem); <br />[OperationContract] <br />ComplexProblemGetProblem); <br />} <br />
  16. 16. WCF. DUPLEX режим<br />[ServiceContract(Session=true, <br />CallbackContract=typeof(ICalculatorResults)]<br />public interface ICalculatorProblems<br />{<br />[OperationContract(IsOneWay=true)]<br /> void SolveProblem (ComplexProblem p);<br />}<br />public interface ICalculatorResults<br />{<br /> [OperationContract(IsOneWay=true)]<br /> void Results(ComplexProblem p);<br />}<br />
  17. 17. WCF. DATA CONTRACT<br />[DataContract]<br />public class ComplexNumber<br />{<br />[DataMember] public double Real = 0.0D;[DataMember] public double Imaginary = 0.0D;<br /> public ComplexNumber(double r, double i) {this.Real = r;this.Imaginary = i; }<br />}<br />
  18. 18. WCF. MESSAGE CONTRACT<br />[MessageContract]<br />public class ComplexProblem<br />{<br />[MessageHeader] public string operation;<br />[MessageBody]public ComplexNumber n1;<br />[MessageBody]public ComplexNumber n2;<br />[MessageBody]public ComplexNumber solution;<br /> // Constructors…<br />}<br />
  19. 19. WCF. DEFINING ENDPOINTS<br />&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;<br />&lt;configuration xmlns=&quot;http://schemas.microsoft.com/.NetConfiguration/v2.0&quot;&gt;<br /> &lt;system.serviceModel&gt;<br /> &lt;services&gt;<br /> &lt;service serviceType=&quot;CalculatorService&quot;&gt;<br />&lt;endpoint address=&quot;Calculator&quot;<br /> bindingSectionName=&quot;basicProfileBinding&quot;<br /> contractType=&quot;ICalculator&quot; /&gt;<br /> &lt;/service&gt;<br /> &lt;/services&gt;<br /> &lt;/system.serviceModel&gt;<br />&lt;/configuration&gt;<br />
  20. 20. WCF. CONFIGURING BINDINGS<br />&lt;endpoint address=&quot;Calculator&quot; bindingSectionName=&quot;basicProfileBinding&quot;bindingConfiguration=&quot;Binding1&quot; contractType=&quot;ICalculator&quot; /&gt;<br />&lt;bindings&gt; &lt;basicProfileBinding&gt;&lt;binding configurationName=&quot;Binding1&quot; hostnameComparisonMode=&quot;StrongWildcard&quot; transferTimeout=&quot;00:10:00&quot; maxMessageSize=&quot;65536&quot; messageEncoding=&quot;Text&quot; textEncoding=&quot;utf-8&quot; &lt;/binding&gt;&lt;/basicProfileBinding&gt;&lt;/bindings&gt;<br />
  21. 21. WCF. CUSTOM BINDINGS<br />&lt;bindings&gt;<br /> &lt;customBinding&gt;<br />&lt;binding configurationName=&quot;Binding1&quot;&gt;<br /> &lt;reliableSession bufferedMessagesQuota=&quot;32&quot; inactivityTimeout=&quot;00:10:00&quot; maxRetryCount=&quot;8&quot;ordered=&quot;true&quot; /&gt;<br /> &lt;httpsTransport manualAddressing=&quot;false&quot; maxMessageSize=&quot;65536&quot; hostnameComparisonMode=&quot;StrongWildcard&quot;/&gt;<br /> &lt;textMessageEncoding maxReadPoolSize=&quot;64&quot;maxWritePoolSize=&quot;16&quot;messageVersion=&quot;Default&quot;encoding=&quot;utf-8&quot; /&gt;<br /> &lt;/binding&gt;<br /> &lt;/customBinding&gt;<br />&lt;/bindings&gt;<br />
  22. 22. WCF. КЛИеНТ<br /><ul><li>Клиент использует прокси класс для соединения с сервисом
  23. 23. Прокси класс:
  24. 24. CLR интерфейс и класс представляющий все методы и объекты сервиса
  25. 25. Содержит дополнительные методы для управления прокси классом и соединением</li></li></ul><li>WCF. КЛИеНТ<br /><ul><li>Клиент использует прокси класс для соединения с сервисом
  26. 26. Прокси класс:
  27. 27. CLR интерфес и класс представляющий все методы и объекты сервиса
  28. 28. Содержит дополнительные методы для управления прокси классом и соединением</li></li></ul><li>WCF. ГЕНЕРАЦИЯ ПРОКСИ КЛАССА в VS<br /><ul><li>В Visual Studio 2005/2008</li></li></ul><li>Wcf. demos<br />DEMO<br />
  29. 29. РЕСУРСЫ<br /><ul><li>http://msdn2.microsoft.com/en-us/netframework/aa663324.aspx - MSDN Windows Communication Foundation portal
  30. 30. http://msdn.microsoft.com/en-us/library/ms751514.aspx - WCF samples
  31. 31. http://www.codeproject.com/KB/WCF/WCFOverview.aspx - WCF overview
  32. 32. Дж. Лёве, Создание служб WCF, СПб.: Питер, O’Reilly, 2008</li></li></ul><li>ВОПРОСЫ И ОТВЕТЫ<br />?<br />

×