Introducing .NET Remoting.NET Remoting is a technology that helps developers to build distributed applications and access programs or software components that are across application domains or networks. This enables developers to consuming high-end remote components to optimize their applications. In addition, .NET Remoting is not restricted to any particular application model. You can communicate from a console application, a Web application, or a Windows Service. The remoting servers can also be any type of application domain.
Thus, in .NET Remoting any application can host remoting objects and provide its services to others. .NET Remoting seems to be similar to Distributed Component Object Model (DCOM) and Web Services. But there is significant difference when it comes to the application of these technologies. DCOM is a technology that works when applications exist on similar types of computers and on the same network. Moreover, DCOM supports proprietary binary protocol that is not supported by all object models. Web Services are platform, object model, and programming language independent. Web services are stateless and can only be accessed by HTTP. .NET Remoting, on the other hand, can be used across any protocols. In .NET Remoting, you need to create a remotable object, a host application that listens and accepts the request, and a client application that request for the object. The remote object is confined to the application domain where it is created. In .NET Remoting, this remote object is derived from System.MarshalByRefObject, where MarshalByRefObject class enables remote access of objects across application domains. The remote objects in .NET Remoting are accessed through channels. The two channels used in .NET Remoting are Tcpchannel and Httpchannel. The channels in .NET Remoting are used to physically carry the messages to and from remote objects. Moreover, in .NET Remoting, the client does not call the methods directly. A proxy object is used to raise methods on the remote object. All the public methods that are defined in the remote object class are also available to be called from clients. Thus, .NET Remoting is the approach to interprocess communication that removes the object from being conform to any particular domain.
|