Distributed .NET Programming in C# [aPress]
by Tom Barnaby

Review By Peter A. Bromberg, Ph.D.
Printer - Friendly Version

Peter Bromberg

Distributed .NET Programming in C# is a well thought - out guidebook designed for programmers who are interested in using .NET technology to write distributed applications. Tom Barnaby presents nine logically organized chapters on everything from the evolution of distributed application development to Remoting, COM+ (serviced components) and Message Queueing. (There is an additional chapter written by Andrew Troelson on Data Access with ADO.NET which actually is from one of Troelson's books.)

What's unique about this book is that although in many cases the material could be said to cover some "well trampled ground" about .NET, it does so with a specific view toward the types of .NET technologies that are most likely to be used in a distributed application environment, and the examples and instructions focus on this.



Tom Barnaby is an instructor at Intertech and works with Andrew Troelson there. Troelson has already authored several books for aPress and the "Troelson influence" (a good thing) is evident in Barnaby's book. As Barnaby states in his Introduction, don't expect to find entire working samples of a "Pizza Delivery Service" in a book like this. Rather, he focuses on the essential concepts and code that illustrates working examples.

In his first chapter, Barnaby details the five principles of Distributed Design and presents an excellent treatise on developing "Chunky" rather than "Chatty" design.

In Chapter 2, "This is .NET", we get an overview of the .NET infrastructure including namespaces, assemblies, configuration files, private and shared assemblies, versioning, policies, attributes, reflection, garbage collection, IDisposable, and serialization.

Chapter 3 presents an introduction to .NET Remoting, and Chapter 4 covers more in-depth remoting issues. Chapter 5 covers additional remoting techniques such as the metadata deployment issue, using SOAPSUDS, delegates, and what I found to be a remarkable discussion of using Call Context to transmit "out of band" parameters such as security tokens without disturbing the interface signature of a class through a logical rather than a physical thread progression. While these chapters don't go into the kind of depth you'll find in Ingo Rammer's Remoting book, they nevertheless represent a reasonably complete treatment of the subject.

Chapter 6 presents XML Web Services. While a good introduction to web services and how they may be used in a distributed programming environment, I found this chapter to be a little on the "light side".

Chapter 7 covers COM Interop. It really only covers the basics, but if you're not familiar with Interop, its a start.

Chapter 8, "Leveraging Component Services", is a much more complete treatment of Serviced Components and covers most of the material developers need to know.

Chapter 9, ".NET Message Queuing" is a reasonably detailed explanation of the uses of .NET support for MSMQ and is a subject that unfortunately is sorely missing from most of the .NET books I've read.

Finally, we have the mysterious "APPENDIX" which is really Andrew Troelson's Chapter 13 in toto from his book, "C# and the .NET Platform". There is no explanation why we are getting a chapter from another author's book. Who knows? Perhaps Barnaby ran out of gas and his buddy came in to help? We'll probably never know. If you do not own the Troelson book, I'll submit that it is a good chapter indeed.

This is a good book, it covers a lot of ground very efficiently. I'd recommend it as an "add on" to your collection of basic books on the .NET Platform. It covers a number of valuable concepts and techniques. It could be more complete in some areas, in my opinion, but I'd still rate it as a "buy".


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. Pete's samples at GotDotNet.com have been downloaded over 41,000 times. You can read Peter's UnBlog Here.  --><--NOTE: Post QUESTIONS on FORUMS!

Do you have a question or comment about this article? Have a programming problem you need to solve? Post it at eggheadcafe.com forums and receive immediate email notification of responses.