I was searching the web some months earlier looking for Microsofts RESTful service support and got quite confused. They took different approaches in the last years (in combination with renaming the technologies):
- WCF Web Http
- WCF Rest Starter Kit
- WCF Web Api
Their latest (and hopefully final for the next years) approach was to take the best out of the two worlds ASP.NET MVC and WCF Web Api and gave it the name "ASP.NET Web API". Note that this is not part of WCF any more, it ships with ASP.NET MVC 4 (as open source).
Elements that were taken from ASP.NET MVC are:
- Model Binding
- IoC support
- Link generation
- VS template + scaffolding
The following was taken from WCF Web Api:
- Up-to-date programming model
- HttpClient, HttpServer
- Async support (=> performance and scalability)
- Content negotiation
- Service descriptions (in form of help pages)
- Self hosting
ASP.NET Web API functionality will look very familiar to developers that had to do with ASP.NET MVC in the past. All of the concepts have been reused, some were fine tuned where service specific functionality made it necessary.
Here is an interesting introduction.
You should also use it for your also for your client side callbacks rather than only for "real" web services.
Reason for this is that ASP.NET Web API provides:
- more flexibility and better adheres to the principle of separation of concerns
- a unique programming model for both "real" web services and Ajax callbacks