In my ongoing quest to produce the simplest table possible summarizing the key differences between the various Windows Communication Foundation (WCF) built-in bindings, I came up with the following:
Binding Class Name
Transport
Message Encoding
Message Version
Security Mode
RM
Tx Flow*
BasicHttpBinding
HTTP
Text
SOAP 1.1
None
X
X
WSHttpBinding
HTTP
Text
SOAP 1.2
WS-A 1.0
Message
Disabled
WS-AT
WSDualHttpBinding
HTTP
Text
SOAP 1.2
WS-A 1.0
Message
Enabled
WS-AT
WSFederationHttpBinding
HTTP
Text
SOAP 1.2
WS-A 1.0
Message
Disabled
WS-AT
NetTcpBinding
TCP
Binary
SOAP 1.2
Transport
Disabled
OleTx
NetPeerTcpBinding
P2P
Binary
SOAP 1.2
Transport
X
X
NetNamedPipesBinding
Named Pipes
Binary
SOAP 1.2
Transport
X
OleTx
NetMsmqBinding
MSMQ
Binary
SOAP 1.2
Message
X
X
Notes: X = Not Supported, WS-A = WS-Addressing, WS-AT = WS-AtomicTransaction, OleTx = OleTransactions
* Transaction flow is always disabled by default, but when you enable it, these are the default tx protocols
Although some of these values can be configured differently on certain bindings, the table shows the defaults in each area. I’m pretty happy with this one.