WCF supports more of the WS-* standards than Web Services. You can’t really do streaming or support atomic transactions etc in Web Services. WCF supports multiple binding’s HTTP, WSHTTP, TCP, MSMQ etc. ASP.NET Web Services has only http.
Web Services have no instance management, i.e. you cannot have a singleton web service, or a session-full web service. You can maintain state of web services but we all know how painful that is.
WCF while very similar to Web Services also incorporates many of the features of Remoting and .NET Enterprise Services (COM+ Services Components).
It is flexible and extensible like Remoting only more so.
It is compatible like Web Services only more so.
It is feature rich like Enterprise Services only more so
1) WCF can maintain transaction like COM+ Does
2) It can maintain state
3) It can control concurrency
4) It can be hosted on IIS, WAS, Self hosting, Windows services
Advantages of the WCF Service over each distributed communication technologies like – .NET Remoting /MSMQ/COM+/Web Service
WCF is interoperable with other services in compared to .Net Remoting where the client and service have to be .Net. WCF services provide better reliability and security in compared to ASMX web services.
• WCF does not replace MSMQ, COM+ or Web Services. so it doesn’t make sense to compare them in the manner you’ve laid out. WCF provides a declarative infrastructure for all forms of communication to and from the Windows platform. It is inclusive of nearly all of the technologies that you asked about rather than being in competition with them (remoting being a noted exception). Using WCF, communications happen at designated service endpoints, and an endpoint can implement different protocols (such as Web Service (presumably you meant asmx style here), WS-* SOAP style services), encodings (such as Text, Binary & MTOM), and transports (such as MSMQ, Http, etc.). Services can be accessible through multiple endpoints, thus providing the capability for a single service to be simultaneously accessed via multiple protocols and transports. With .net 3.5, it becomes even easier to provide Restful endpoints (JSON, POX, RSS, and ATOM). Building services that can be consumed by a web client as JSON while simultaneously being accessed by a business partner through the internet using the SOAP protocol (with its full compliment of WS-* implementations such as WS-Security, WS-ReliableMessaging, etc.) is very powerful leverage.
.NET Remoting is an obsolete technology (no improvements since .net 1.1, and none are planned).
• The advantages of WCF are clearly evident once we see the power it delivers to products not only during development, but also in implementation and maintenance.
Let me explain as to what I am trying to convey:
1. WCF clearly demarcates development and implementation. All the development part lies in the code while the implementation like the binding you choose or the security model you embrace can be handled in the config file. COM+ or related technologies will not give you this advantage. This is what WCF means when it says they reduce plumbing time. Developer concentrates on what he wants to achieve and WCF takes care of delivering it to the outer world in the most reliable, secure and high performance fashion. WCF also scores over remoting by giving out of box solutions to publish code as Web services. The out of box solutions are simpler to implement and have less overheads.
2. WCF opens up communication with other applications communicating from various platforms. The fast development power of .net combined with the fast delivery power of WCF makes the market reach time very minimal. Along with this when we add inter operatability, WCF simply reaches out do some work to achieve this but in WCF, all that we have to do is to enable trace by changing the config file and WCF starts providing traces for you.
3. Further. This statement doesn’t mean that a WCF service runs on Linux but can talk to any app written based on certain set of protocols specified by WCF. In the Web world this means it is available on every major browser. With other technologies, achieving the same requires lots of tweaking but it is available out of box when you embrace WCF.
4. Hosting a WCF service is very simple on IIS 7 or WAS in Vista or WIN 2K8. In WIN 2K3 and WIN XP SP2 it can be hosted on IIS 6 for the HTTP mode and as a WIndows service or even self hosting will do. To achieve the same too it takes minimal efforts.
5. WCF has an integrated Logging mechanism that helps you log traces that become a boon during maintanence. In other technologies, developer has to Security mechanism in WCF is fairly simple and out of box when you look from the implementors perspective but is very robust and highly secure. The best part is that for the highy used and recommended bindings, WCF provides default security which can be trusted to the core. The message security on WSHTTPbinding is an example on these lines.
Over all to conclude I would say if you are with MS technologies and plan to stick to same in the long run, then WCF is something you should not miss to embrace. The performance and other data points that I convey here are my personal experience during integration of our product (which is 11 years old and has almost all flavours of MS technologies) with WCF.
Moreover it is a framework to develop Service Oriented applications under Microsoft platform mixing both message and RPC style of programming. Through this we can achieve platform optimization through binary as well as open standards-based communications.