rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9781590594179

Advanced . NET Remoting

by
  • ISBN13:

    9781590594179

  • ISBN10:

    1590594177

  • Edition: 2nd
  • Format: Paperback
  • Copyright: 2005-03-30
  • Publisher: Springer-Verlag New York Inc
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $59.99 Save up to $38.39
  • Buy New
    $59.93
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-3 BUSINESS DAYS

Summary

In-depth coverage of the .NET Remoting Framework. The first part of the book covers a full guide to the 1.1 framework and its capabilities in real-world applications. The second part presents .NET remoting internals, and advises real-world code and development strategies towards working applications. Finally, the book looks at futuristic remoting tools and their present implementation in VS.NET 2005, and explains how remoting procedures will change within the new IDE and revised framework.

Table of Contents

About the Authors xvii
About the Technical Reviewer xix
Acknowledgments xxi
Introduction xxiii
PART 1 Understanding
Introduction to Remoting
3(6)
What Is Remoting?
3(1)
Scenarios for .NET Remoting
3(1)
Centralized Business Logic
4(1)
Physical Separation of Layers
4(1)
Accessing Other Platforms
4(1)
Evolution of Remoting
4(3)
DCE/RPC
5(1)
CORBA
5(1)
DCOM
5(1)
MTS/COM+
6(1)
Java RMI
6(1)
Java EJB
6(1)
Web Services/SOAP/XML-RPC
7(1)
.NET Remoting
7(1)
Summary
7(2)
.NET Remoting Basics
9(16)
Advantages of .NET Remoting
9(14)
Ease of Implementation
9(1)
Extensible Architecture
10(1)
Interface Definitions
11(1)
Serialization of Data
12(1)
Lifetime Management
12(1)
Multiserver/Multiclient
13(1)
Your First Remoting Application
13(1)
The First Sample
14(6)
Extending the Sample
20(3)
Summary
23(2)
.NET Remoting in Action
25(50)
Types of Remoting
25(21)
ByValue Objects
25(1)
Marshal By Ref Objects
26(20)
Types of Invocation
46(13)
Synchronous Calls
47(4)
Asynchronous Calls
51(4)
One-Way Calls
55(4)
Multiserver Configuration
59(8)
Examining a Sample Multiserver Application
60(7)
Sharing Assemblies
67(7)
Shared Implementation
67(1)
Shared Interfaces
67(1)
Shared Base Classes
67(1)
SoapSuds-Generated Metadata
68(6)
Summary
74(1)
Configuration and Deployment
75(48)
Configuration Files
76(24)
Watch for the Metadatal
77(1)
The Problem with SoapSuds
77(5)
Porting the Sample to Use Configuration Files
82(3)
Standard Configuration Options
85(15)
What About Interfaces?
100(8)
Using the IPC Channel in .NET Remoting 2.0
102(6)
Deployment
108(13)
Console Applications
108(1)
Windows Services
108(8)
Deployment Using IIS
116(5)
Summary
121(2)
Securing .NET Remoting
123(38)
Building Secure Systems
123(1)
Authentication Protocols in Windows
124(5)
NTLM Authentication
124(2)
Kerberos: Very Fast Track
126(2)
Security Package Negotiate
128(1)
Security Support Provider Interface
128(1)
Identities and Principals: A Short Overview
129(4)
Securing with IIS
133(7)
Authentication with IIS
133(5)
Encryption and IIS
138(2)
Security Outside of IIS
140(9)
Using the MSDN Security Samples
140(9)
Implementing Authorization in the Server
149(2)
Security with Remoting in .NET 2.0 (Beta)
151(9)
Summary
160(1)
Creating Remoting Clients
161(24)
Creating a Server for Your Clients
161(2)
Creating a Console Client
163(4)
Creating Windows Forms Clients
167(2)
Creating Back-End--Based Clients
169(15)
ASP.NET-Based Clients
169(3)
Remoting Components Hosted in IIS As Clients
172(5)
Security Considerations
177(7)
Summary
184(1)
In-Depth .NET Remoting
185(40)
Managing an Object's Lifetime
185(24)
Understanding Leases
186(10)
Working with Sponsors
196(13)
Using the CallContext
209(4)
Best Practices
212(1)
Security and the Call Context
213(1)
Remoting Events
213(11)
Events: First Take
214(3)
Refactoring the Event Handling
217(5)
Why [OneWay] Events Are a Bad Idea
222(2)
Summary
224(1)
The Ins and Outs of Versioning
225(50)
.NET Framework Versioning Basics
225(8)
A Short Introduction to Strong Naming
225(8)
Versioning in .NET Remoting---Fundamentals
233(13)
Versioning of Server-Activated Objects
233(7)
Versioning of Client-Activated Objects
240(2)
Versioning of [Serializable] Objects
242(4)
Advanced Versioning Concepts
246(27)
Versioning with Interfaces
246(10)
Versioning Concepts for Serialized Types
256(17)
Summary
273(2)
.NET Remoting Tips and Best Practices
275(28)
.NET Remoting Use Cases
275(5)
Cross-AppDomain Remoting
276(1)
Cross-Process on a Single Machine
276(1)
Cross-Process on Multiple Machines in a LAN
276(2)
Cross-Process via WAN/Internet
278(1)
Nonusage Scenarios
279(1)
The Nine Rules of Scalable Remoting
280(1)
Using Events and Sponsors
281(5)
How to Notify Nevertheless
282(1)
Message Queuing to the Rescue
283(3)
Other Approaches
286(1)
SoapSuds vs. Interfaces in .NET Remoting
286(2)
Custom Exceptions
288(2)
Scaling Out Remoting Solutions
290(11)
Load Balancing Basics
290(9)
Taking Nodes Online/Offline
299(1)
Designing Applications for Static Scalability
299(2)
Summary
301(2)
Troubleshooting .NET Remoting
303(18)
Debugging Hints
303(2)
Manual Breakpoints
304(1)
Configuration File Settings
305(4)
Local or Remote?
307(1)
Checking Types on Your Server
308(1)
BinaryFormatter Version Incompatibility
309(2)
Troubleshooting with a Custom Sink
310(1)
Changing Security Restrictions with TypeFilterLevel
311(2)
Using Custom Exceptions
313(2)
Multihomed Machines and Firewalls
315(3)
Client-Activated Objects Behind Firewalls
317(1)
Summary
318(3)
PART 2 Extending
Inside the Framework
321(28)
Looking at the Five Elements of Remoting
321(10)
A Bit About Proxies
322(4)
Understanding the Role of Messages
326(2)
Examining Message Sinks
328(1)
Serialization Through Formatters
329(1)
Moving Messages Through Transport Channels
330(1)
Client-Side Messaging
331(2)
ClientContextTerminatorSink and Dynamic Sinks
332(1)
SoapClientFormatterSink
333(1)
HttpClientChannel
333(1)
Server-Side Messaging
333(5)
HttpServerChannel and HttpServerTransportSink
335(1)
SDLChannelSink
335(1)
SoapServerFormatterSink and BinaryServerFormatterSink
336(1)
DispatchChannelSink
336(1)
CrossContextChannel
336(1)
ServerContextTerminatorSink
337(1)
LeaseSink
337(1)
ServerObjectTerminatorSink and StackbuilderSink
337(1)
All About Asynchronous Messaging
338(10)
Asynchronous IMessageSink Processing
338(2)
Asynchronous IClientChannelSink Processing
340(2)
Generating the Request
342(3)
Handling the Response
345(2)
Server-Side Asynchronous Processing
347(1)
Summary
348(1)
Creation of Sinks
349(10)
Understanding Sink Providers
349(7)
Creating Client-Side Sinks
350(4)
Creating Server-Side Sinks
354(2)
Using Dynamic Sinks
356(1)
Summary
357(2)
Extending .NET Remoting
359(62)
Creating a Compression Sink
359(16)
Implementing the Client-Side Sink
361(3)
Implementing the Server-Side Sink
364(3)
Creating the Sink Providers
367(2)
Using the Sinks
369(2)
Extending the Compression Sink
371(4)
Encrypting the Transfer
375(15)
Essential Symmetric Encryption
376(4)
Creating the Sinks
380(6)
Creating the Providers
386(4)
Passing Runtime Information
390(12)
Changing the Programming Model
402(7)
Using This Sink
408(1)
Avoiding the BinaryFormatter Version Mismatch
409(4)
Using a Custom Proxy
413(6)
Some Final Words of Caution
419(1)
Summary
419(2)
Developing a Transport Channel
421(48)
Protocol Considerations
421(5)
The Shortcut Route to SMTP
422(1)
. . .And Round-Trip to POP3
423(1)
Character Encoding Essentials
424(1)
Creating E-Mail Headers
425(1)
Encapsulating the Protocols
426(19)
Checking for New Mail
433(2)
Registering a POP3 Server
435(2)
Connecting to .NET Remoting
437(8)
Implementing the Client Channel
445(8)
Creating the Client's Sink and Provider
449(4)
Implementing the Server Channel
453(9)
Creating the Server's Sink
458(4)
Wrapping the Channel
462(3)
Using the SmtpChannel
465(3)
Preparing Your Machine
467(1)
Some Final Words of Caution
468(1)
Summary
468(1)
Context Matters
469(18)
Working at the MetaData Level
471(1)
Creating a Context
472(8)
Checking Parameters in an IMessageSink
480(3)
Summary
483(1)
Conclusion
484(3)
PART 3 Reference
APPENDIX A .NET REMOTING USAGE REFERENCE
487(38)
System Types
487(4)
System.Activator Class
488(1)
System.MarshalByRefObject Class
488(1)
System.SerializableAttribute Class
489(1)
System.Delegate Class
490(1)
System.IAsyncResult Interface
491(1)
System.Runtime.Remoting
491(8)
Basic Infrastructure Classes
491(2)
Configuration Classes
493(4)
Exception Classes
497(1)
General Interfaces
498(1)
System.Runtime.Remoting.Channels
499(5)
General Interfaces and Classes
499(5)
System.Runtime.Remoting.Channels.Http
504(2)
HttpChannel Class
504(1)
HttpClientChannel Class
505(1)
HttpServerChannel Class
506(1)
System.Runtime.Remoting.Channels.Tcp
506(2)
TcpChannel Class
506(1)
TcpClientChannel Class
507(1)
TcpServerChannel Class
508(1)
System.Runtime.Remoting.Lifetime
508(4)
ILease Interface
508(1)
ISponsor Interface
509(1)
ClientSponsor Class
510(1)
LifetimeServices Class
511(1)
LeaseState Enumeration
511(1)
System.Runtime.Remoting.Messaging
512(2)
AsyncResult Class
512(1)
CallContext Class
512(2)
LogicalCallContext Class
514(1)
OneWayAttribute Class
514(1)
System.Runtime.Remoting.Metadata
514(2)
SoapAttribute Class
515(1)
SoapTypeAttribute Class
515(1)
SoapFieldAttribute Class
515(1)
SoapMethodAttribute Class
516(1)
SoapParameterAttribute Class
516(1)
SoapOption Enumeration
516(1)
System.Runtime.Remoting.Services
516(2)
EnterpriseServicesHelper Class
516(1)
RemotingClientProxy Class
517(1)
ITrackingHandler Interface
517(1)
TrackingServices Class
517(1)
System.Runtime.Serialization
518(3)
ISerializable Interface
519(1)
SerializationInfo Class
520(1)
StreamingContext Structure
520(1)
SerializationException Class
521(1)
System.Runtime.Serialization.Formatters
521(2)
SoapFault Class
521(1)
SoapMessage Class
521(1)
TypeFilterLevel Enumeration
521(2)
Summary
523(2)
APPENDIX B .NET REMOTING EXTENSIBILITY REFERENCE
525(16)
System.Runtime.Remoting.Messaging
525(4)
IMessage Interface
525(1)
IMessageSink Interface
526(1)
IMethodMessage Interface
527(1)
IMethodCallMessage Interface
528(1)
IMethodReturnMessage Interface
528(1)
MethodCall Class
529(1)
MethodResponse Class
529(1)
System.Runtime.Remoting.Activation
529(1)
IConstructionCallMessage Interface
530(1)
IConstructionReturnMessage Interface
530(1)
System.Runtime.Remoting.Proxies
530(1)
RealProxy Class
531(1)
ProxyAttribute Class
531(1)
System.Runtime.Remoting.Channels
531(9)
IChannelSinkBase Interface
532(1)
IClientChannelSink Interface
532(1)
IClientChannelSinkProvider Interface
533(1)
IClientFormatterSink Interface
534(1)
IClientFormatterSinkProvider Interface
534(1)
IServerChannelSink Interface
534(1)
IServerChannelSinkProvider Interface
535(1)
ITransportHeaders Interface
536(1)
IChannel Interface
537(1)
IChannelReceiver Interface
538(1)
IChannelSender Interface
539(1)
BaseChannelObjectWithProperties Class
539(1)
BaseChannelWithProperties Class
540(1)
BaseChannelSinkWithProperties Class
540(1)
Summary
540(1)
APPENDIX C .NET REMOTING LINKS
541(8)
Ingo's .NET Remoting FAQ Corner
541(1)
MSDN and MSDN Magazine Articles
541(3)
``Improving Remoting Performance''
541(1)
``.NET Remoting Security''
541(1)
``Boundaries: Processes and Application Domains''
542(1)
``.NET Remoting Architectural Assessment''
542(1)
``.NET Remoting Overview''
542(1)
``Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication''
542(1)
``NET Remoting Authentication and Authorization Sample''
542(1)
``Managed Extensions for C++ and .NET Remoting Tutorial''
543(1)
``.NET Remoting Use-Cases and Best Practices'' and ``ASP.NET Web Services or .NET Remoting: How to Choose''
543(1)
``Remoting Examples''
543(1)
``Secure Your .NET Remoting Traffic by Writing an Asymmetric Encryption Channel''
543(1)
``Create a Custom Marshaling Implementation Using .NET Remoting and COM Interop''
543(1)
.NET Remoting Interoperability
544(1)
.NET Remoting: CORBA Interoperability
544(1)
.NET Remoting: Java RMI Bridges
544(1)
XML-RPC with .NET Remoting
544(1)
Custom .NET Remoting Channels
544(2)
Named Pipes Channel for .NET Remoting
545(1)
TcpEx Channel for .NET Remoting
545(1)
Jabber Channel
545(1)
Remoting Channel Framework Extension
545(1)
``Using MSMQ for Custom Remoting Channel''
545(1)
``Using WSE-DIME for Remoting over Internet''
546(1)
Interesting Technical Articles
546(2)
C# Corner: Remoting Section
546(1)
``Share the ClipBoard Using .NET Remoting''
546(1)
``Chaining Channels in .NET Remoting''
546(1)
``Applying Observer Pattern in .NET Remoting''
546(1)
``Aspect-Oriented Programming Enables Better Code Encapsulation and Reuse'' and ``.NET Remoting Spied On''
547(1)
``Persistent Events in Stateless Remoting Server''
547(1)
``Intrinsyc's Ja.NET---Extending the Reach of .NET Remoting''
547(1)
``Implementing Object Pooling with .NET Remoting---Part I''
547(1)
``.NET Remoting Versus Web Services''
547(1)
``.NET Remoting Central''
547(1)
``Output Caching for .NET Remoting''
548(1)
``Abstract Client Formatter Sink''
548(1)
Remoting Tools
548(1)
Remoting Management Console
548(1)
Remoting Probe
548(1)
Index 549

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program