The challenges that face peer-to-peer applications are far from trivial. Some challenges, such as the connectivity hurdles set in place by firewalls, proxy servers, and NAT, are quite difficult to overcome (and won't be fully resolved in this book). That said, hybrid designs, such as those pioneered by Napster and instant-messaging applications, have met with wild popularity, and are much easier to implement in .NET. In this book, you'll focus on these hybrid designs and consider the design decisions (and the trade-offs) you'll face when building such a system. This book also looks forward to the future of peer-to-peer and introduces some of the tools and add-ons that may eventually evolve into a richer peer-to-peer programming framework.
In the next chapter, you'll be introduced to Remoting, which will provide the framework for a peer-to-peer messaging application.