Powered by Blogger.

Sunday, March 2, 2014


In this post we will discuss about ABC of WCF. You can also check out my previous posts on:

- Different Methods in SqlRoleProvider class in Asp.Net

- Ten Tips for Optimizing SQL Server Performance

- How to handle exception in sql server stored procedure?

ABC of WCF composed of Address, Binding, Contract.

The endpoints specify an Address that defines where the endpoint is hosted. It’s basically url.

The endpoints also define a binding that specifies how a client will communicate with the service and the address where the endpoint is hosted.
Different types of bindings supported in WCF:
NetPeerTcpBinding etc.

The endpoints specify a Contract that defines which methods of the Service class will be accessible via the endpoint; each endpoint may expose a different set of methods.

Different contracts in WCF:
Service Contract
Data Contract
Message Contract
Fault Contract

Service Contract:
Service contracts describe the operation that service can provide. For Eg, a Service provide to know the temperature of the city based on the zip code, this service is called as Service contract. It will be created using Service and Operational Contract attribute.

Data Contract:
Data contract describes the custom data type which is exposed to the client. This defines the data types, which are passed to and from service. Data types like int, string are identified by the client because it is already mention in XML schema definition language document, but custom created class or data types cannot be identified by the client e.g. Employee data type. By using Data Contract we can make client to be aware of Employee data type that are returning or passing parameter to the method.

Message Contract:
Default SOAP message format is provided by the WCF runtime for communication between Client and service. If it is not meeting your requirements then we can create our own message format. This can be achieved by using Message Contract attribute.

Fault Contract:
Suppose the service I consumed is not working in the client application. I want to know the real cause of the problem. How I can know the error? For this we are having Fault Contract. Fault Contract provides documented view for error occurred in the service to client. This helps us to easy identity, what error has occurred.