There are only a few basic principles to follow when designing high-performance applications, including resource management and using asynchronous I/O whenever possible. Also, understanding the underlying protocol reveals several possibilities for improving performance depending on the behavior of the application. These principles can be applied to any of the networking- related classes in the .NET Framework, including the Socket class and the Web classes. Additionally, understanding how the Web-related classes are built offers insight on how to maximize performance. Following these simple guidelines is straightforward and will result in better performance and more scalable applications.