is a feature of MicrosoftDotNet
that provides RPC/RMI-like capabilities. John Paul Mueller has said this technique is comparable to using DistributedCom
, but with more access to underlying communication mechanisms. Another point he noted was the use of configuration files instead of registry entries in days of old.
For the official Microsoft description, see http://msdn.microsoft.com/library/en-us/cpguide/html/cpconaccessingobjectsinotherapplicationdomainsusingnetremoting.asp
Out of the box, .NET Remoting supports HTTP/SOAP and binary network protocols and formats. .NET Remoting is designed to be very customizable and extensible. New data formats and network protocols can be plugged in to the architecture, providing interoperability with non-.NET systems. For example, libraries that support the CORBA/IIOP protocol in .NET Remoting can be found at http://remoting-corba.sf.net/
. Other examples are available on the internet that use SMTP, message queues, and other network protocols.
Unlike many other RPC-like systems, .NET Remoting does not have an InterfaceDefinitionLanguage
or a compiler that generates stubs, skeletons, and metadata. Instead, .NET Remoting relies extensively upon reflection to marshal and unmarshal network messages. This arguably makes it easier to use than some other remoting systems, but raises concerns about its performance.
A few practical issues were discussed, including the case where the client machine uses a virtual IP address and thereby causes problems for the server who wants to communicate back with it.
Three sample chapters from second edition of "Advanced .NET Remoting" book at http://www.theserverside.net/articles/content/AdvancedNETRemoting_Chapters/samples.zip
- Extending DotNet remoting
- Developing a Transport Channel
- Context matters (undocumented ways to create/maintain business logic at metadata level).
Projects that aim to implement .NET Remoting-like capabilities for Java are http://www.enterpriseobjectbroker.org/