ASP.NET MVC 4 includes some fantastic new support for creating “Web APIs”. This enables you to easily create HTTP services and APIs that can be programmatically called from a broad range of clients (ranging from browsers using JavaScript, to native apps on any mobile/client platform). The new Web API support also provides an ideal platform for building RESTful services.
Should one use WCF or Web API? Confused.. well here is the difference to help you use the apropiate.
WCF
|
ASP.NET Web API
|
Enables building services that support multiple transport protocols (HTTP, TCP, UDP, and custom transports) and allows switching between them.
|
HTTP only. First-class programming model for HTTP. More suitable for access from various browsers, mobile devices etc enabling wide reach.
|
Enables building services that support multiple encodings (Text, MTOM, and Binary) of the same message type and allows switching between them.
|
Enables building Web APIs that support wide variety of media types including XML, JSON etc.
|
Supports building services with WS-* standards like Reliable Messaging, Transactions, Message Security.
|
Uses basic protocol and formats such as HTTP, WebSockets, SSL, JQuery, JSON, and XML. There is no support for higher level protocols such as Reliable Messaging or Transactions.
|
Supports Request-Reply, One Way, and Duplex message exchange patterns.
|
HTTP is request/response but additional patterns can be supported through SignalRand WebSockets integration.
|
WCF SOAP services can be described in WSDL allowing automated tools to generate client proxies even for services with complex schemas.
|
There is a variety of ways to describe a Web API ranging from auto-generated HTML help page describing snippets to structured metadata for OData integrated APIs.
|
Ships with the .NET framework.
|
Ships with .NET framework but is open-source and is also available out-of-band as independent download.
|
Thanks & Regards,
Arun Manglick,