Presentation Transcript
Slide1: HARJEET SINGH
Agenda: Agenda
WCF is: WCF is
.NET at the core: .NET at the core The Unified Framework For Rapidly Building
Service-Oriented Applications
Windows Communication Foundation: Windows Communication Foundation
Unified Programming Model: Unified Programming Model Interop
with other
platforms ASMX Attribute-
Based
Programming Enterprise Services WS-*
Protocol
Support WSE Message-
Oriented
Programming System.Messaging Extensibility
Location transparency .NET Remoting
Agenda: Agenda
How does it work?Endpoints: How does it work? Endpoints Client Service Message
How does it work?Address, Binding, Contract: How does it work? Address, Binding, Contract Client Service Message Address Binding Contract (Where) (How) (What)
How does it work?Behaviours and Metadata: How does it work? Behaviours and Metadata Client Service Message Metadata Bv Bv Bv Bv Proxy ServiceHost()
Agenda: Agenda
How do I use it?: How do I use it? Client Service
How do I deploy it?: How do I deploy it?
For HTTP services on Windows XP® SP2 & WS2K3
For any service on Windows Vista® and Windows Server® “Longhorn”
Proven reliability, scalability, and security
Requires a .svc file to identify the Service Type
Web Host within IIS: Self-Host within any .NET process: Available for any service
Console apps, windowed apps, .NET NT Services …
Agenda: Agenda
All About BindingsYou can choose a pre-defined binding:: All About Bindings You can choose a pre-defined binding: <endpoint
name=“MyService”
address=“MyAddress”
binding=“netTcpBinding”
contract=“IMyInterface”
/>
All About BindingsYou can customize a pre-defined binding:: All About Bindings You can customize a pre-defined binding: <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>
All About BindingsYou can define custom bindings:: All About Bindings You can define custom bindings: <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>
Agenda: Agenda
All about Addresses: All about Addresses An endpoint address is relative to a base address: For a Web-Hosted service, the base address is that of its virtual directory <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>
Agenda: Agenda
All About Contracts: All About Contracts Service Contract: Describes the operations a service can perform. Maps CLR types to WSDL.
Data Contract: Describes a data structure. Maps CLR types to XSD.
Message Contract: Defines the structure of the message on the wire. Maps CLR types to SOAP messages.
Agenda: Agenda
Hosting Services in ASP.NET: Hosting Services in ASP.NET
Where can I put my service code?: Where can I put my service code?
Which project type should I use?: Which project type should I use?
Agenda: Agenda
Slide29: IIS Worker Process
(w3wp.exe)
Slide30: w3wp.exe ASP.NET
Slide31: w3wp.exe ASP.NET Managed Hosting Layer (System.Web.Hosting, System.Web.Compilation) ASP.NET
Page Framework, UI, Controls,
HTTP Runtime
(System.Web, System.Web.UI)
Slide32: w3wp.exe ASP.NET Managed Hosting Layer (System.Web.Hosting, System.Web.Compilation) ASP.NET
Page Framework, UI, Controls,
HTTP Runtime
(System.Web, System.Web.UI)
WCF and the HTTP Pipeline: WCF and the HTTP Pipeline IIS ASP.NET
WCF
Why the split?: Why the split?
Implications: Implications
Summary: Summary