Microsoft .NET Framework provides two common ways to write distributed applications - .NET Remoting and Web Services.
The following table summarizes the advantages and disadvantages of both of these technologies.
|
.NET Remoting |
Web Services |
Protocol Support |
TCP, HTTP |
HTTP Only |
Data Format |
Binary, SOAP |
SOAP, Binary with some extra work |
Data Types |
Rich data types
|
Limited to data types defined in DSD type system |
Platform Interoperability |
Platform dependent. .NET applications only |
Platform independent |
Reliability |
Requires plumbing if not hosted on IIS. |
Highly reliable. Hosted on IIS. |
State Management |
Stateful, Stateless |
Stateless |
Development |
Complex. |
Very easy |
Ease of use |
Complex |
Very easy |
Audiences |
Limited. Registered network only. |
Unlimited. World Wide Web. |
Data Transfer |
Faster |
Slower |
Manageability |
Complex |
Easy |
Deployment |
Complex.
Need to deploy assemblies, configuration files, and object registrations on the client and add reference to get the meta data of the assembly.
Any change in the code need to redeploy these files on the clients. |
Easy.
Just add Web reference to the project using URL.
No deployment required unless there are major architectural changes. |
Security |
More secure. Available through specified port only. |
Less secure if precautions are not being taken. |
Scalability |
Less scalable. Only through SingleCall method but it may get costly if too many clients are calling the object. A new object will be created for each new client request. |
Highly scalable. |
Host Application |
Windows Forms, Console application, Windows Services, and ASP.NET application hosted by IIS and ASP.NET. |
Web service only. Hosted by IIS and ASP.NET. |