views:

272

answers:

4

Ive read about it and to be honest it all seems like a bunch of gibberish to me.

I don't want to read all about how it enhances your experience and you can use it to built this and that.

Can you give me a clear definition of what it does, that would be awesome.

+3  A: 

From http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx:

Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. The 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.

So, what I would boil this down to is that in it's present form ASP.Net and Silverlight were developed independently and were not explicitly designed with each other in mind so making ASP.Net applications and Silverlight applications work and interact with each other requires a fair bit of plumbing code. Microsoft is trying to simplify this task by creating a platform and patterns to support this style of mixed Silverlight + ASP.Net back end application development.

Dan Rigby
Still don't get it. Oh well.
Michael
+4  A: 

When we write Windows apps everything happens on one computer (unless you're getting data from the network. You click the mouse, your event handler gets called, you can change what's displayed.

Then, with the internet, you've got a stateless environment where (Javascript aside for a moment) all the code gets executed on the server. Using ASP.Net static HTML gets generated, and pushed to the client. In return the user can take an action, the server will get another request, and so on.

With Silverlight everything's happening on the client - the Xap is downloaded, decompressed, and run. The problem is, not everything can be done in the Silverlight app - it's not like a Windows app, which can ope/save files from the hard disk - it's more like a Asp.Net app. Problem is, the data's over on the server, the Silverlight app is on the client. So developers need to write asyncronous code (so that the UI doesn't freeze). This is more complex than the syncronous event handling Windows developers are used to. Furthermore, every time you need to get data, such as authenticating the user, it's back to the server to check. So while Silverlight looks like "WPF in the browser" it's really a very different style of programming. A web developer will be familiar with this, but the standard business dev who wants to start using Silverlight will find this a lot of overhead.

So .Net RIA services tries to bring the convenience of Windows development to Silverlight. It does this by providing a framework for doing things like providing the ability to share .net types between clientserver, which can act in a stateful fashion on the client and transfer data back to the server using rest xml/json services.

One example service is provided for user authentication/authorisation/settings.

I would recommend you look at this article by Nikhil Kothari and also this (PDF) walkthrough. Also look at some of the provided samples and try running/modifying them.

Saqib
+1, very good answer.
Cyril Gupta
+1  A: 

The simplest answer is the RIA Services includes a bunch of services and Entity Framework plumbing code that you don't have to write yourself. The purpose is to make your Silverlight-side code just as easy to write and understand as if it were plain-old ASP.NET or Windows/WPF application.

Dave Swersky
+1  A: 

Aside from the official response from us, think of RIA Services as simply a more automated approach to combining your server and client together - in most mainstream cases its Silverlight + ASP.NET.

Now an easy way to look at this is the basic fundamental problems its looking to solve, first being "How do i get my POCO/VO/TO etc from the server to the client and back again without having to write my own serialization/deserialization logic?" - answer, .NET RIA Services handles that for you via some basic code-gen the team have put in place and also leveraging the power of ADO.NET Data Services.

I like to personally think of .NET RIA DataServices as being the glue between Client & Server and as part of that you get a lot of tricky and powerful API's to help you marshall data etc back and forth.

The main job of RIA Services is to keep you focused on building Applications etc and less on "designing your own framework from scratch".

A quick ASCII raw diagram is this:

CLIENT(Silverlight) -> ADO.NET Data Services (Client) <-> CLOUD <-> ADO.NET Data Services (Server) <- Server (ASP.NET)

We'll do a better job of explaining the WHAT soon, and good feedback here for us.

-
Scott Barnes
Rich Platforms Product Manager
Microsoft.
Scott Barnes
Thanks Scott for the information. As a side note, whoever came up with the name did no one a favour.