Review: Professional .NET Network
Programming [Wrox]
By Peter A. Bromberg, Ph.D.
Printer - Friendly Version
Peter Bromberg

Professional .NET Network Programming, by Andrew Korwczyk, Vinod Kumar, Nauman Laghari, Ajit Mungale, Christian Nagel, Tim Parker and Srinivasa SIvakumar is 477 pages crammed full of everything about doing network - related programming in .NET, specifically in C#.

Anyone who has worked on or architected an enterprise-level application knows that network programming is one of the core skills necessary to build custom communication classes and methods that prove fundamental to the success of the system.

This book contains enough detailed information to be useful not only to the intermediate - level programmer, but to advanced programmers as well. While prior knowledge of network programming is not assumed, beginners may find it difficult to work through some of the concepts presented.

Chapter 1 of the book deals almost exclusively with a treatment of the basic networking concepts and protocols- the physical network topology, ethernet, routing, gateways, OSI, and TCP/IP, UDP, the IP addressing scheme, subnets, ports, FTP, HTTP, sockets, DNS, proxies, etc.

Chapter 2 jumps right into the fire with an extensive treatise on streams in .NET, both synchronous and asynchronous, FileStream, BufferedStream, MemoryStream, NetworkStream, and CryptoStream. It covers all the Stream Members and Properties, reading and writing, Async callback delegates, stream manipulation, and finally, serialization and formatters.

Chapter 3 reviews the System.Net classes - name lookup, IP addresses, Request and Response, Authentication and Authorization, Connection Management, cookies, proxy servers, sockets, URIs, WebRequest / Response, connection pooling and permissions.

Chapter 4 continues to expand with reasonably extensive coverage of sockets - stream, datagram and raw sockets, ports, asynchronous socket programming, and socket permissions with both declarative and imperative security illustrations. About the only glaring omission I noticed was the absolute nonexistence - throughout the book - of any treatment of the Threadpool class.

Chapter 5 bears down on the TCP protocol, its terminology, connections, flow control, MUX, and TCPClient. There is also some coverage of SMTP and FTP including a pretty good example of how to implement your own FTPClient. The chapter concludes with a discussion of the TCPListener class and a short bit (very short!) about Remoting.

Chapter 6 is unique in that it is the first time I've ever seen an entire book chapter devoted to UDP - and the coverage is excellent.

Chapter 7 continues this discussion and delves into multicast sockets.

Chapter 8 is a fairly extensive in-depth treatment of the HTTP protocol and the related .NET classes, including chunking and the WebClient class. It also discusses how to perform authentication with WebClient and how to handle cookies and proxy support. The chapter concludes with a sample of a 100% managed - code HTTP server

Chapter 9 goes into the EMail protocols SMTP, POP, MIME, System.Web.Mail, NNTP, all of the commands for each protocol.

Finally, Chapter 10 covers cryptography, and is sufficient to give most developers a good start into the symmetric and asymmetric algorithms along with digital signature and how it works.

Chapter 11 is a short chapter that covers the various authentication protocols.

All in all, I would have to give this book "Recommended" status. I expect to be referring to it from time to time. I may not find everything I need in it, however, but then after I let my mouse do the walking and search all 3,083,324,652 web pages on Google, that and this book should keep me in pretty good shape with Network programming in .NET!


Peter Bromberg is a C# MVP, MCP, and .NET consultant who has worked in the banking and financial industry for 20 years. He has architected and developed web - based corporate distributed application solutions since 1995, and focuses exclusively on the .NET Platform.