Amazon.com Widgets What is .NET RIA Services? - Brad Abrams - Site Home - MSDN Blogs

Brad Abrams

Design Guidelines, Managed code and the .NET Framework

What is .NET RIA Services?

What is .NET RIA Services?

  • Comments 80

Yesterday at Mix we announced .NET RIA Services…  We are very early in the development cycle for .NET RIA Services and we are eager to get your feedback and thoughts.  

The marketing blurb catches the key points:

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.

image 

(shamelessly stolen from Nikhil’s talk)

Our thinking on the RIA Services work really grow out of the LINQ project a few years ago.  LINQ integrates query semantics into the languages (C#, VB, etc) providing a common abstraction for working with data; whether that data is in memory CLR objects, XML, relational data,  or anything else.   With RIA Services we are extending this pattern by offering a prescriptive model for exposing your domain logic over LINQ. We think of domain logic as that part of your application that is very specific to your domain – that is the particular business problem you are solving.    By following this pattern we are able to provide a number of features that help you focus on your domain logic rather than the plumbing in your code.  For example, we offer a great way to write application logic on the server and display, validate the data,  as well as supporting authorization,  querying, sorting, filtering, paging, etc, not to mention providing a clean way to mock out the data layer to do testing (a la TDD, etc).  All regardless of what data store you use (Entity Framework, Linq2Sql, nHibernate, Xml file, REST service, WCF-server, etc).  

We think this pattern is useful in a wide verity of application types… a couple that we are talking a lot about here at Mix09:

N-Tier Access – By following the RIA Services pattern, we can make it very easy for you to build out a n-tier silverlight or AJAX application.  We aim to make it nearly as simply as building traditional 2 tier applications.   In this space, you should think of RIA services as a more perceptive layer on top of ADO.NET Data Services and WCF.   For the data querying and updating aspects of the model we will be using ADO.NET DataServices… this means that you will be able to just “Add Web Reference” to your domain logic and get the standard REST and JSON based access that ADO.NET DataServcies offers.  We also expect to eventually provide full access to all the power and flexibility from the underlying WCF services such as highly optimized binary serialization. 

Another great benefit of this model is that you can use it directly within your ADO.NET Data Services. We believe this provides a more productive way of writing your domain logic than using the current interception-based patterns. We are hard at work on this now, look for this in a future CTP.

ASP.NET Access – By following the RIA Services pattern, you will also be able to build ASP.NET applications easily while taking advantage of all the built in features of RIA Services such as data validation, authorization, etc.   In the March preview, we are offering a asp:DomainDataSource control that enables very easy ASP.NET WebForms access to your domain logic.  Building on top of that is a future version of ASP.NET Dynamic Data that makes it very easy to generate common, standard UI based on your domain logic. 

Back in Redmond, we are working on provide a very clean access to your domain logic via ASP.NET MVC.  The pattern here is very cool, and I can’t wait to talk about it in a future CTP. 

If you combine the verity of data sources with the variety of presentation options we are aiming for with .NET RIA Services… 

image[4]

What what is in the .NET RIA Services March ‘09 Preview? 

I highly recommend going through the detailed walkthrough that we have

But few the geeky among us, let me break down what we have in the package by assembly…

Enhancements to the .NET Framework on the Server:

System.Web.DomainServices.dll – This assembly contains the core DomainService classes that handle the validation, query, etc. 
System.Web.DomainServices.Providers.dll  - the LINQ2SQL and EF provider… we hope between us and the community to provide much more in the future such as Azure, Dataset, nHibernate, etc
System.Web.DomainServices.Tools. dll – the VS support for building DomainServices

System.Web.DomainServices.WebControls. dll – the ASP.NET support for DomainServices (asp:DomainServiceDataSource and friends)

System.Web.DynamicData.dll – Update to the ASP.NET Dynamic Data support to work with Domain Services.

System.Web.Ria.dll – RIA Specific services such as authtication, user profiles, etc.

System.ComponentModel.DataAnnotations.dll – Updates to the .NET Framework 3.5 SP1 set of data annotations. This is shared with Dynamic Data. 

Microsoft.Web.Extensions.dll – Some additional support for patterns such as SEO, these will be folded more deeply into the platform in future previews.

Enhancements to Silverlight on the client (other clients such as WPF and Ajax coming soon)

System.Windows.Ria – Client data model for the DomainService.. handles change tracking, validation, etc

System.Windows.Ria.Controls.dll – DomainDataSource control that provides Xaml based control for accessing DomainService (layers on top of the client data model). 

Again, we are early the development cycle for RIA Services and we’d love your feedback and thoughts on the model!

Check out DineshKu’s  .NET RIA Services is now public post…  the great walk through and samplesBeta News has a good overview as well.   Check out my Mix09 talk on RIA Services for a full example...

Update 3-19:
  here is a live demo of a web admin site in Silverlight\.NET RIA Services .
  a few of “How Tos”:   Part 1, Part 2, Part 3.
More information on RIA Services

Update: 3-21:
Check out some talks and demo walkthroughs


Please let me here your thoughts!

  • Via Brad Abrams; http://blogs.msdn.com/brada/archive/2009/03/19/what-is-net-ria-services.aspx

  • Over the last year I have been working on .NET RIA Services , a preview of which just went public at

  • Ah, another technology issue that will be finished one year too late. I hate building things that will soon be included in technology. At least there is a implementation challenge.

  • This looks great, but do you think there will be a dataset provider?

    We've written a middle-tier that handles data access, security, validation etc, exposing that data via WCF services as datasets.  We're now hooking these services up to a new Silverlight UI. The querying, sorting, filtering and paging are all functions that we need to achieve, and this seems to do it all. Is this something you think is suited to .NET RIA services?

  • Yesterday at Mix we announced .NET RIA Services…  We are very early in the development cycle for

  • Thank you for submitting this cool story - Trackback from DotNetShoutout

  • will it include anything to push data to silverlight (not silverlight polling the server) ?

  • How do you compare RAI services with CSLA?

    http://www.lhotka.net/weblog/OverviewOfCSLANET36ForWindowsAndSilverlight.aspx

  • Hi,

    This is a great news . We are happy to use them in the projects. Does that supports the offline support of applications like we have in the Google gears ?

    I suppose RIA here means Rich Internet Applications which are smart clients . How you are saying this will make us RIA rwally ?

    Thanks,

    Thani

  • Can be used RIA Services with WinForms?

  • URL : http://blogs.msdn.com/brada/archive/2009/03/19/... Here at MIX09, the world got its first view

  • Lots of catching up to do. Windows Azure/Cloud Computing Windows Azure Tools and SDK March 2009 CTP Released ASP.NET MVC/AJAX ASP.NET MVC 1.0 is Now Live! Phill Haack's post ASP.NET MVC 1.0 Released! Microsoft Ajax 4.0 Preview 4 now available Silverlight/RIA/MIX

  • Where can we see a simple code sample leveraging this stuff? I'm having a hard time wrapping my head around this without seeing any code.

  • Pat -- I totally understand where you are comming from.. You can check out my session here:

    http://blogs.msdn.com/brada/archive/2009/03/17/mix09-building-amazing-business-applications-with-silverlight-3.aspx

    or scan through this doc:

    http://download.microsoft.com/download/F/B/8/FB8CA635-296B-487F-965C-8148F08B5319/riaservicesoverviewpreview.pdf

  • Hi Brad,

    unfortunately I wasn't able to attend Mix this year, but after reading your posts and documents about .NET RIA Services, I really appreciate the work that is being done in that particular field by your team. As my company is developing several RIA applications, that combine the strengths of ASP.NET, ASP.NET AJAX and Silverlight, we hat major problems in bringing our business functionality to the client without bringing our business logic to the client. We finally chose a similiar approach by introducing a universal service facade that can be used by any client assembly, regardless of its position (local using a reference to the core assembly or remote using wcf). I'm currently writing an article series about the topic for a leading .NET magazine is Germany and how we solved the problem of effectively transporting entity graphs to the client using DTO's. You can find a shorter, conceptual version at http://jgnk.spaces.live.com/blog/cns!457F4BDBA1A371A5!327.entry. Tell me what you think and maybe how Microsoft is going to solve the problem with lazy loading-enabled object graphs that are transported across the wire.

    Best,

    Julius

Page 1 of 6 (80 items) 12345»