Peer-to-peer applications represent a fundamental shift from most other types of enterprise development and a return to some of the concepts that shaped the early Internet. They provide the key to collaboration and distributed computing, but require a new programming model that offers additional complexity and isn't yet built into development platforms such as .NET. You'll explore some of the new considerations required for peer-to-peer programming and take a closer look at different peer-to-peer models in the next chapter.
Perhaps the most interesting thing about a peer-to-peer system is that the work it performs is often more than the sum of its parts. Peers in a peer-to-peer application are a bit like ants in a colony. Each individual peer contributes relatively little at any one moment, but the sum of the work performed by all peers is surprisingly powerful.