.NET Remoting and Protocol support.

In the technical interview the interview panel asked me about the .NET Remoting supported protocols. Even though i have worked few applications myself in 2,3 year back i was not been able to recollect everything. So i said hey it will support only “TCP” right, i think they might have stunned about my deepness about the subject. Ha ha ha.  The real answer is “.NET Remoting supports all protocols”, so i have messed up the interview guyz.. ha ha ha. it’s an experience and it will help me to improve my knowledge, really if next interview, if any one asked the same, I will answer Phata Phat. Cool!! A Nice interview experience.

Sincerely i didn’t expected them to be asking all .NET Remoting things, I have knowledge in Distributed Application Development and have taken certification 70-529 – MCTS-Distributed application development too. But forgot / unable to recollect all.. Bad luck, some times i does nutty things too.. But i answered about what i recollected. Over all, A Nice interview experience.

I am Quoting to a nice information on .NET Remoting for further reference. It’s not been written or formulated by me. it’s really simple and useful. Credits are given below.

What is .NET Remoting?

.NET Remoting is an enabler for application communication. It is a generic system for different applications to use to communicate with one another. .NET objects are exposed to remote processes, thus allowing interprocess communication. The applications can be located on the same computer, different computers on the same network, or even computers across separate networks.

.NET Remoting versus Distributed COM

In the past interprocess communication between applications was handled through Distributed COM, or DCOM. DCOM works well and the performance is adequate when applications exist on computers of similar type on the same network. However, DCOM has its drawbacks in the Internet connected world. DCOM relies on a proprietary binary protocol that not all object models support, which hinders interoperability across platforms. In addition, have you tried to get DCOM to work through a firewall? DCOM wants to communicate over a range of ports that are typically blocked by firewalls. There are a ways to get it to work, but they either decrease the effectiveness of the firewall (why bother to even have the firewall if you open up a ton of ports on it), or require you to get a firewall that allows support for binary traffic over port 80.

.NET Remoting eliminates the difficulties of DCOM by supporting different transport protocol formats and communication protocols. This allows .NET Remoting to be adaptable to the network environment in which it is being used.

.NET Remoting versus Web Services

Unless you have been living in a cave, or are way behind in your reading, you have probably read something about Web services. When you read the description of .NET Remoting it may remind you a lot of what you’re read about Web services. That is because Web services fall under the umbrella of .NET Remoting, but have a simplified programming model and are intended for a wide target audience.

Web services involve allowing applications to exchange messages in a way that is platform, object model, and programming language independent. Web services are stateless and know nothing about the client that is making the request. The clients communicate by transferring messages back and forth in a specific format known as the Simple Object Access Protocol, or SOAP. (Want to get some funny looks in the hallway? Stand around in the hallway near the marketing department with your colleagues and discuss the benefits of using SOAP).

The following list outlines some of the major differences between .NET Remoting and Web services that will help you to decide when to use one or the other:
  • ASP.NET based Web services can only be accessed over HTTP. .NET Remoting can be used across any protocol.
  • Web services work in a stateless environment where each request results in a new object created to service the request. .NET Remoting supports state management options and can correlate multiple calls from the same client and support callbacks.
  • Web services serialize objects through XML contained in the SOAP messages and can thus only handle items that can be fully expressed in XML. .NET Remoting relies on the existence of the common language runtime assemblies that contain information about data types. This limits the information that must be passed about an object and allows objects to be passed by value or by reference.
  • Web services support interoperability across platforms and are good for heterogeneous environments. .NET Remoting requires the clients be built using .NET, or another framework that supports .NET Remoting, which means a homogeneous environment.

Courtesy & Source : Mark Strawmyer’s blog in Developer.com, published on October 10, 2002 [ORIGINAL LINK]