Here I want to tell you about Windows communication Foundation and ABC.
Before learning about ABC, we have to know what WCF is and where it is useful.
Windows communication foundation
WCF is a programming Platform and run time system for building, running and deploying the network distributed services. It is the latest Service oriented technology. Interoperability is the fundamental characteristics of WCF. It has web service, .Net Remoting, MSMQ and COM+ features. It combines all these things into a single umbrella. That means it provides a common platform for all .Net communication.
What is ABC?
Without ABC there is no WCF. ABC means Address, Binding and Contract.
Address
In WCF, every service is associated with a unique address. The address provides two important elements: the location of the service and the transport protocol or transport schema used to communicate with the service. The location portion of the address indicates the name of the target machine, site, or network; a communication port, pipe, or queue; and an optional specific path or URI. A URI is a Universal Resource Identifier, and can be any unique string, such as the service name or a GUID.
WCF supports following transport schemas
- HTTP
- TCP
- Peer Network
- IPC(Inter Process communication)
- MSMQ
Addresses have the following format:
[base address]/ [optional URI]
Sample Addresses are:
http://localhost:8001
http://localhost:8001/firstservice
net.tcp://localhost:8002/firstservice
net.pipe://localhost/piped
net.msmq://localhost/firstservice
TCP Addresses
TCP addresses use net.tcp for the transport, and typically include a port number such as:
net.tcp://localhost:8002/firstservice
When a port number is not specified, the TCP address defaults to port 808.
HTTP Addresses
HTTP addresses use http for transport, and can also use https for secure transport. You typically use HTTP addresses with outward-facing Internet-based services, and can specify a port such as:
http://localhost:8001
http://localhost:8001/firstservice
When the port number is unspecified, it defaults to 80. Similar to TCP addresses, two HTTP addresses from the same host can share a port, even on the same machine.
IPC Addresses
IPC addresses use net.pipe for transport, to indicate the use of the Windows named pipe mechanism. In WCF, services that use named pipes can only accept calls from the same machine. Consequently, you must specify either the explicit local machine name or localhost for the machine name, followed by a unique string for the pipe name:
net.pipe://localhost/piped
You can only open a named pipe once per machine, and therefore it is not possible for two named pipe addresses to share a pipe name on the same machine.
MSMQ Addresses
MSMQ addresses use net.msmq for transport, to indicate the use of the Microsoft Message Queue (MSMQ). You must specify the queue name. When you're dealing with private queues, you must specify the queue type, but that can be omitted for public queues:
net.msmq://localhost/private/firstservice
net.msmq://localhost/firstservice
Peer Network Address
Peer network addresses use net.p2p for transport, to indicate the use of the Windows peer network transport. You must specify the peer network name as well as a unique path and port.
Bindings
Specifies how a service is accessible. In other words: how the two parties will communicate in terms of transport (HTTP, TCP, NamedPipe, Peer2Peer and MSMQ), encoding (text, binary etc.) and protocols (like transactional support or reliable messaging).
Basic binding
Offered by the BasicHttpBinding class, this is designed to expose a WCF service as a legacy ASMX web service, so that old clients can work with new services. When used by the client, this binding enables new WCF clients to work with old ASMX services.
TCP binding
Offered by the NetTcpBinding class, this uses TCP for cross-machine communication on the intranet. It supports a variety of features, including reliability, transactions, and security, and is optimized for WCF-to-WCF communication. As a result, it requires both the client and the service to use WCF.

Join the conversation! Your thoughts help the community grow.