WCF is a programming paradigm for building network distributed services.
Is the latest framework for building SOA applications.
Is a combined features of web services, .NET remoting, MSMQ, COM+.
WCF vs. Web services
Can be hosted in IIS
Can be hosted in IIS , WAS, Windows service
One way, request-response operation types
One way , request-response , duplex
System.Xml.Serialization is used for serialization
System.Runtime.Serialization is used for
Can be accessed through HTTP
HTTP ,TCP , MSMQ , P2P
Security, Reliable messaging, Transactions
Bindings are used to specify the transport, encoding, and protocol details required for clients and services to communicate with each other.
The contract is a standard way for describing what the service does.
There four types of the contracts
1. Service Contract
2. Data Contract
3. Message Contract
4. Fault Contract
The advantage of WCF over web services is that WCF services can be hosted in IIS, Self Hosting, Windows activation
WCF throttling provides some properties that you can use to limit how many instances or sessions are created at the
Limits the total number of calls that can currently be in progress
across all service instances. The default is 16.
The number of InstanceContext objects that execute at one time
across a ServiceHost. The default is Int32.MaxValue.
A positive integer that limits the number of sessions a ServiceHost
object can accept. The default is 10.
In WCF there are three ways for communication
1. One way
3. Call back
Events allow the client or clients to be notified about something that has occurred on the service side. An event may result
from a direct client call, or it may be the result of something the service monitors. The service firing the event is called the
publisher, and the client receiving the event is called the subscriber.
WCF Rest services
REST stands for Representational State Transfer. (It is sometimes spelled "ReST".) It relies on a stateless, client-server,
cacheable communications protocol -- and in virtually all cases, the HTTP protocol is used.
REST is an architecture style for designing networked applications. The idea is that, rather than using complex mechanisms
such as CORBA, RPC or SOAP to connect between machines, simple HTTP is used to make calls between machines.
In many ways, the World Wide Web itself, based on HTTP, can be viewed as a REST-based architecture.
RESTful applications use HTTP requests to post data (create and/or update), read data (e.g., make queries), and delete
data. Thus, REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.
REST is a lightweight alternative to mechanisms like RPC (Remote Procedure Calls) and Web Services (SOAP, WSDL, et al.).
Later, we will see how much more simple REST is.