250 likes | 380 Views
Windows Communication Foundation. Stipe Ivan Latković. Me, myself and I. FESB PhD Service-oriented online monitor DUMP Interests SOA OOAD etc. How we got here. Object-oriented Polymorphism Encapsulation Subclassi ng. Component-based Interfaces Dynamic loading
E N D
Windows Communication Foundation Stipe Ivan Latković
Me, myself and I • FESB • PhD • Service-oriented online monitor • DUMP • Interests • SOA • OOAD • etc.
How we got here Object-oriented Polymorphism Encapsulation Subclassing Component-based Interfaces Dynamic loading Runtime metadata Service-oriented Messages Schema + contract Binding via policy 2000s 1980s 1990s
The challenge ...to radicallysimplify distributedapplicationdevelopment
Endpoints Client Service A B C A B C ABC ABC Endpoint Endpoint Where? How? What?
Bindings PRES+ Protocol, reliability, encoding, security, ...
Out of the box bindings • BasicHttpBinding • WSHttpBinding • WS2007HttpBinding • WSDualHttpBinding • WSFederationHttpBinding • WS2007FederationHttpBinding • NetTcpBinding • NetNamedPipeBinding • NetMsmqBinding • NetPeerTcpBinding • WebHttpBinding • MsmqIntegrationBinding
Address [transport]://[server name]:[port]/[ep path] http://localhost:50000 net.tcp://localhost:50000/MyService net.pipe://localhost/MyPipe net.msmq://localhost/MyService
Message exchange patterns Duplex Request-reply One-way
Security • Claims based end-to-end security • X509, Username/Password, Kerberos, custom credentials... • Message security • Confidentiality and integrity • Transport or message level • Access to resources • Authentication and authorization
Reliability and transactions • End-to-end reliable messaging • In-order guarantees • Exactly once guarantees • Transactions • Guaranteed atomic success or failure across boundaries
Hosting • IIS6 • HTTP only • WAS (Windows Activation Service) • Can use any transport • Supported in IIS7 • Self hosting • Can use any transport • Console &WPF apps, Windows services, etc.
WCF tools • WCF Configuration Editor • WCF Service Host • WCF Test Client • SvcUtil • SvcTraceViewer