什么是WCF RIA服务?

Ali*_*tad 101 .net c# wcf ria

我讨厌MSDN的WCF RIA服务网站.它没有说它是什么,它只说它做了什么.它说它可以实现什么但不说我为什么需要它.

例如:

"开发n层RIA解决方案时的一个常见问题是协调中间层和表示层之间的应用程序逻辑".

嗯,这对我来说意义不大.

"RIA Services通过提供框架组件,工具和服务来解决这个问题,这些组件,工具和服务使RIA客户端可以使用服务器上的应用程序逻辑,而无需手动复制该编程逻辑.您可以创建一个了解业务规则的RIA客户端并且知道每次重新编译解决方案时,客户端都会自动使用最新的中间层逻辑进行更新."

那么从服务器下载DLL?它是描述数据规则的元数据吗?

那是什么?它只是RAD的VS 2010附加组件吗?或者它是WCF之上或其下的技术还是什么?它在哪里生活?有了数据,还有服务器,什么?

如果你能为我总结一下,我很感激.

Ron*_*erg 108

RIA服务是一种服务器端技术,可自动生成客户端(Silverlight)对象,负责与您的服务器通信并提供客户端验证.

RIA服务中的主要对象是a DomainService,通常LinqToEntitiesDomainService连接到LinqToEntities模型.

在RIA服务中要记住的关键是它主要是一个复杂的构建技巧.创建域服务并编译解决方案时,将生成域服务的客户端表示.此客户端表示具有相同的接口.假设你创建一个服务器端域服务CustomerService与方法IQueryable<Customer> GetCustomersByCountry.构建解决方案时,会在Silverlight项目中生成一个类,该类CustomerContext具有方法GetCustomersByCountryQuery.您现在可以在客户端上使用此方法,就像在服务器上调用它一样.

更新,插入和删除遵循不同的模式.创建域服务时,可以指示是否要启用编辑.然后在服务器端域服务中生成相应的更新/插入/删除方法.但是,客户端部分没有这些方法.你拥有的CustomerContext是一种叫做的方法SubmitChanges.那么这是如何工作的:

  • 对于更新,您只需更新现有客户的属性(通过您检索GetCustomersByCountryQuery).
  • 对于插入,您可以使用CustomerContext.Customers.Add(new Customer(...) {...}).
  • 对于删除,您使用CustomerContext.Customers.Remove(someCustomer).

完成编辑后,即可致电CustomerContext.SubmitChanges().

至于验证,您可以使用System.ComponentModel.DataAnnotations命名空间中的验证属性来装饰服务器端对象.同样,在构建项目时,现在会自动为相应的客户端对象生成验证代码.

我希望这个解释对你有所帮助.


use*_*167 8

最新消息:WCF RIA服务已经死亡:

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

如果您想使用RIA服务,它们是开源的:

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