Here was an interesting set of questions comparing WCF & WWS
1) With .NET 4.0, are we going to see any improvement to close the gap?
2) There seems very little information about this except on Channel 9 or various blogs. Are we going to see more information?
3) Is there a way to get the best of both WWS and .NET in a typical application? For example, use WWS for the web service API for
Here is the reply from Bob (our Product Unit Manager)
WCF and Windows Web Services (WWS) are complementary technologies. WCF is the premier Web Services stack to use when writing managed applications; if you are writing native code and want a SOAP stack then definitely use the WWSAPI. Introducing a native SOAP stack underscores our commitment to interop and WS-*. WWSAPI supports a subset of WS-* and is not as full featured or extensible as WCF. It definitely has a smaller footprint than WCF and it also has higher throughput for the scenarios it supports. This is due to a reduced feature set and implementation in native code. It also interops on the wire with WCF.
To answer the specific questions below:
- The current performance of WCF is industry leading. Please see the link for comparison with WebSphere where WCF easily outperforms the competition: http://download.microsoft.com/download/4/8/6/486B4B4F-5A87-4B5C-BEEC-455290F83274/IBMPower570_WebSphere_7_%20NET_Benchmark_WinSrv2008.pdf
- For most WCF scenarios .NET 4 performance is similar, or slightly better than, WCF perf in .NET 3.5 SP1
- The article references does not show WWSAPI to be 10X faster than WCF (as the customer claims); it does show the working set of WWS (native) to be 0.5-1MB compared to 4.5MB for WCF (managed/.NET). Server throughput is also better for WWS than WCF, but as noted above, WCF is already industry leading. The fact that a highly tuned, native, less-feature-rich SOAP stack has higher server throughput on ping-like service is not concerning. The cost of any realistic service will dwarf the infrastructure cost of either WCF or WWS. Put another way, either stack should meet the performance needs of a service and the deciding factor should be whether you require a native or managed solution.
- The article does not state that most teams in MS are moving to WWSAPI as the customer notes. What is happening is that those teams which require a native SOAP stack can move to WWSAPI; the majority however are using WCF as they are managed.
- Finally, trying to wrap or PInvoke between the two is not recommended. If you are writing managed code use WCF; if you are writing native code use WWSAPI.