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
Audiences
Limited. Registered network only.
Unlimited. World Wide Web.
Data Transfer
Faster
Slower
Manageability
Easy
Deployment
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.