Concerns about RIA Services Squashed
Here at MIX09, the world got its first view of what Microsoft calls RIA Services. RIA Services is an n-tier solution that supports a variety of scenarios, but in my opinion may be especially important to Silverlight applications.
I've had the priviledge to watch RIA Services during its development over the last few months. Out of this effort comes some of the newest Silverlight Toolkit controls (including ChildWindow, Navigation controls, DataPager, DataForm) as well as the server pieces.
The general idea is that RIA Services will layer over the data access layer to provide additional services including validation as shown in this picture:
Brad Abrams has a great post describing the layer if you haven't taken a look at it yet:
I am not sure Brad mentions this, but it is very early in the development (e.g. its not a Silverlight 3 feature) and they'd love your feedback.
As some others (Barry Gervin in particular), I have had some concerns that only now I could talk about (though I've shared them with the team for a while now). My two biggest concerns:
- The feature uses quite a bit of Visual Studio magic to build the client-side part of the code as the server-side is changed. This is concerning because is assumes that most applicaitons are all in a single solution file and tightly couples projects together which doesn't work in a number of important scenarios.
- Concerned about inventing a new layer instead of using something established (like ADO.NET Data Services).
I had a great conversation with Brad Abrams at MIX09 today and he gave me the confidence to tell you that he's assured me that these two issues will be address. In particular he assured me that:
- While the Visual Studio magic is likely to remain, we will be able to decouple projects and "Add Service Reference" to a non-solution RIA Service which resolves my concern. I don't mind that the magic is default behavior, as long as decoupling works.
- They are aligning with ADO.NET Data Services to make RIA Services become a thin layer over ADO.NET Data Services to provide the type of metadata that is required to do the RIA Services work to the client.
While neither of these are in the current bits, I've been promised they'll arrive by release. I trust Brad's word on these. I hope when my life calms down a little (updating a lot of classes, writing articles and too much travel) that I can do a proper walkthrough of RIA Services for my readers.
What do you think?