.NET Remoting [1, 2] is a Microsoft technology comprising a set of application programming interfaces (APIs) for interprocess communication available within the .NET Framework. .NET Remoting serves as the distribution middleware layer, which enables communication between distributed applications that can choose their own transport protocol, serialization format, an application model and different schemes to manage object lifetimes.
Central to the .NET Remoting architecture is the notion of a remotable object and a brokering capability that enables communication between application domains. An application domain in the .NET framework provides a type-safe and secure unit of execution and isolation. .NET Remoting makes it feasible for multiple application domains to communicate with each other without concern for whether they are hosted within the same operating system process, or across multiple different processes within the same node or across a network.
A remotable object is an object which is declared to be serializable remotable objects can cross application domain boundaries. Remotable Objects are published via an Activation URL. Client applications invoking services of a remotable object do so via proxies.
An important feature of .NET Remoting is its ability to allow applications to define their own serialization format, the choice of transport protocol used, and application model used by the communicating entities. By virtue of using the Common Language Runtime (CLR), .NET Remoting can provide interoperability across multiple managed languages. But its portability is restricted to Microsoft platforms only.
- 1..NET Framework Remoting Architecture. http://msdn2.microsoft.com/en-us/library/2e7z38xb.aspx
- 2.Microsoft Technologies, .NET Remoting: Core Protocol Specification, [MS-NRTP] v20080207, Feb 2008.Google Scholar