What is WCF RIA services?

老子叫甜甜 提交于 2019-11-29 19:07:21

RIA services is a server-side technology that automatically generates client-side (Silverlight) objects that take care of the communication with the server for you and provide client-side validation.

The main object inside a RIA service is a DomainService, usually a LinqToEntitiesDomainService that is connected to a LinqToEntities model.

The key thing to remember in RIA services is that it's mainly a sophisticated build trick. When you create a domain service and compile your solution, a client-side representation of your domain service is generated. This client-side representation has the same interface. Suppose you create a server-side domain service CustomerService with a method IQueryable<Customer> GetCustomersByCountry. When you build your solution, a class is generated inside your Silverlight project called CustomerContext that has a method GetCustomersByCountryQuery. You can now use this method on the client as if you were calling it on the server.

Updates, inserts and deletes follow a different pattern. When you create a domain service, you can indicate whether you want to enable editing. The corresponding methods for update/insert/delete are then generated in the server-side domain service. However, the client-side part doesn't have these methods. What you have on your CustomerContext is a method called SubmitChanges. So how does this work:

  • For updates, you simply update properties of existing customers (that you retrieved via GetCustomersByCountryQuery).
  • For inserts, you use CustomerContext.Customers.Add(new Customer(...) {...}).
  • For deletes, you use CustomerContext.Customers.Remove(someCustomer).

When you're done editing, you call CustomerContext.SubmitChanges().

As for validation, you can decorate your server-side objects with validation attributes from the System.ComponentModel.DataAnnotations namespace. Again, when you build your project, validation code is now automatically generated for the corresponding client-side objects.

I hope this explanation helps you a little further.

The latest news: WCF RIA Services is dead:

http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/

If you want to use RIA Services, they have been open sourced:

http://www.openriaservices.net/blog/posts/

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!