I came across a great post from Dan Driscoll in which he outlines which stacks are available on Windows for building web services. He is absolutely right in describing the purpose of all 4 stacks available and it worth of quoting him. Here are 4 stacks available on Windows with my comments on each of them:
- Generic Web Services Stacks
- Windows Communication Foundation (WCF) is for building web services and clients using managed code (C#, VB, etc). It is for developers who use managed code in developing their products
- Windows Web Services API (WWSAPI) is for building web services and clients in native C/C++ code and for avoiding introduction of a dependency on .Net Framework for this task. It is for developers who prefer to or have to use native C/C++ code in their products. The goal for this API is to enable native code developers to connect their code to web services in most if not all scenarios available to managed code developers.
- Specialized Web Services Stacks
- Web Services on Devices API (WSDAPI) is the one-stop shop for building applications around Device Profile for Web Services or WS-Discovery. It is for developers who use any of these three technologies and work with devices.
- Windows Remote Management (WinRM) is implementation of WS-Management Protocol that allows hardware and operating systems, from different vendors, to interoperate. It is a set of tools and scripting API for IT professionals who write scripts to automate the management of servers and ISV developers who build management applications.
As you can see, there is actually very fine lines between these stacks and developers who are expected to use them. Hopefully this makes this story more clear for you.