20
votes

There are a lot of information how to build Silverlight application using .NET RIA services, but it isn't clear what is unique thing in RIA that is absent in WCF?

Here are few topics that are talking around this topic: [1], [2]

But they doesn't give an answer to the question.

Sorry for the stupid question, but what does RIA Services layer bring into your app if you already have Silverlight <--> WCF Service <--> Business Logic <--> Entity Framework Model <--> Database? Authentication? Validation? Is it relly asset for you?

At the moment the only thing I see: with RIA services usage you don't need to host WCF service manually and don't need to configure any references on the client side (clien side == Silverlight application).

Probably I don't know some very useful features of the RIA Services? So could you please point me to the good doc for that?

Many thanks.

P.S. I've read a lot of different articles about differences, but can't clarify it... all articles "tell around" and aren't concrete. If you are going to give me a link to additional article, could you please be so kind and provide a list of benefits that YOU see.

2

2 Answers

12
votes

Actually, you can use the same validation and authentication without using RIA Services. What RIA Services gives you is code generation. It creates your classes for you. You only need to put the business logic. I think RIA Services is very useful for developing small to mid apps very rapidly.

Another difference is that it hides the asynchronous calls to the web service. Many people don't like the async model (which is the only one you can use in Silverlight) and RIA services handles that for you.

I recommend reading this article from Shawn Wildermuth where he points out the pros and cons from both approaches and also includes ADO.NET data services (which is now called WCF Data Services, I think):

http://wildermuth.com/2009/09/29/Choosing_a_Data_Access_Layer_for_Silverlight_3

4
votes

Well, I wouldn't agree with the previous posted answer. WCF Ria Sercices is a great architecture and times have shown proves. I would rather take a look at http://blogs.msdn.com/b/saurabh/archive/2009/11/23/understanding-the-wcf-in-wcf-ria-services.aspx

Actually I use WCF Ria Services on a large LOB application targeting 1500+ contemporary users. I'have done massive use of client code generation customization (see the Varun's blog for details) but I'm able to use LINQ over the wire with silverlight and I have the possibility to choose between automatic lazy or eager loading among the enitities on the context. And please don't forget that the rest paradigm of WCF Ria Services also permits the use of OutputCache.

Not the mention that thanks to custom metadataprovider you can greatly facilitate the generation of the client and how the data are serialized to the client. I believe that if your Silverlight application is Context based you can surely go with WCF Ria Services. Hope this helps, Marco