我讨厌MSDN的WCF RIA服务网站。它没有说它是什么,它只说它做了什么。它说它可以实现什么但不说我为什么需要它。
例如:
“开发中的常见问题 n层RIA解决方案正在协调 中间的应用逻辑 层和表示层“。
嗯,这对我来说意义不大。
“RIA Services解决了这个问题 提供框架组件,工具, 和构成应用程序的服务 服务器上的逻辑可用 RIA客户端无需您 手动复制该编程 逻辑。您可以创建RIA客户端 知道业务规则和 知道客户端是自动的 更新了最新的中间层逻辑 每次解决方案都是 重新编译“。
它是否从服务器下载DLL?它是描述数据规则的元数据吗?
那是什么?它只是RAD的VS 2010附加组件吗?或者它是WCF之上或其下的技术还是什么?它在哪里生活?有了数据,还有服务器,还有什么?
如果您能为我总结一下,我感激不尽。
答案 0 :(得分:102)
RIA服务是一种服务器端技术,可自动生成客户端(Silverlight)对象,负责与您的服务器通信并提供客户端验证。
RIA服务中的主要对象是DomainService
,通常是连接到LinqToEntities模型的LinqToEntitiesDomainService
。
在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
命名空间中的验证属性来装饰服务器端对象。同样,在构建项目时,现在会自动为相应的客户端对象生成验证代码。
我希望这个解释对你有所帮助。
答案 1 :(得分:8)
最新消息:WCF RIA服务已经死亡:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
如果您想使用RIA服务,它们是开源的: