In all my silverlight interviews i was ask one question mostly that what is the major diffrance between WCF Service and WCF RIA service and 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.


WCF (ADO.NET) Data Services



WCF (.NET) RIA Services


Expose data model as RESTful web servicePrescriptive 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 serversClient & server are designed and deployed together
Service layer exposes “raw” data sourcesOpportunity 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

Common features

  1. Based on WCF
  2. Use a RESTful architecture
  3. Can be used to expose any data source (sql, xml, poco/objects etc.)
  4. Client side libraries provide ability to query using LINQ

General

  1. Currently they do not share much (any?) technology / code
  2. RIA Services is not based on top of Data Services
  3. RIA Services & Data Services will “align”
  4. OData eventually pushed down into WCF stack

For more Info please Refer to.

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