.NET Framework Remoting Changes

.NET Framework Remoting

.NET Framework remoting enables client applications to use .NET Framework objects in other processes on the same computer or on any other computer available on its network. .NET Framework remoting enables communication between objects in different application domains and across processes. .NET Framework remoting provides an abstract approach to inter-process communication that separates the remotable object from a specific server and client process and from a specific mechanism of communication. As a result, it is flexible and highly customizable through configuration files.

Although Windows Communication Foundation is positioned as a longer-term replacement for .NET Framework remoting, the following incremental improvements have been made to .NET Framework remoting in the .NET Framework 2.0:

  • Support for IPv6 has been added, mainly to the System.Uri class and the channel helper classes.

  • Generic types, new to .NET Framework 2.0, are also supported by .NET Framework remoting. Generic types can be remoted.

  • The new IPC Channel enables high-speed communication between applications on the same computer by removing dependencies on the networking infrastructure.

  • Channel security features have been added to the System.Runtime.Remoting.Channels and child namespaces. For example, the TCP channel now supports authentication, impersonation, and encryption.

  • Network Load Balancing (NLB) has been improved through changes to the connection cache and method retries. Configuration support has been added to specify the connection cache time-out, to disable the default socket cache, and specify the number of method retries.

  • Improvements in the supporting serialization infrastructure (for example, Version-Tolerant Serialization (VTS) and binary serialization of the Dataset class). VTS is a set of features that enable applications to handle data types that change over time. The Dataset class now supports the more efficient binary serialization, in addition to XML serialization.

For more information about .NET Framework remoting, see Remote Objects in the Windows SDK.

Resources

The following tables list the new .NET Framework remoting namespaces and types. Enumerations and types meant for internal use only are not listed. Only one new namespace has been added to the .NET Framework class library to support IPC channels.

Namespace

Description

System.Runtime.Remoting.Channels.Ipc

Defines a communication channel for remoting that uses the Inter-Process Communication (IPC) system of the Windows operating system. Because it does not use network communication, the IPC channel is much faster than the HTTP and TCP channels, but it can only be used for communication between application domains on the same physical computer.

System.Runtime.Remoting.Channels

The System.Runtime.Remoting.Channels namespace, which represent channels and channel sinks used for the communication transport medium, has the following new types:

Interface or Class

Description

IAuthorizeRemotingConnection

An interface that provides methods that indicate whether a client is authorized to connect on the current channel, based on the client's network address and user identity.

ISecurableChannel

An interface that contains one property, IsSecured, which gets or sets a Boolean value that indicates whether the current channel is secure.