Summary and Info
With the arrival of .NET remoting, any programmer who wants to work with distributed objects can benefit from Advanced .NET Remoting, a solid tour of basic and expert techniques for working with distributed code on Microsoft's newest platform.This title's concise, code-centered approach, backed up by judicious discussion of the finer technical points of .NET, is what helps make it a success. After touring the history of standards used for distributed computing over the years, from DCE/RPC to CORBA to COM and related Microsoft technologies, the author zeroes in on .NET remoting. Short, digestible examples highlight the relevant objects and APIs useful to create and invoke objects remotely. From the basics, the book moves forward with other possibilities for designers, whether using by value or reference arguments for objects, client-activated vs. server-activated objects, and a useful section on asynchronous processing for remote function calls. Early examples use the APIs and strategies you'll need to work on your own, and the author highlights "best practices" like using class factories.Detailed discussion of deployment options (using XML) is followed by a quick discussion of security and authentication and then managing object lifetimes (including programmatic options through leasing and sponsors). Coverage of using strongly named assemblies (for the Global Assembly Cache, GAC) and versioning stresses the finer points of how different versions of .NET components can be invoked on the same server.For experts, there's a fine section that covers .NET remoting internals, explains the details of making distributed calls in .NET, and shows off how messages are formatted and passed between systems through proxies. Excellent use of sequence diagrams showing these features at work will make this chapter invaluable for the advanced reader (though you still use the sample code without having to master these .NET internals).The book returns to its pragmatic focus with some interesting sample code for compressing and encrypting .NET remote messages with built-in support classes in .NET. A highly developed chapter demonstrates how you use custom transport channel to make remote calls via e-mail (through SMTP and POP3), showing off the flexibility of the .NET programming model. For the truly adventurous developer, a final chapter explores several (undocumented) features for examining and using context objects used in the .NET remoting model.