What is .NET RIA Services?

Original author: Brad Abrams
  • Transfer
Microsoft .NET RIA Services simplifies traditional n-tier application schemas by combining ASP.NET and Silverlight platforms. RIA services provide a template for writing the logic of an application that runs at the middle level and controls access to data for queries, changes, and ordinary operators. They also provide end-to-end support for common tasks, such as data validation, authentication, and roles, through middleware integration of client-side Silverlight and ASP.NET.

Our ideas for working on RIA Services came from a LINQ project several years ago. LINQ integrates semantics query in languages ​​(C #, VB, etc) providing a general abstraction for working with data; or with data in memory - CLR objects, XML, relational data, or some other. With RIA Services, we have expanded this template with a model that exposes the essence of your domain logic through LINQ. We thought of domain logic as a part of your application, which is very specific for your domain, i.e. this is a specific business problem that you are solving. Following this pattern, we can provide a number of features that help you focus on your domain logic, instead of designing your code. For example, we offer a great way to write application logic on a server and display, verify data, as well as support for authorization, queuing, sorting, filtering, etc., not to mention the way to provide a layout from the data for testing (a la TDD, etc). All this no matter what you use (Entity Framework, Linq2Sql, nHibernate, Xml file, REST service, WCF-server, etc).

We think this template is suitable for use in a wide range of applications ... we talked a lot about it on Mix09:
N-Tier Access - Following the pattern of RIA services, we can make creating an n-tier Silverlight or AJAX application very easy. We strive to make it almost as simple as creating a traditional 2-tier application. At this time, you can think of RIA services as a more promising upper layer of ADO.NET Data Services and WCF. According to the survey and updated model details, we will use ADO.NET Data Services ... this means that you can simply “Add Web Help” to your domain logic and get standard REST and JSON-based access to offers from ADO.NET DataServcies. We also hope ultimately to provide full access to all the power and flexibility of basic WCF services, such as highly optimized binary serialization.
Another important advantage of this model is that you can use it directly, inside your ADO.NET Data Services. We believe that this provides a more productive way to write your domain logic than when using the current template-based interception. We are working hard now, look at this in the future CTP.
ASP.NET access - Following the pattern of RIA services, you will also have the opportunity to simply create ASP.NET applications using all the features built into RIA, such as checking data, permissions, etc. In the March preview, we proposed an asp DomainDataSource control that included very easy access to ASP.NET WebForms from your domain logic. In addition to this, creating a future version of ASP.NET Dynamic Data that creates the generally accepted UI standard on your domain logic.
Back at Redmond, we worked to provide very clean access to your domain logic through ASP.NET MVC. The model here is very fresh, and I can’t wait for the future CTP to talk about it. If you combine the correctness of data sources with various presentation options, then we, like you, are focused on .NET RIA Services ... What was in the March preview of .NET RIA Services? Firstly, I strongly recommend that you familiarize yourself with it. Features for the .NET Framework on the server: System.Web.DomainServices.dll– this assembly contains the essence of the DomainService classes that control the validation, order, etc.

System.Web.DomainServices.Providers.dll - LINQ2SQL and EF providers ... we hope that in the future, we and the community will provide more providers such as Azure, Dataset, nHibernate, etc .;
System.Web.DomainServices.Tools.dll - Visual Studio support for creating DomainServices;
System.Web.DomainServices.WebControls.dll - ASP.NET support for DomainServices (asp: DomainServiceDataSource and friends);
System.Web.DynamicData.dll - ASP.NET Dynamic Data support update for working with Domain Services;
System.Web.Ria.dll - specific RIA services, such as authentication, user profiles, etc.
System.ComponentModel.DataAnnotations.dll - Update for the .NET Framework 3.5 SP1 dataset. They work in conjunction with Dynamic Data .;
Microsoft.Web.Extensions.dll - additional support for templates, such as SEO, they will be more deeply embedded in the platform, in the future preview.

Chips for Silverlight, on the client side (soon, other clients, such as WPF and Ajax):
System.Windows.Ria - client model data for DomainService ... manual change tracking, validation, etc;
System.Windows.Ria.Controls.dll - DomainDataSource which provides XAML-based control for DomainService access (layers on top of client data, on the model);

It is important that we are at the beginning of the RIA Services development cycle, and we will be glad to see your feedback and thoughts on the model!

PS translation experience is not very large, I translate as much as I can for myself, but if someone needs to translate something, then write help, than I can.

Also popular now: