Remoting

Remoting is the cornerstone of a distributed application, and the BCL provides excellent support for making and receiving remote method calls. Calls may be synchronous or asynchronous; support request/response or one-way modes; can be delivered over multiple transports (TCP, HTTP, and SMTP); and can be serialized in multiple formats (SOAP and binary). The remoting infrastructure supports multiple activation models, lease-based object lifetimes, distributed object identity, object marshaling by reference and by value, and message interception. These types can be extended with user-defined channels, serializers, proxies, and call context.

For more information, see the following namespaces:

System.Runtime.Remoting
System.Runtime.Remoting.Channels.Core
System.Runtime.Remoting.Channels.HTTP
System.Runtime.Remoting.Channels.MetadataServices
System.Runtime.Remoting.Channels.SMTP
System.Runtime.Remoting.Channels.TCP
System.Runtime.Remoting.Services

Important types in other namespaces include:

System.AppDomain
System.CallContext
System.ContextBoundObject
System.ContextStaticAttribute
System.MarshalByRefObject

Get C# Essentials now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.