In this chapter you've been presented with a condensed (but thorough) primer on Remoting. While Remoting is extremely flexible, most of its assumptions are tailored to stateless enterprise applications that are squarely focused on a small group of powerful server computers. To use Remoting in a peer-to-peer application is an entirely different matter. It will force you to master threading, understand SingleCall activation, and use a central coordinator component. The rewards are a flexible, extensible system that saves you from building key parts of the peer-to-peer infrastructure from scratch.
Depending on your needs, you may even want to extend and customize the Remoting infrastructure. In this case, you'll probably want to consult a dedicated book about Remoting, such as Ingo Rammer's Advanced .NET Remoting (Apress 2002). In the final part of this book, you'll look at one example of a component that extends Remoting with features that are ideal for the peer-to-peer domain: the Intel Peer-to-Peer Accelerator Kit.