There are many reasons to create remotable components:
Cost savings — Changes to business logic do not require you to roll out new software to every client. Instead, you can confine new updates to a small set of business servers.
Increased security for web applications — Implementing .NET Remoting allows your database, for example, to reside safely behind one or more firewalls.
Software Compatibility — Using remotable components, which employ standard formatting protocols like SOAP (Simple Object Access Protocol), can significantly enhance the compatibility of the component with libraries and applications.
Ability to run applications as Windows® services — To run as a Windows service, you must have access to a remotable component hosted by the service. Applications implemented as a Windows service provide many benefits to application developers who require an automated server running as a background process independent of a particular user account.
Flexibility to isolate native code binaries that were previously incompatible — Mix native and managed code without restrictions.
WCF is an end-to-end web service. Many of the advantages afforded by .NET Remoting—a wide selection of protocol interoperability, for instance—can be achieved with a WCF interface, in addition to having access to a richer, more flexible set of native data types. .NET Remoting can only support native objects.
WCF offers more robust choices in most every aspect of web-based development, even implementation of a Java® client, for example.