Dot Net For All

WCF or Web Api ? Make your own choice.

WCF bindings

There are lots of article out there to explain you the difference between WCF and Web Api. But while working in practical scenarios which one to choose ? In this article I will cover the difference from the pragmatic point of view which should help you to choose the best among WCF and web api.

WCF vs Web API

               Scenarios for WCF                         Scenarios for Web API
WCF is based on SOAP protocol Web Api is based on REST architecture
Client need to have a proxy to contact the service operations. Learn how to create a client proxy here. There is no need for client to have a proxy. The client can simple make a HTTP call to the URL and access the resources.
 If there are any changes done to the service, client need to know the changes through the WSDL document or changes in the proxy class at client side There is no need for the client to update any documents or base class when changes are done for service
To test the service we need to use the tools like WCFTestClient to check the results There is no need to have any tools to test the output. We can see the output in any web client like IE, chrome etc.
WCF supports various bindings like NetTcp, basicHttp, IPC, wsHttp.  Web Api supports only HTTP protocol which is stateless.
WCF supports SOAP based output files which are basically XML files. It also supports Json format for WebBindings.  WCF supports output in form of Json, Text or it can support custom output formatters.
Supports client proxy initialization like PerCall, Single, or per session based on the requirements Does not provide any such functionality
With WCF we have a very great functionality of exposing the Metadata in which client can know about the operations beforehand. With web api we need to have well documented model so that client can know what it can access.
WCF uses SOAP faults to transport the faults and exceptions across the wire. Web Api uses Status code to show the success or error to the client.
Operations in WCF can be invoked in many ways. We can invoke operations in many ways like Request/Response, One-way operation, call back and async calls. Web API call only support request- response way of invoking the api methods.

 

Conclusion:

I have covered all the possible differences between WCF and Web Api. If you are aware of any other differences please leave a comment.

Top career enhancing courses you can't miss

My Learning Resource

Excel your system design interview