What is the difference between WCF Service, WCF RIA Services and WCF Data Services?
WCF is a communication infrastructure for services in general. WCF RIA services automatically generates client and server proxy objects to facilitate application development, and depends upon WCF to do the actual communication. ADO.Net data services has been renamed to WCF Data Services, and provides OData services over WCF.
Here is a nice article explaining WCF (ADO.Net) Data Services vs WCF Ria Data Services http://jack.ukleja.com/wcf-data-services-vs-wcf-ria-services/
This one is by Collin Blair
http://forums.silverlight.net/t/103015.aspx/1
You question is analogous to asking what the difference between a plain hamburger patty and a hambuger which is why it is hard to get a straight answer. Getting a good answer is also hampered by the fact that RIA Services will not be "feature complete" until at least PDC so any answer you get will be based on expectations and speculation. Finally, RIA Services is plural for a reason, there are multiple classes in RIA Services which do different things. Here is my answer based on the roadmaps and my understanding of the goals of the RIA Services team.
RIA Services is a library of client and server components that bolt on to ADO.NET Data Services. When the full stack of RIA Services is used the difference between RIA Services and plain WCF are as follow:
The client side data objects are generated using reflection at compile time based on the actual server side objects instead of a service contract. This allows RIA Services to provide a much richer client side object model by including any business rules and relationships between objects. However, this does mean that RIA Services gives up some flexibility compared to plain WCF. For example, the RIA Services serializaer does not currently support some data types which WCF would be able to handle. RIA Services, like ADO.NET Data Services, supports serializing LINQ queries between the client and the server. This means that the client can create the LINQ query and have it run server side. RIA Services, unlike plain ADO.NET Data Services, does not automatically generate CRUD at runtime. For people familiar with SQL Server, I describe ADO.NET Data Services as supporting regular triggers (aka query interceptors) while RIA Services requires INSTEAD OF triggers.
The following answer is not by me, but still answer a part of the question that is left unanswered.
I copy-pasted this answer from here https://social.msdn.microsoft.com/Forums/en-US/687426d9-709f-4e73-8c4c-dd3630f006e7/wcf-data-service-or-wcf-service?forum=adodotnetdataservices
WCF Services are operation centric - the main thing you do with these is define operations (functions). Data comes as a secondary thing in a way. On the other hand they can work over lot of different transports/protocols. You have the ability to stricly define what the client can and can not do. Client can't really make up new queries/operations, the server must implement everything the client needs.
WCF Data Services are data centric - the main thing you do with these is define a data model to be exposed. Operations on the data are "predefined" (Create/Delete/Update/Read). It only supports HTTP protocol and uses REST. You usually allow clients to decide what they want to do (in some boundaries). One of the main differences from WCF Service is that the client can issue a query against the data model (think SQL like stuff) which the client constructs. This means that the server doesn't need to know exactly what the client needs up front, the client will be able to tell it runtime.
Vitek Karas [MSFT]
© 2022 - 2024 — McMap. All rights reserved.