Connection-Oriented Bindings

Connection-oriented transports such as named pipes and TCP are ideal for crossing process and machine boundaries, and yield greater performance and reliability than HTTP transport. Named pipes support reliable and sequential data transfer (FIFO) via memory-mapped files. Communications may be handled over one-way pipes (caller writes, receiver reads), or half-duplex (both caller and receiver read and write to the pipe—just not at once). TCP sockets, on the other hand, provide endpoints through which caller and receiver communicate, as a full-duplex implementation (two-way).

WCF provides standard bindings for both of these protocols. NetNamedPipeBinding wraps communication over named pipes, and limits that communication to the same machine for security reasons (you can be certain your named pipe endpoints cannot be called remotely). NetTcpBinding enables TCP socket communication for RPC and streaming scenarios. In this section, I’ll show you how to work with NetNamedPipeBinding and NetTcpBindng endpoints and discuss scenarios in which each binding is most applicable. You’ll complete a lab first to put them to use, and then I’ll dig into the details.

Tip

NetPeerTcpBinding is also based on the TCP protocol, offering peer-to-peer communications. This binding has implications beyond WCF and is too broad to cover in this book.

Lab: Distributing Calls with NetNamedPipeBinding and NetTcpBinding

In this lab, you will turn a two-tier web application into an n-tier, ...

Get Learning WCF now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.