This chapter laid the groundwork for the ambitious file-sharing application that we'll develop in the next chapter. Here you learned how to use the .NET web-service functionality and a back-end database to create a highly scalable registry service. Best of all, the code is carefully separated into multiple layers through stored procedures and a dedicated database component, thereby ensuring that it can be easily altered and extended in the future.
It's important to realize that the discovery process isn't standardized in peer-to-peer applications. There are many other ways you can organize or customize a registration database. For example, the registration database used in this example stores enough data for peers to make direct TCP/IP connections. However, if you wanted to use some other type of communication protocol, you might store different information. Chapter 10 develops a discovery service that uses Remoting. It simply serializes ObjRef objects to a binary database field. A peer can then read this information, reconstruct a proxy object, and use it directly through the .NET Remoting platform services.