I’ve been having trouble finding a straight forward comparison of these two technologies. On the surface they appear to be solving similar, if not the same problems.
Make no mistake – the message coming from Microsoft is not clear or consistent – which probably explains the confusion. I suspect the relationship between these two products is still being “discovered” by MS.
Anyway, in this bliki I will try to sum up my findings as to the differences between them as I figure them out.
WCF (ADO.NET) Data Services | WCF (.NET) RIA Services |
Expose data model as RESTful web service | Prescriptive approach to n-tier app development |
Cross platform interoperation as a goal - “Unlock data silos” - Out-of-box support from future MS products such as SQL2008 R2, Azure, Excel 2010, SharePoint 2010 | Designed specifically for end-to-end Silverlight & ASP.NET solutions - Some technology proprietary to Silverlight (no WPF support) - Use ASP.NET Authentication/Roles across SL and ASP.NET - ASP.NET/AJAX can also access service layer |
Loosely coupled clients and servers | Client & server are designed and deployed together |
Service layer exposes “raw” data sources | Opportunity to easily add business logic into service layer - Encourage “domain” concepts - Strong validation framework - Offline / Sync enabled |
Service can be consumed from .NET, Silverlight, AJAX, PHP and Java (libraries available) | Service can be consumed easily from SL, AJAX, WebForms |
Service’s data source must: - Expose at least one IQueryable property - Implement IUpdateable if you desire updates | Service exposes domain objects via convention: - IQueryable GetX - UpdateX/InsertX/DeleteX |
No design time experience yet (??) | Design time experience with data sources, drag drop etc |
- OData for all clients - Within OData, multiple formats supported (JSON, XML etc) | - SOAP (binary) for SL clients - JSON for AJAX clients - SOAP (XML) for other clients |
Discoverable (?) | Non-discoverable |
Hosted as WCF Service (.svc) | Old version hosted in custom web handler (.axd). New version is WCF service. |
Standardized on OData protocol | Will “support” OData |
More mature – public for at least 2 years, formerly “Project Astoria” | Less mature - public for 6 months |
[ad#Google Adsense #1]
Common features
- Based on WCF
- Use a RESTful architecture
- Can be used to expose any data source (sql, xml, poco/objects etc.)
- Client side libraries provide ability to query using LINQ
General
- Currently they do not share much (any?) technology / code
- RIA Services is not based on top of Data Services
- RIA Services & Data Services will “align”
- OData eventually pushed down into WCF stack
Your opinions are welcome!
References
http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx
http://mschannel9.vo.msecnd.net/o9/mix/09/pptx/t36f.pptx
http://blogs.msdn.com/endpoint/archive/2009/11/18/the-wcf-services-ecosystem.aspx
http://www.douglaspurdy.com/2009/11/20/on-odata-open-data-protocol/
http://msdn.microsoft.com/en-us/data/ee844254.aspx
http://blogs.msdn.com/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx