OK, I’m getting confused again about the differences between the various WCF-based programming models. There are so many variations on the theme - WCF Data Services, WCF RIA Services, WCF Web API, etc. – that I can no longer see the wood for the trees. Microsoft’s insistence on renaming things doesn’t help. So, here’s a quick
aide-mémoire for me based on
WCF, Data Services and RIA Services Alignment Questions and Answers.
Service model | Description | Also known as |
WCF |
- SOAP-based services
- Full flexibility for building operation-centric services
- Supports interoperability (e.g. with Java)
|
|
WCF WebHttp Services |
- Operation centric
- Expose WCF service operations to non-SOAP endpoints
- Best when
- operation-centric HTTP services to be deployed at web scale
- or building a RESTful service and want full control over the URI/format/protocol
|
|
WCF Data Services |
- Data centric
- Best when exposing data model through a RESTful interface
- Includes a full implementation of the OData Protocol
|
- Astoria
- ADO.Net Data Services
|
WCF RIA Services |
- For building an end-to-end Silverlight applications
- Provides a prescriptive pattern that defaults many options for the best experience in the common cases
|
|
WCF Web API |
- Expose applications, data and services to the web directly over HTTP
- Replaces the REST Starter Kit
- Supporting SOAP is not a goal
- New kid on the block
| |
References