SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
© Peter R. Egli 2015
1/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
Peter R. Egli
INDIGOO.COM
OVERVIEW OF WCF, MICROSOFTS UNIFIED
COMMUNICATION FRAMEWORK FOR .NET APPLICATIONS
WCFWINDOWS COMMUNICATION
FOUNDATION
© Peter R. Egli 2015
2/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
Contents
1. What is WCF?
2. WCF‘s ABC
3. WCF model
4. The 4 layers of the WCF architecture
5. WCF programming model
6. WCF address (the 'A' in 'ABC')
7. WCF binding (the 'B' in 'ABC')
8. WCF contract (the 'C' in 'ABC')
9. WCF service hosting
10. Steps for creating and running a WCF service
11. WCF configuration versus programming
12. WCF and SOAP messages
© Peter R. Egli 2015
3/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
1. What is WCF (1/3)?
WCF is a unified communication framework for distributed applications.
WCF defines a common programming model and unified API for clients and services to send
messages between each other.
WCF is the current and future standard for distributed .Net applications.
Key characteristics of WCF:
 Service-oriented programming model (SOA):
Services are offered on an endpoint.
WCF completely separates service hosting, endpoints and services.
 Interoperability with non-WCF web services due to use of SOAP messages:
WCF implements many of the WS-* standards.
See http://msdn.microsoft.com/en-us/library/ms734776.aspx.
 Extensibility:
WCF client / server can be configured to interoperate with REST, ATOM-feeds, plain XML
or JSON messages (extensions for interfacing to any message-based service).
© Peter R. Egli 2015
4/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
1. What is WCF (2/3)?
 It provides a unified API to use various types of communication from an application.
 WCF sits on top of the .Net Framework.
WCF versus web services:
WCF is service-oriented. By separating the service interface (contract) from the transport
protocol and message encoding, a (logical) service can be reused in different scenarios.
A developer is forced to specify a service interface on a logical level and then define how the
service may be used (transport protocol, message encoding).
These characteristics nicely map to the web service paradigm where a WSDL-file defines the
what (service interface), the how (transport, message encoding) and the where (endpoint
address).
But: WCF also supports distributed applications that are not web service based.
Message-oriented
communication
WCF provides a
unified API for various
communication models.
WCF client
(.Net program)
WCF
.Net FW
MSMQ
TCP/IP
DCOM WS
HTTP
WCF service
(.Net program)
WCF
.Net FW
MSMQ
TCP/IP
DCOM WS
HTTP
© Peter R. Egli 2015
5/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
1. What is WCF (3/3)?
 WCF is a generic communication framework. WCF supports WS and other means of
communication.
 WCF supports different (message-based) communication protocols.
