To answer this question let's first look at MSDN.
WCF RIA Services
Microsoft WCF RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations. It also provides end-to-end support for common tasks such as data validation, authentication and roles by integrating with Silverlight components on the client and ASP.NET on the mid-tier.
What Is Windows Communication Foundation
Windows Communication Foundation (WCF) is a framework for building service-oriented applications. Using WCF, you can send data as asynchronous messages from one service endpoint to another. A service endpoint can be part of a continuously available service hosted by IIS, or it can be a service hosted in an application. An endpoint can be a client of a service that requests data from a service endpoint.
As an example Microsoft BizTalk Server R2, Windows Workflow Foundation and definitely Microsoft Silverlight utilize WCF as a communication technology.
So, in fact RIA services is a new technology that is built on top of WCF services and in Silverlight applications it helps you to make client-server integration "transparent" for a developer. At compile time RIA services generate client side classes based on the actual server side classes. Then the client can use generated client side functionality in almost the same way as if it was executing actual server side class. For example RIA servises support serializing LINQ queries between the client and the server, so the client can create the LINQ query and have it run server side without writing any code to handle client server communication. So, this allows RIA Services to provide a much richer client side object model by including any business rules and relationships between objects.
I have to mention that there are few limitations for RIA services right now. For example RIA services serializer doesn't support some data types that WCF does (reference) or RIA Services do not recognize many-to-many relationships in an Entity Framework model (reference). However I believe they will soon be addressed in the future releases.
So, to answer the question WCF is generic and provides you great flexibility and abilities to handle asynchronous messages from one service endpoint to another. From the other side RIA service is a "new layer" on top of WCF that simplifies the development. The role of RIA service is to simplify even more an integration between client side and server code in Silverlight applications, so functionality like business rules, data validation, access to data for queries and any other custom operations could be executed in the client code in almost the same manner as if they were executed on server side.
Replied on Mar 4 2011 12:17AM