What is WCF RIA services?

前端 未结 2 1694
长情又很酷
长情又很酷 2020-12-22 20:38

I hate MSDN\'s site for WCF RIA services. It does not say what it is, it only says what it does. It says what it can achieve but does not say why I need it.

For exa

相关标签:
2条回答
  • 2020-12-22 21:32

    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/

    0 讨论(0)
  • 2020-12-22 21:37

    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.

    0 讨论(0)
提交回复
热议问题