Possible scenarios with WCF:
WCF
MSMQ MSMQ
Client
WCF
MSMQ
Server
WCF
HTTP
Client
WCF
HTTP
Web service
WCF
Pipe
Client
WCF
Pipe
Service proc.
Client and server communice asynchronously
over an MSMQ (message queueing) infrastructure.
Web service client and service use WCF for
communication. WCF provides interoperability with
non-WCF web service clients / services.
Client and server use named pipes for
communication.
© Peter R. Egli 2015
6/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
2. WCF‘s ABC
The core concept of WCF is a service that is provided on an endpoint and accessible over the
network through a transport protocol.
Thus a WCF service is defined by ABC:
A = Address:
Where is the service available (the endpoint's URI in case of a web service).
B = Binding:
How can the service be accessed (what transport protocol is used).
C = Contract:
What does the service interface look like (operations, data-types).
The mapping of the ABCs to WSDL:
WCF term Question WSDL element
A (Address) Where <service> including element <endpoint>
B (Binding) How <binding>
C (Contract) What <types>
<interface>
© Peter R. Egli 2015
7/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
3. WCF model (1/4)
WCF defines a (consistent) service model with entities and relationships.
Application
WCF client WCF service
has has
Endpoint Endpoint
has has
11
* *
Communication stack
Security
protocol
1
*
1
hashas
Appl.
endpoint
Infrastructure
endpoint
Provides service
metadata
implements
Service
contract
corresponds to
Address
as URI
has
Instancing
model
has • Single
• Session
• Per call
Operation
contract
contains
WSDL
Message
encoding
Transport
protocol
Binding elements
HTTP TCP MSMQ
*
Text/
XML
MTOM Binary
Request
reply
One-
way
Duplex
Message
exchange
pattern
Channel
Channel
Channel
has
Message
contract
Host
• Self-hosted
• Service host
hosted in
ABC elements (blue)
are described by
a WSDL file.
Message
uses
Data
contract
uses
© Peter R. Egli 2015
8/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
3. WCF model (2/4)
Application:
An application has a WCF client and / or WCF service.
WCF client:
Component with a WCF endpoint for communicating with a WCF service through messages.
WCF service:
Counterpart to WCF client. Runs in its own process (self-hosted) or in a specific service
hosting process (IIS, Windows Activation Service, Windows Service).
Endpoint:
WCF client and service use an endpoint to connect to each other.
Application endpoint: Endpoint on which an application service is exposed / offered.
Infrastructure endpoint: Part of WCF system to offer metadata of an application service.
Message:
Unit of data exchange between WCF client and service. WCF is strictly message-based.
Address:
Physical address comprising hostname, port number and service name (=URI). The application
service is accessible under such an address.
Example.: http://localhost:8000/HSZ-TWSMW/DateTimeService
© Peter R. Egli 2015
9/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
3. WCF model (3/4)
Service contract:
Set of operations which define the application service. The service contract is implemented
by an interface in a .Net language (e.g. C# interface).
Operation contract:
Defines the signature (parameters and return type) of an individual operation of a service.
Message contract (SOAP message layout):
Describes the format of a message (which information elements should go into the header,
which should go into the body, level of security to be applied to message etc.).
Instancing model:
Defines how the service is instantiated: Singleton, Session, Single-Call.
Binding (element):
Defines how an endpoint communicates with its peer endpoint. Binding elements define
individual aspects of the communication, basically the transport protocol (raw TCP, HTTP),
message encoding (text, binary) and the security.
Channel:
Concrete implementation of a binding element (binding element = configuration, channel =
implementation).
© Peter R. Egli 2015
10/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
3. WCF model (4/4)
Transport protocol (transport binding):
Defines the protocol used to transfer messages “over the wire” (wire protocol). A common
transport protocol is HTTP (HTTP over TCP).
Message encoding (binding element):
Defines the formatting of messages before they are sent over the wire (using the transport
protocol). Common message encodings are text/XML (SOAP) or MTOM (Message Transmission
Optimized Mechanism) for efficient transfer of binary data.
Security protocol (security binding):
Defines what security functions (authentication, encryption) are applied to messages.
Message exchange pattern:
Defines how messages are exchanged (request-reply, one-way, duplex).
Communication stack:
Comprises different binding elements, at a minimum a transport binding element and message
encoding binding element.
Host:
Runtime environment for a service. Either self-hosted (specific process for service) or a general
hosting process, e.g. IIS, WAS or Windows service.
© Peter R. Egli 2015
11/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
4. The 4 layers of the WCF architecture
Contracts define the service (as XSD):
Data contract  Definition of complex types (structures, classes, generics).
Service contract (C)  Definition of operation signatures.
Message contract (C)  Layout of (SOAP) messages.
Policies and binding (B)  Definition of transport protocol (TCP, HTTP) and
message encoding (text, binary); security functions used (if any).
Service runtime contains runtime behavior (functions of service host):
Examples: Error behavior, throttling message reception, delivery of service
metadata to the outside world.
Messaging layer with channels (channel = implementation of binding element):
- Security (authentication & encryption) & reliability (reliable messaging) channels.
- Message encoding channels (text, binary, MTOT, XML).
- Transport channels (TCP, HTTP).
All used channels comprise the channel stack.
Channels, service runtime behaviors and service itself (modules implementing
the contracts) are run in a host process. Services can be:
a. Self-hosted (run in their own process).
b. Hosted by an external agent (WAS, IIS, Windows services).
Application
Contracts
Data
Contract
Message
Contract
Service
Contract
Policy
and
Binding
Service Runtime
Throttling
Behavior
Error
Behavior
Metadata
Behavior
Message
Inspection
Instance
Behavior
Transaction
Behavior
Dispatch
Behavior
Concurrency
Behavior
Parameter
Filtering
Messaging
HTTP
Channel
TCP
Channel
Transaction
Flow
Channel
MSMQ
Channel
NamedPipe
Channel
WS Security
Channel
WS Reliable
Messaging
Channel
Encoders:
Binary/MTOM
/Text/XML
Activation and Hosting
Windows
Activation
Service
.exe
(self-
hosting)
Windows
Services
COM+
© Peter R. Egli 2015
12/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
5. WCF programming model (classes and interfaces)
The ABC elements of WCF are offered as specific class libraries.
WCF term Corresponding class library (namespace)
A (Address) System.Uri
B (Binding) System.ServiceModel
E.g.
BasicHttpBinding (SOAP, non-secure, interoperable, non-duplex)
WebHttpBinding (REST-style binding, i.e. non-SOAP)
C (Contract) Interfaces / classes annotated with System.ServiceModel attributes:
[OperationContract]
[ServiceContract]
[MessageContract]
Data contract (definitions of types used in operation contracts):
[DataContract] (System.Runtime.Serialization)
E (Endpoint) System.ServiceModel.ServiceEndpoint
© Peter R. Egli 2015
13/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
6. WCF address (the 'A' in 'ABC')
The WCF address defines where a web service (endpoint) is accessible.
WCF models an address as an endpoint reference (EPR) as per the WS-Addressing standard.
WS-Addressing EPR schema:
<wsa:EndpointReference>
<wsa:Address>xs:anyURI</wsa:Address> URI
<wsa:ReferenceProperties>... </wsa:ReferenceProperties> ? Properties to identify the endpoint
<wsa:ReferenceParameters>... </wsa:ReferenceParameters> ? Parameters associated with an endpoint
<wsa:PortType>xs:QName</wsa:PortType> ? Endpoint type (WSDL 1.0 portType, WSDL 2.0 interface)
<wsa:ServiceName PortName="xs:NCName"?>xs:QName</wsa:ServiceName> ? Link to WSDL service element containing the endpoint descr.
<wsp:Policy> ... </wsp:Policy>* Security settings of endpoint
</wsa:EndpointReference>
WS-addressing EPR see http://www.w3.org/Submission/ws-addressing/#_Toc77464317
Example endpoint address URI:
http://localhost:8000/HSZ-TWSMW/DateTimeService
Endpoint address class System.ServiceModel.EndpointAddress:
EndpointAddress.Uri  URI
EndpointAddress.Headers  Reference properties and parameters
EndpointAddress.Identity  Security settings
Scheme /
protocol
Machine
address (IP or DNS)
Port # Path under which the service is available
© Peter R. Egli 2015
14/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
7. WCF binding (the 'B' in 'ABC') (1/2)
The binding defines how a web service endpoint is accessed.
A binding contains the following elements:
1. Transport protocol:
 Underlying transport protocol to use when interacting with the web service.
 Examples: TCP, HTTP, MSMQ.
2. Message encoding:
 Definition of the message encoding.
 Examples: Text/XML (SOAP), binary, MTOM (Message Transfer Optimized Mechanism).
3. Security / reliability settings:
 Message security settings (e.g. encryption and authentication of message).
 Transport security (e.g. encryption of transport connection).
Transport connection and protocol Encoding and securing of
application messages.
Encoder +
Security
Encoder +
Security
Encoding and securing of
application messages.
© Peter R. Egli 2015
15/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
7. WCF binding (the 'B' in 'ABC') (2/2)
WCF provides the following bindings:
Binding Interoperability Security Session Transactions Duplex Encoding
BasicHttpBinding WS-I Basic Profile N, T, M, m N N No Text, MTOM
WSHttpBinding WS-* standards T, M, m N, RS, SS N, Yes No Text, MTOM
WSDualHttpBinding WS-* standards M, m RS, SS N, Yes Yes Text, MTOM
WSFederationHttpBinding WS-Federation N, M, m RS, SS N, Yes No Text, MTOM
NetTcpBinding .NET T, M, m, N TS, RS, SS N, Yes Yes Binary
NetNamedPipeBinding .NET T, N N, TS N, Yes Yes Binary
NetMsmqBinding .NET (WCF) M, T, N N, TS N, Yes No Binary
NetPeerTcpBinding .NET T N N Yes N/A
MsmqIntegrationBinding MSMQ T N N, Yes No MSMQ
BasicHttpContextBinding WS-I Basic Profile N, T, M, m N N No Text, MTOM
NetTcpContextBinding .NET N, T, M, m T, RS, SS N, Yes Yes Binary
WSHttpContextBinding WS-* standards T, M, m N, RS, SS N, Yes No Text, MTOM
WebHttpBinding HTTP (REST) N N N No POX
Key:
N: None
T: Transport
M: Message
m: mixed
RS: Reliable Session (WS-ReliableMessaging)
SS: Security Session
TS: Transport Session
More details on WCF bindings see http://msdn.microsoft.com/en-us/library/ms730879.aspx.
POX: Plain Old XML
© Peter R. Egli 2015
16/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
8. WCF contract (the 'C' in 'ABC')
WCF interfaces are called “contracts” (both client and server must comply with the contract).
Contracts describe operations, data structures and messages.
A service contract defines:
a. Grouping of operations in a service  .Net attribute [ServiceContract]
b. Signature of operations  .Net attribute [OperationContract]
c. Data types of operations  .Net attribute [DataContract]
From contract to code (and back):
The utility SvcUtil.exe may be used to map between abstract and interoperable service
definitions (WSDL documents) and programmatic definitions of interfaces (C# code).
SvcUtil.exe either retrieves the service definition from a WSDL file on disk using the DISCO
protocol (Microsoft proprietary WS discovery protocol) or directly from a running service
instance through the standard WS-MetaDataExchange protocol.
WSDL /
XSD
.Net C#
code
Exportable contract
description
Programmatic
definition of contract
SvcUtil.exe
© Peter R. Egli 2015
17/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
9. WCF service hosting
A service host is the process that runs (executes) the service(s).
WCF provides different possibilities to host a service.
A. Self-hosted service:
The service runs in an application process that the developer created.
The lifecycle (when is service opened and closed) is controlled by the service itself.
B. Standard Windows hosting process:
.Net and Windows offer system processes that are designed to host services.
a. IIS (Internet Information Services):
 Only HTTP transport supported (IIS is a web server).
b. WAS (Windows Activation Services):
 New process activation framework on which IIS 7.0 is based.
 Supports HTTP, TCP, and pipe transports.
c. Windows services:
 Standard Windows execution with security etc.
 Lifecycle of service controlled by service startup configuration.
More information and a comparison of WCF hosting options see http://msdn.microsoft.com/en-
us/library/ms730158.aspx.
© Peter R. Egli 2015
18/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
10. Steps for creating and running a WCF service (1/4)
The following steps outline how to create a web service in Visual Studio 2010.
1. Visual Studio 2010 project selection (1/2):
The hosting environment of a web service defines the project template to be used.
a. Visual C# / WCF / WCF Service Library project:
 Output: Service DLL (Dynamic Link Library).
 To be run in WAS.
 Files: IService1.cs with [ServiceContract] attributes (service interface = contract).
Service1.cs (service implementation of interface).
App.config (configuration file with transport binding and other settings).
b. Visual C# / WCF / WCF Service Application project:
 Output: Service DLL.
 To be run in IIS.
 Files: IService1.cs with [ServiceContract] attributes.
Service1.cs (service implementation).
Web.config (configuration file with HTTP-transport binding and other settings).
© Peter R. Egli 2015
19/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
10. Steps for creating and running a WCF service (2/4)
The following steps outline how to create a web service in Visual Studio 2010.
1. Visual Studio 2010 project selection (2/2):
c. Self-hosted:
 Standard C# application project.
d. Managed Windows service (formerly called NT service):
 Windows service project.
 Implementing class has to inherit from ServiceBase (base class for Windows service) as
well as from a WCF service interface.
© Peter R. Egli 2015
20/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
10. Steps for creating and running a WCF service (3/4)
2. Interface definition (service contract as C# interface or C# class):
Define the interface of the web service with a .Net interface.
Example interface contract definition in C# (containing operation contracts):
[ServiceContract(Namespace = "http://indigoo.WSMW")]
public interface IMyInterface
{
[OperationContract]
string MyFunction();
[OperationContract]
int MyOtherFunction();
}
3. Service contract implementation (C# class implementing the interface):
Create .Net class that implements the web service interface.
public class MyService : IMyInterface
{
public string MyFunction() {...}
...
}
© Peter R. Egli 2015
21/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
10. Steps for creating and running a WCF service (4/4)
4. Deploy and run the service:
The final step is to deploy the service assembly (DLL) into the hosting environment or to start
it in case of self-hosting.
For self-hosting services, the following code needs to be added to the service (definition of
endpoint with address and binding):
selfHost.AddServiceEndpoint(typeof(MyService), new BasicHttpBinding(), "MyService");
Finally the service can be started in the WCF self-hosting environment as follows:
selfHost.Open();
© Peter R. Egli 2015
22/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
11. WCF configuration versus programming (1/2)
WCF client and service can be defined by configuration (XML file, declarative) or
programmatically (.Net classes).
Good practice:
For improved reusability of web services in different environments, contract ('C') and address
('A') as well as transport binding ('B') should be separated.
 Define interface and implementation programmatically (C#) without transport and message
encodings.
 Definition of transport binding, address and message encoding in configuration file.
Declarative service configuration:
Major sections of a service configuration (App.config or Web.config)) file are:
<system.ServiceModel>
<services>
<service>
<endpoint/>
</service>
</services>
<bindings>
<!-- Specify one or more of the system-provided binding elements, for example, <basicHttpBinding> -->
<!-- Alternatively, <customBinding> elements. -->
<binding> <!-- For example, a <BasicHttpBinding> element. --></binding>
</bindings>
<behaviors> <!-- One or more of the system-provided or custom behavior elements. -->
<behavior> <!-- For example, a <throttling> element. --> </behavior>
</behaviors>
</system.ServiceModel>
© Peter R. Egli 2015
23/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
11. WCF configuration versus programming (2/2)
Graphical configuration of service with SvcConfigEditor.exe:
The service can be configured graphically with the utility SvcConfigEditor.exe (path 'Microsoft
SDKsWindowsv7.0ABinSvcConfigEditor.exe).
SvcConfigEditor.exe can also be launched through the App.config / Web.config files' context
menu:
© Peter R. Egli 2015
24/24
Rev. 2.20
WCF – Windows Communication Foundation indigoo.com
12. WCF and SOAP messages
Usually WCF hides the mapping of operations (operation contracts, data contracts) to SOAP
messages (WCF bindings that use SOAP messages automatically map operations into SOAP
messages).
If necessary, WCF MessageContracts provide complete control over the structure of the
exchanged SOAP messages (similar concept to JAX-WS @WebServiceProvider annotations).
MessageContracts define a class that can be used as argument type in operations. In
MessageContracts, the class members can be mapped to the SOAP header or body as follows:
namespace WSMW_WCF {
[ServiceContract]
interface IHelloWorld {
[OperationContract]
HelloResponseMessage SayHello(String helloMsg);
}
[MessageContract]
public class HelloResponseMessage {
private string localResponse = "...";
private string extra = "...";
[MessageBodyMember]
public string Response {
get { return localResponse; }
set { localResponse = value; }
}
[MessageHeader]
public string ExtraValues {
get { return extra; }
set { this.extra = value; }
}
}
}

Contenu connexe

Tendances (20)

Asp net
Asp netAsp net
Asp net
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
SOAP-based Web Services
SOAP-based Web ServicesSOAP-based Web Services
SOAP-based Web Services
 
Spring Framework - MVC
Spring Framework - MVCSpring Framework - MVC
Spring Framework - MVC
 
Soap vs rest
Soap vs restSoap vs rest
Soap vs rest
 
An Introduction To REST API
An Introduction To REST APIAn Introduction To REST API
An Introduction To REST API
 
Introduction to ASP.NET
Introduction to ASP.NETIntroduction to ASP.NET
Introduction to ASP.NET
 
Web Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NETWeb Service Implementation Using ASP.NET
Web Service Implementation Using ASP.NET
 
ASP.NET MVC Presentation
ASP.NET MVC PresentationASP.NET MVC Presentation
ASP.NET MVC Presentation
 
Angular 9
Angular 9 Angular 9
Angular 9
 
.Net Core
.Net Core.Net Core
.Net Core
 
Introduction to Swagger
Introduction to SwaggerIntroduction to Swagger
Introduction to Swagger
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Rest web services
Rest web servicesRest web services
Rest web services
 
Restful web services ppt
Restful web services pptRestful web services ppt
Restful web services ppt
 
Oracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic ConceptsOracle WebLogic Server Basic Concepts
Oracle WebLogic Server Basic Concepts
 
Overview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB APIOverview of Rest Service and ASP.NET WEB API
Overview of Rest Service and ASP.NET WEB API
 
Springboot Microservices
Springboot MicroservicesSpringboot Microservices
Springboot Microservices
 

En vedette

Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonAdnan Masood
 
WCF (Windows Communication Foundation)
WCF (Windows Communication Foundation)WCF (Windows Communication Foundation)
WCF (Windows Communication Foundation)ipower softwares
 
Windows Communication Foundation (WCF) Service
Windows Communication Foundation (WCF) ServiceWindows Communication Foundation (WCF) Service
Windows Communication Foundation (WCF) ServiceSj Lim
 
WCF Security, FSec
WCF Security, FSecWCF Security, FSec
WCF Security, FSecAnte Gulam
 
Windows Presentation Foundation
Windows Presentation Foundation  Windows Presentation Foundation
Windows Presentation Foundation Deepika Chaudhary
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF WorkshopIdo Flatow
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
Wcf security session 2
Wcf security session 2Wcf security session 2
Wcf security session 2Anil Kumar M
 
Mysql gdb-101022041146-phpapp01
Mysql gdb-101022041146-phpapp01Mysql gdb-101022041146-phpapp01
Mysql gdb-101022041146-phpapp01Bob Huang
 
DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5Eyal Vardi
 
WCF security
WCF securityWCF security
WCF securityexatex
 

En vedette (20)

Web API or WCF - An Architectural Comparison
Web API or WCF - An Architectural ComparisonWeb API or WCF - An Architectural Comparison
Web API or WCF - An Architectural Comparison
 
WCF (Windows Communication Foundation)
WCF (Windows Communication Foundation)WCF (Windows Communication Foundation)
WCF (Windows Communication Foundation)
 
Windows Communication Foundation (WCF) Best Practices
Windows Communication Foundation (WCF) Best PracticesWindows Communication Foundation (WCF) Best Practices
Windows Communication Foundation (WCF) Best Practices
 
Windows Communication Foundation (WCF) Service
Windows Communication Foundation (WCF) ServiceWindows Communication Foundation (WCF) Service
Windows Communication Foundation (WCF) Service
 
Wcf
WcfWcf
Wcf
 
Wcf development
Wcf developmentWcf development
Wcf development
 
WCF Security, FSec
WCF Security, FSecWCF Security, FSec
WCF Security, FSec
 
Windows Presentation Foundation
Windows Presentation Foundation  Windows Presentation Foundation
Windows Presentation Foundation
 
Advanced WCF Workshop
Advanced WCF WorkshopAdvanced WCF Workshop
Advanced WCF Workshop
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
Wcf security session 2
Wcf security session 2Wcf security session 2
Wcf security session 2
 
Mysql gdb-101022041146-phpapp01
Mysql gdb-101022041146-phpapp01Mysql gdb-101022041146-phpapp01
Mysql gdb-101022041146-phpapp01
 
WCF'e Giriş
WCF'e GirişWCF'e Giriş
WCF'e Giriş
 
DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
 
WCF security
WCF securityWCF security
WCF security
 
Jug muenchen bpmn in der praxis
Jug muenchen bpmn in der praxisJug muenchen bpmn in der praxis
Jug muenchen bpmn in der praxis
 
2011 10-26 bpm-tools
2011 10-26 bpm-tools2011 10-26 bpm-tools
2011 10-26 bpm-tools
 
WJAX 2012: BPMN in der Praxis
WJAX 2012: BPMN in der PraxisWJAX 2012: BPMN in der Praxis
WJAX 2012: BPMN in der Praxis
 
WFC #1
WFC #1WFC #1
WFC #1
 

Similaire à Windows Communication Foundation (WCF)

WCF (Windows Communication Foundation_Unit_01)
WCF (Windows Communication Foundation_Unit_01)WCF (Windows Communication Foundation_Unit_01)
WCF (Windows Communication Foundation_Unit_01)Prashanth Shivakumar
 
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUIAdvancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUIAdvancio
 
Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35Subodh Pushpak
 
1. WCF Services - Exam 70-487
1. WCF Services - Exam 70-4871. WCF Services - Exam 70-487
1. WCF Services - Exam 70-487Bat Programmer
 
Understanding Web Services by software outsourcing company india
Understanding Web Services by software outsourcing company indiaUnderstanding Web Services by software outsourcing company india
Understanding Web Services by software outsourcing company indiaJignesh Aakoliya
 
Top wcf interview questions
Top wcf interview questionsTop wcf interview questions
Top wcf interview questionstongdang
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication FoundationMahmoud Tolba
 
Basics of WCF and its Security
Basics of WCF and its SecurityBasics of WCF and its Security
Basics of WCF and its SecurityMindfire Solutions
 
Advantage of WCF Over Web Services
Advantage of WCF Over Web ServicesAdvantage of WCF Over Web Services
Advantage of WCF Over Web ServicesSiva Tharun Kola
 
Web services
Web servicesWeb services
Web servicesaspnet123
 
Session 1: The SOAP Story
Session 1: The SOAP StorySession 1: The SOAP Story
Session 1: The SOAP Storyukdpe
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Jason Townsend, MBA
 
Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...
Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...
Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...Jason Townsend, MBA
 
Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...Abdul Khan
 
Web programming
Web programmingWeb programming
Web programmingsowfi
 

Similaire à Windows Communication Foundation (WCF) (20)

WCF (Windows Communication Foundation_Unit_01)
WCF (Windows Communication Foundation_Unit_01)WCF (Windows Communication Foundation_Unit_01)
WCF (Windows Communication Foundation_Unit_01)
 
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUIAdvancio, Inc. Academy: Web Sevices, WCF & SOAPUI
Advancio, Inc. Academy: Web Sevices, WCF & SOAPUI
 
Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35Dot Net Training Wcf Dot Net35
Dot Net Training Wcf Dot Net35
 
1. WCF Services - Exam 70-487
1. WCF Services - Exam 70-4871. WCF Services - Exam 70-487
1. WCF Services - Exam 70-487
 
Understanding Web Services by software outsourcing company india
Understanding Web Services by software outsourcing company indiaUnderstanding Web Services by software outsourcing company india
Understanding Web Services by software outsourcing company india
 
Top wcf interview questions
Top wcf interview questionsTop wcf interview questions
Top wcf interview questions
 
Windows Communication Foundation
Windows Communication FoundationWindows Communication Foundation
Windows Communication Foundation
 
Basics of WCF and its Security
Basics of WCF and its SecurityBasics of WCF and its Security
Basics of WCF and its Security
 
WCF
WCFWCF
WCF
 
SOA & WCF
SOA & WCFSOA & WCF
SOA & WCF
 
Advantage of WCF Over Web Services
Advantage of WCF Over Web ServicesAdvantage of WCF Over Web Services
Advantage of WCF Over Web Services
 
Web services
Web servicesWeb services
Web services
 
Session 1: The SOAP Story
Session 1: The SOAP StorySession 1: The SOAP Story
Session 1: The SOAP Story
 
web programming
web programmingweb programming
web programming
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003
 
Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...
Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...
Tulsa Tech Fest2008 Service Oriented Development With Windows Communication F...
 
Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...Complete Architecture and Development Guide To Windows Communication Foundati...
Complete Architecture and Development Guide To Windows Communication Foundati...
 
Web programming
Web programmingWeb programming
Web programming
 
Wcf faq
Wcf faqWcf faq
Wcf faq
 
Java web services
Java web servicesJava web services
Java web services
 

Plus de Peter R. Egli

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosPeter R. Egli
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking ConceptsPeter R. Egli
 
Communication middleware
Communication middlewareCommunication middleware
Communication middlewarePeter R. Egli
 
Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Peter R. Egli
 
Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Peter R. Egli
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET PlatformPeter R. Egli
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud ComputingPeter R. Egli
 
MQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingPeter R. Egli
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration TechnologiesPeter R. Egli
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyPeter R. Egli
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development KitPeter R. Egli
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Peter R. Egli
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Peter R. Egli
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingPeter R. Egli
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBAPeter R. Egli
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging ServicePeter R. Egli
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State TransferPeter R. Egli
 

Plus de Peter R. Egli (20)

LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M ScenariosLPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
LPWAN Technologies for Internet of Things (IoT) and M2M Scenarios
 
Data Networking Concepts
Data Networking ConceptsData Networking Concepts
Data Networking Concepts
 
Communication middleware
Communication middlewareCommunication middleware
Communication middleware
 
Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)Transaction Processing Monitors (TPM)
Transaction Processing Monitors (TPM)
 
Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)Business Process Model and Notation (BPMN)
Business Process Model and Notation (BPMN)
 
Microsoft .NET Platform
Microsoft .NET PlatformMicrosoft .NET Platform
Microsoft .NET Platform
 
Overview of Cloud Computing
Overview of Cloud ComputingOverview of Cloud Computing
Overview of Cloud Computing
 
MQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message QueueingMQTT - MQ Telemetry Transport for Message Queueing
MQTT - MQ Telemetry Transport for Message Queueing
 
Enterprise Application Integration Technologies
Enterprise Application Integration TechnologiesEnterprise Application Integration Technologies
Enterprise Application Integration Technologies
 
Overview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technologyOverview of Microsoft .Net Remoting technology
Overview of Microsoft .Net Remoting technology
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)Overview of SCTP (Stream Control Transmission Protocol)
Overview of SCTP (Stream Control Transmission Protocol)
 
Web services
Web servicesWeb services
Web services
 
Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)Overview of Spanning Tree Protocol (STP & RSTP)
Overview of Spanning Tree Protocol (STP & RSTP)
 
MSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message QueueingMSMQ - Microsoft Message Queueing
MSMQ - Microsoft Message Queueing
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
JMS - Java Messaging Service
JMS - Java Messaging ServiceJMS - Java Messaging Service
JMS - Java Messaging Service
 
REST - Representational State Transfer
REST - Representational State TransferREST - Representational State Transfer
REST - Representational State Transfer
 

Dernier

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Dernier (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

Windows Communication Foundation (WCF)

  • 1. © Peter R. Egli 2015 1/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com Peter R. Egli INDIGOO.COM OVERVIEW OF WCF, MICROSOFTS UNIFIED COMMUNICATION FRAMEWORK FOR .NET APPLICATIONS WCFWINDOWS COMMUNICATION FOUNDATION
  • 2. © Peter R. Egli 2015 2/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com Contents 1. What is WCF? 2. WCF‘s ABC 3. WCF model 4. The 4 layers of the WCF architecture 5. WCF programming model 6. WCF address (the 'A' in 'ABC') 7. WCF binding (the 'B' in 'ABC') 8. WCF contract (the 'C' in 'ABC') 9. WCF service hosting 10. Steps for creating and running a WCF service 11. WCF configuration versus programming 12. WCF and SOAP messages
  • 3. © Peter R. Egli 2015 3/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 1. What is WCF (1/3)? WCF is a unified communication framework for distributed applications. WCF defines a common programming model and unified API for clients and services to send messages between each other. WCF is the current and future standard for distributed .Net applications. Key characteristics of WCF:  Service-oriented programming model (SOA): Services are offered on an endpoint. WCF completely separates service hosting, endpoints and services.  Interoperability with non-WCF web services due to use of SOAP messages: WCF implements many of the WS-* standards. See http://msdn.microsoft.com/en-us/library/ms734776.aspx.  Extensibility: WCF client / server can be configured to interoperate with REST, ATOM-feeds, plain XML or JSON messages (extensions for interfacing to any message-based service).
  • 4. © Peter R. Egli 2015 4/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 1. What is WCF (2/3)?  It provides a unified API to use various types of communication from an application.  WCF sits on top of the .Net Framework. WCF versus web services: WCF is service-oriented. By separating the service interface (contract) from the transport protocol and message encoding, a (logical) service can be reused in different scenarios. A developer is forced to specify a service interface on a logical level and then define how the service may be used (transport protocol, message encoding). These characteristics nicely map to the web service paradigm where a WSDL-file defines the what (service interface), the how (transport, message encoding) and the where (endpoint address). But: WCF also supports distributed applications that are not web service based. Message-oriented communication WCF provides a unified API for various communication models. WCF client (.Net program) WCF .Net FW MSMQ TCP/IP DCOM WS HTTP WCF service (.Net program) WCF .Net FW MSMQ TCP/IP DCOM WS HTTP
  • 5. © Peter R. Egli 2015 5/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 1. What is WCF (3/3)?  WCF is a generic communication framework. WCF supports WS and other means of communication.  WCF supports different (message-based) communication protocols. Possible scenarios with WCF: WCF MSMQ MSMQ Client WCF MSMQ Server WCF HTTP Client WCF HTTP Web service WCF Pipe Client WCF Pipe Service proc. Client and server communice asynchronously over an MSMQ (message queueing) infrastructure. Web service client and service use WCF for communication. WCF provides interoperability with non-WCF web service clients / services. Client and server use named pipes for communication.
  • 6. © Peter R. Egli 2015 6/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 2. WCF‘s ABC The core concept of WCF is a service that is provided on an endpoint and accessible over the network through a transport protocol. Thus a WCF service is defined by ABC: A = Address: Where is the service available (the endpoint's URI in case of a web service). B = Binding: How can the service be accessed (what transport protocol is used). C = Contract: What does the service interface look like (operations, data-types). The mapping of the ABCs to WSDL: WCF term Question WSDL element A (Address) Where <service> including element <endpoint> B (Binding) How <binding> C (Contract) What <types> <interface>
  • 7. © Peter R. Egli 2015 7/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 3. WCF model (1/4) WCF defines a (consistent) service model with entities and relationships. Application WCF client WCF service has has Endpoint Endpoint has has 11 * * Communication stack Security protocol 1 * 1 hashas Appl. endpoint Infrastructure endpoint Provides service metadata implements Service contract corresponds to Address as URI has Instancing model has • Single • Session • Per call Operation contract contains WSDL Message encoding Transport protocol Binding elements HTTP TCP MSMQ * Text/ XML MTOM Binary Request reply One- way Duplex Message exchange pattern Channel Channel Channel has Message contract Host • Self-hosted • Service host hosted in ABC elements (blue) are described by a WSDL file. Message uses Data contract uses
  • 8. © Peter R. Egli 2015 8/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 3. WCF model (2/4) Application: An application has a WCF client and / or WCF service. WCF client: Component with a WCF endpoint for communicating with a WCF service through messages. WCF service: Counterpart to WCF client. Runs in its own process (self-hosted) or in a specific service hosting process (IIS, Windows Activation Service, Windows Service). Endpoint: WCF client and service use an endpoint to connect to each other. Application endpoint: Endpoint on which an application service is exposed / offered. Infrastructure endpoint: Part of WCF system to offer metadata of an application service. Message: Unit of data exchange between WCF client and service. WCF is strictly message-based. Address: Physical address comprising hostname, port number and service name (=URI). The application service is accessible under such an address. Example.: http://localhost:8000/HSZ-TWSMW/DateTimeService
  • 9. © Peter R. Egli 2015 9/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 3. WCF model (3/4) Service contract: Set of operations which define the application service. The service contract is implemented by an interface in a .Net language (e.g. C# interface). Operation contract: Defines the signature (parameters and return type) of an individual operation of a service. Message contract (SOAP message layout): Describes the format of a message (which information elements should go into the header, which should go into the body, level of security to be applied to message etc.). Instancing model: Defines how the service is instantiated: Singleton, Session, Single-Call. Binding (element): Defines how an endpoint communicates with its peer endpoint. Binding elements define individual aspects of the communication, basically the transport protocol (raw TCP, HTTP), message encoding (text, binary) and the security. Channel: Concrete implementation of a binding element (binding element = configuration, channel = implementation).
  • 10. © Peter R. Egli 2015 10/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 3. WCF model (4/4) Transport protocol (transport binding): Defines the protocol used to transfer messages “over the wire” (wire protocol). A common transport protocol is HTTP (HTTP over TCP). Message encoding (binding element): Defines the formatting of messages before they are sent over the wire (using the transport protocol). Common message encodings are text/XML (SOAP) or MTOM (Message Transmission Optimized Mechanism) for efficient transfer of binary data. Security protocol (security binding): Defines what security functions (authentication, encryption) are applied to messages. Message exchange pattern: Defines how messages are exchanged (request-reply, one-way, duplex). Communication stack: Comprises different binding elements, at a minimum a transport binding element and message encoding binding element. Host: Runtime environment for a service. Either self-hosted (specific process for service) or a general hosting process, e.g. IIS, WAS or Windows service.
  • 11. © Peter R. Egli 2015 11/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 4. The 4 layers of the WCF architecture Contracts define the service (as XSD): Data contract  Definition of complex types (structures, classes, generics). Service contract (C)  Definition of operation signatures. Message contract (C)  Layout of (SOAP) messages. Policies and binding (B)  Definition of transport protocol (TCP, HTTP) and message encoding (text, binary); security functions used (if any). Service runtime contains runtime behavior (functions of service host): Examples: Error behavior, throttling message reception, delivery of service metadata to the outside world. Messaging layer with channels (channel = implementation of binding element): - Security (authentication & encryption) & reliability (reliable messaging) channels. - Message encoding channels (text, binary, MTOT, XML). - Transport channels (TCP, HTTP). All used channels comprise the channel stack. Channels, service runtime behaviors and service itself (modules implementing the contracts) are run in a host process. Services can be: a. Self-hosted (run in their own process). b. Hosted by an external agent (WAS, IIS, Windows services). Application Contracts Data Contract Message Contract Service Contract Policy and Binding Service Runtime Throttling Behavior Error Behavior Metadata Behavior Message Inspection Instance Behavior Transaction Behavior Dispatch Behavior Concurrency Behavior Parameter Filtering Messaging HTTP Channel TCP Channel Transaction Flow Channel MSMQ Channel NamedPipe Channel WS Security Channel WS Reliable Messaging Channel Encoders: Binary/MTOM /Text/XML Activation and Hosting Windows Activation Service .exe (self- hosting) Windows Services COM+
  • 12. © Peter R. Egli 2015 12/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 5. WCF programming model (classes and interfaces) The ABC elements of WCF are offered as specific class libraries. WCF term Corresponding class library (namespace) A (Address) System.Uri B (Binding) System.ServiceModel E.g. BasicHttpBinding (SOAP, non-secure, interoperable, non-duplex) WebHttpBinding (REST-style binding, i.e. non-SOAP) C (Contract) Interfaces / classes annotated with System.ServiceModel attributes: [OperationContract] [ServiceContract] [MessageContract] Data contract (definitions of types used in operation contracts): [DataContract] (System.Runtime.Serialization) E (Endpoint) System.ServiceModel.ServiceEndpoint
  • 13. © Peter R. Egli 2015 13/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 6. WCF address (the 'A' in 'ABC') The WCF address defines where a web service (endpoint) is accessible. WCF models an address as an endpoint reference (EPR) as per the WS-Addressing standard. WS-Addressing EPR schema: <wsa:EndpointReference> <wsa:Address>xs:anyURI</wsa:Address> URI <wsa:ReferenceProperties>... </wsa:ReferenceProperties> ? Properties to identify the endpoint <wsa:ReferenceParameters>... </wsa:ReferenceParameters> ? Parameters associated with an endpoint <wsa:PortType>xs:QName</wsa:PortType> ? Endpoint type (WSDL 1.0 portType, WSDL 2.0 interface) <wsa:ServiceName PortName="xs:NCName"?>xs:QName</wsa:ServiceName> ? Link to WSDL service element containing the endpoint descr. <wsp:Policy> ... </wsp:Policy>* Security settings of endpoint </wsa:EndpointReference> WS-addressing EPR see http://www.w3.org/Submission/ws-addressing/#_Toc77464317 Example endpoint address URI: http://localhost:8000/HSZ-TWSMW/DateTimeService Endpoint address class System.ServiceModel.EndpointAddress: EndpointAddress.Uri  URI EndpointAddress.Headers  Reference properties and parameters EndpointAddress.Identity  Security settings Scheme / protocol Machine address (IP or DNS) Port # Path under which the service is available
  • 14. © Peter R. Egli 2015 14/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 7. WCF binding (the 'B' in 'ABC') (1/2) The binding defines how a web service endpoint is accessed. A binding contains the following elements: 1. Transport protocol:  Underlying transport protocol to use when interacting with the web service.  Examples: TCP, HTTP, MSMQ. 2. Message encoding:  Definition of the message encoding.  Examples: Text/XML (SOAP), binary, MTOM (Message Transfer Optimized Mechanism). 3. Security / reliability settings:  Message security settings (e.g. encryption and authentication of message).  Transport security (e.g. encryption of transport connection). Transport connection and protocol Encoding and securing of application messages. Encoder + Security Encoder + Security Encoding and securing of application messages.
  • 15. © Peter R. Egli 2015 15/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 7. WCF binding (the 'B' in 'ABC') (2/2) WCF provides the following bindings: Binding Interoperability Security Session Transactions Duplex Encoding BasicHttpBinding WS-I Basic Profile N, T, M, m N N No Text, MTOM WSHttpBinding WS-* standards T, M, m N, RS, SS N, Yes No Text, MTOM WSDualHttpBinding WS-* standards M, m RS, SS N, Yes Yes Text, MTOM WSFederationHttpBinding WS-Federation N, M, m RS, SS N, Yes No Text, MTOM NetTcpBinding .NET T, M, m, N TS, RS, SS N, Yes Yes Binary NetNamedPipeBinding .NET T, N N, TS N, Yes Yes Binary NetMsmqBinding .NET (WCF) M, T, N N, TS N, Yes No Binary NetPeerTcpBinding .NET T N N Yes N/A MsmqIntegrationBinding MSMQ T N N, Yes No MSMQ BasicHttpContextBinding WS-I Basic Profile N, T, M, m N N No Text, MTOM NetTcpContextBinding .NET N, T, M, m T, RS, SS N, Yes Yes Binary WSHttpContextBinding WS-* standards T, M, m N, RS, SS N, Yes No Text, MTOM WebHttpBinding HTTP (REST) N N N No POX Key: N: None T: Transport M: Message m: mixed RS: Reliable Session (WS-ReliableMessaging) SS: Security Session TS: Transport Session More details on WCF bindings see http://msdn.microsoft.com/en-us/library/ms730879.aspx. POX: Plain Old XML
  • 16. © Peter R. Egli 2015 16/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 8. WCF contract (the 'C' in 'ABC') WCF interfaces are called “contracts” (both client and server must comply with the contract). Contracts describe operations, data structures and messages. A service contract defines: a. Grouping of operations in a service  .Net attribute [ServiceContract] b. Signature of operations  .Net attribute [OperationContract] c. Data types of operations  .Net attribute [DataContract] From contract to code (and back): The utility SvcUtil.exe may be used to map between abstract and interoperable service definitions (WSDL documents) and programmatic definitions of interfaces (C# code). SvcUtil.exe either retrieves the service definition from a WSDL file on disk using the DISCO protocol (Microsoft proprietary WS discovery protocol) or directly from a running service instance through the standard WS-MetaDataExchange protocol. WSDL / XSD .Net C# code Exportable contract description Programmatic definition of contract SvcUtil.exe
  • 17. © Peter R. Egli 2015 17/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 9. WCF service hosting A service host is the process that runs (executes) the service(s). WCF provides different possibilities to host a service. A. Self-hosted service: The service runs in an application process that the developer created. The lifecycle (when is service opened and closed) is controlled by the service itself. B. Standard Windows hosting process: .Net and Windows offer system processes that are designed to host services. a. IIS (Internet Information Services):  Only HTTP transport supported (IIS is a web server). b. WAS (Windows Activation Services):  New process activation framework on which IIS 7.0 is based.  Supports HTTP, TCP, and pipe transports. c. Windows services:  Standard Windows execution with security etc.  Lifecycle of service controlled by service startup configuration. More information and a comparison of WCF hosting options see http://msdn.microsoft.com/en- us/library/ms730158.aspx.
  • 18. © Peter R. Egli 2015 18/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 10. Steps for creating and running a WCF service (1/4) The following steps outline how to create a web service in Visual Studio 2010. 1. Visual Studio 2010 project selection (1/2): The hosting environment of a web service defines the project template to be used. a. Visual C# / WCF / WCF Service Library project:  Output: Service DLL (Dynamic Link Library).  To be run in WAS.  Files: IService1.cs with [ServiceContract] attributes (service interface = contract). Service1.cs (service implementation of interface). App.config (configuration file with transport binding and other settings). b. Visual C# / WCF / WCF Service Application project:  Output: Service DLL.  To be run in IIS.  Files: IService1.cs with [ServiceContract] attributes. Service1.cs (service implementation). Web.config (configuration file with HTTP-transport binding and other settings).
  • 19. © Peter R. Egli 2015 19/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 10. Steps for creating and running a WCF service (2/4) The following steps outline how to create a web service in Visual Studio 2010. 1. Visual Studio 2010 project selection (2/2): c. Self-hosted:  Standard C# application project. d. Managed Windows service (formerly called NT service):  Windows service project.  Implementing class has to inherit from ServiceBase (base class for Windows service) as well as from a WCF service interface.
  • 20. © Peter R. Egli 2015 20/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 10. Steps for creating and running a WCF service (3/4) 2. Interface definition (service contract as C# interface or C# class): Define the interface of the web service with a .Net interface. Example interface contract definition in C# (containing operation contracts): [ServiceContract(Namespace = "http://indigoo.WSMW")] public interface IMyInterface { [OperationContract] string MyFunction(); [OperationContract] int MyOtherFunction(); } 3. Service contract implementation (C# class implementing the interface): Create .Net class that implements the web service interface. public class MyService : IMyInterface { public string MyFunction() {...} ... }
  • 21. © Peter R. Egli 2015 21/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 10. Steps for creating and running a WCF service (4/4) 4. Deploy and run the service: The final step is to deploy the service assembly (DLL) into the hosting environment or to start it in case of self-hosting. For self-hosting services, the following code needs to be added to the service (definition of endpoint with address and binding): selfHost.AddServiceEndpoint(typeof(MyService), new BasicHttpBinding(), "MyService"); Finally the service can be started in the WCF self-hosting environment as follows: selfHost.Open();
  • 22. © Peter R. Egli 2015 22/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 11. WCF configuration versus programming (1/2) WCF client and service can be defined by configuration (XML file, declarative) or programmatically (.Net classes). Good practice: For improved reusability of web services in different environments, contract ('C') and address ('A') as well as transport binding ('B') should be separated.  Define interface and implementation programmatically (C#) without transport and message encodings.  Definition of transport binding, address and message encoding in configuration file. Declarative service configuration: Major sections of a service configuration (App.config or Web.config)) file are: <system.ServiceModel> <services> <service> <endpoint/> </service> </services> <bindings> <!-- Specify one or more of the system-provided binding elements, for example, <basicHttpBinding> --> <!-- Alternatively, <customBinding> elements. --> <binding> <!-- For example, a <BasicHttpBinding> element. --></binding> </bindings> <behaviors> <!-- One or more of the system-provided or custom behavior elements. --> <behavior> <!-- For example, a <throttling> element. --> </behavior> </behaviors> </system.ServiceModel>
  • 23. © Peter R. Egli 2015 23/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 11. WCF configuration versus programming (2/2) Graphical configuration of service with SvcConfigEditor.exe: The service can be configured graphically with the utility SvcConfigEditor.exe (path 'Microsoft SDKsWindowsv7.0ABinSvcConfigEditor.exe). SvcConfigEditor.exe can also be launched through the App.config / Web.config files' context menu:
  • 24. © Peter R. Egli 2015 24/24 Rev. 2.20 WCF – Windows Communication Foundation indigoo.com 12. WCF and SOAP messages Usually WCF hides the mapping of operations (operation contracts, data contracts) to SOAP messages (WCF bindings that use SOAP messages automatically map operations into SOAP messages). If necessary, WCF MessageContracts provide complete control over the structure of the exchanged SOAP messages (similar concept to JAX-WS @WebServiceProvider annotations). MessageContracts define a class that can be used as argument type in operations. In MessageContracts, the class members can be mapped to the SOAP header or body as follows: namespace WSMW_WCF { [ServiceContract] interface IHelloWorld { [OperationContract] HelloResponseMessage SayHello(String helloMsg); } [MessageContract] public class HelloResponseMessage { private string localResponse = "..."; private string extra = "..."; [MessageBodyMember] public string Response { get { return localResponse; } set { localResponse = value; } } [MessageHeader] public string ExtraValues { get { return extra; } set { this.extra = value; } } } }