Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

6/27/2014 Understanding various types of WCF bindings

Understanding various types of WCF bindings


P o st e d By : S h aile ndra Ch auh an, 2 0 Jul 2 0 1 3
U pdat e d On : 2 4 Jun 2 0 1 4
Ke y wo rd s : b u i l t i n b i n d i n g s i n wcf, d i ffe re n ce b e t we e n v a ri o u s wcf b i n d i n g s ,
s e l e ct i n g a wcf b i n d i n g , h o w t o ch o o s e a p p ro p ri a t e b i n d i n g

W CF binding is a set of binding elements and each element specify, how the service and client will
communicates with each other's. Each binding must have at least one transport element and one
message encoding element.

Different types of WCF bindings

WCF has a couple of built in bindings which are designed to fulfill some specific need. You can also define
your own custom binding in WCF to fulfill your need. All built in bindings are defined in the
System.ServiceModel Namespace. Here is the list of 10 built in bindings in WCF which we commonly used:

01. Basic binding


This binding is provided by the BasicHttpBinding class. It is designed to expose a WCF service as an
ASMX web service, so that old clients (which are still using ASMX web service) can consume new
service. By default, it uses Http protocol for transport and encodes the message in UTF - 8 text for-
mat. You can also use Https with this binding.

02. Web binding


This binding is provided by the WebHttpBinding class. It is designed to expose WCF services as Http
requests by using HTTP-GET, HTTP-POST. It is used with REST based services which may give output as
an XML or JSON format. This is very much used with social networks for implementing a syndication
feed.

03. Web Service (WS) binding


This binding is provided by the WSHttpBinding class. It is like as Basic binding and uses Http or Https
protocols for transport. But this is designed to offer various WS - * specifications such as WS – Reliable
Messaging, WS - Transactions, WS - Security and so on which are not supported by Basic binding.

wsHttpBinding= basicHttpBinding + WS-* specification

04. WS Dual binding


This binding is provided by the WsDualHttpBinding class. It is like as wsHttpBinding except it sup-ports
bi-directional communication means both clients and services can send and receive messages.

05. TCP binding


This binding is provided by the NetTcpBinding class. It uses TCP protocol for communication be-tween
http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html 1/4
6/27/2014 Understanding various types of WCF bindings

two machines with in intranet (means same network). It encodes the message in binary format. This is
faster and more reliable binding as compared to the Http protocol bindings. It is only used when
communication is WCF - to – WCF means both client and service should have WCF.

06. IPC binding


This binding is provided by the NetNamedPipeBinding class. It uses named pipe for Communication
between two services on the same machine. This is the most secure and fastest binding among all the
bindings.

07. MSMQ binding


This binding is provided by the NetMsmqBinding class. It uses MSMQ for transport and offers sup-port
to disconnected message queued. It provides solutions for disconnected scenarios in which service
processes the message at a different time than the client send the messages.

08. Federated WS binding


This binding is provided by the WSFederationHttpBinding class. It is a specialized form of WS binding
and provides support to federated security.

09. Peer Network binding


This binding is provided by the NetPeerTcpBinding class. It uses TCP protocol but uses peer net-
working as transport. In this networking each machine (node) acts as a client and a server to the other
nodes. This is used in the file sharing systems like torrent.

10. MSMQ Integration binding


This binding is provided by the MsmqIntegrationBinding class. This binding offers support to
communicate with existing systems that communicate via MSMQ.

Choosing an Appropriate WCF binding

. Depending upon your requirements, you can choose a binding for your service as shown below in the
diagram:

http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html 2/4
6/27/2014 Understanding various types of WCF bindings

WCF bindings comparison

Binding Protocol/Transport Message Security Default Transaction Duplex


Encoding Session

BasicHttpBinding Http, Https Text None No - -

WSHttpBinding Http, Https Text Message Optional Yes -

WSDualHttpBinding Http, Https Text Message Yes Yes Yes

NetTcpBinding TCP Binary Transport Optional Yes Yes

NetNamedPipeBinding Named Pipe Binary Transport Yes Yes Yes

NetMsmqBinding MSMQ Binary Transport Yes Yes No

WSFederationHttpBinding Http, Https Text Message Yes Yes No

NetPeerTcpBinding P2P Binary Transport - - Yes

MsmqIntegrationBinding MSMQ Not Transport Yes Yes -


Supported

What do you think?


http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html 3/4
6/27/2014 Understanding various types of WCF bindings

I hope you will enjoy the tips while programming with WCF. I would like to have feedback from my blog
readers. Your valuable feedback, question, or comments about this article are always welcome.

Print Article

Share this article with your friends!


in S h a r e 0

Tw eet

About the Author

Shailendra Chauhan works as Software Analyst at reputed MNC and has more than 5 years of hand
over Microsoft .NET technologies. He is a .NET Consultant and is the founder & chief editor of
www.dotnet-tricks.com and www.dotnetinterviewtricks.com blogs. He is an author of book ASP.NET
MVC Interview Questions and Answers.
He loves to work with web applications and mobile apps using Microsoft technology including ASP.NET,
MVC, C#, SQL Server, WCF, Web API, Entity Framework,Cloud Computing, Windows Azure, jQuery,
jQuery Mobile, Knockout.js, Angular.js and many more web technologies. More...

http://www.dotnet-tricks.com/Tutorial/wcf/VE8a200713-Understanding-various-types-of-WCF-bindings.html 4/4

You might also like