什么是 WCF RIA 服务?
Posted
技术标签:
【中文标题】什么是 WCF RIA 服务?【英文标题】:What is WCF RIA services? 【发布时间】:2011-04-10 17:02:35 【问题描述】:我讨厌 MSDN 的 WCF RIA 服务站点。它没有说它是什么,它只说它做了什么。它说明了它可以实现什么,但没有说明我为什么需要它。
例如:
“开发一个常见的问题 n 层 RIA 解决方案正在协调 中间的应用逻辑 层和表示层”。
嗯,这对我来说意义不大。
“RIA 服务通过以下方式解决了这个问题 提供框架组件、工具、 和制作应用程序的服务 服务器上可用的逻辑 RIA 客户端,无需您 手动复制该编程 逻辑。您可以创建 RIA 客户端 了解业务规则和 知道客户端是自动的 更新了最新的中间层逻辑 每次解决方案是 重新编译。”
那么它会从服务器下载 DLL 吗?它是描述数据规则的元数据吗?
那是什么?它只是 RAD 的 VS 2010 附加组件吗?或者它是 WCF 之上或之下的技术还是什么?它在哪里生活?有了数据,有了服务器,又是什么?
如果您能帮我总结一下,我将不胜感激。
【问题讨论】:
它是 WCF 之上的一项技术,它使用代码生成以及服务器端和客户端代码。它主要侧重于将数据从服务器转移到客户端,然后再返回,包括验证和其他事情。 @Rangoric:您可以将其发布为答案。简短的答案也可以是很好的答案。 啊,大声笑,我把它误读为 RIAA,然后变得神经质了。 很高兴知道:RIA = 富 Internet 应用程序(Silverlight 的瘦客户端),很好地解释了 here。 WCF RIA 服务是基于 WCF 的 RIA 服务,将瘦客户端链接到服务器。 "WCF RIA 服务从 Microsoft 结构化查询语言 (SQL) Server 数据库中检索数据,并将这些数据提供给 Silverlight 客户端以供编辑和查看" 【参考方案1】:RIA 服务是一种服务器端技术,可自动生成客户端 (Silverlight) 对象,为您处理与服务器的通信并提供客户端验证。
RIA 服务中的主要对象是DomainService
,通常是连接到 LinqToEntities 模型的LinqToEntitiesDomainService
。
在 RIA 服务中要记住的关键是它主要是一个复杂的构建技巧。当您创建域服务并编译解决方案时,会生成域服务的客户端表示。此客户端表示具有相同的接口。假设您使用方法IQueryable<Customer> GetCustomersByCountry
创建了一个服务器端域服务CustomerService
。构建解决方案时,会在 Silverlight 项目中生成一个名为 CustomerContext
的类,该类有一个方法 GetCustomersByCountryQuery
。您现在可以在客户端上使用此方法,就像在服务器上调用它一样。
更新、插入和删除遵循不同的模式。创建域服务时,您可以指明是否要启用编辑。然后在服务器端域服务中生成相应的更新/插入/删除方法。但是,客户端部分没有这些方法。你的CustomerContext
上有一个叫做SubmitChanges
的方法。那么这是如何工作的:
GetCustomersByCountryQuery
检索到的)。
对于插入,您使用CustomerContext.Customers.Add(new Customer(...) ...)
。
对于删除,您使用CustomerContext.Customers.Remove(someCustomer)
。
编辑完成后,您致电CustomerContext.SubmitChanges()
。
至于验证,您可以使用来自System.ComponentModel.DataAnnotations
命名空间的验证属性来装饰您的服务器端对象。同样,当您构建项目时,现在会自动为相应的客户端对象生成验证代码。
我希望这个解释可以帮助你更进一步。
【讨论】:
确实如此。谢谢分享。我希望你能更新 MSDN 网站。现在,如果我向我的域对象添加一个属性怎么办?它会自行更新吗? 我添加了一些关于更新、插入和删除的附加信息。【参考方案2】:最新消息:WCF RIA Services 已死:
http://blogs.msmvps.com/deborahk/who-moved-my-cheese-ria-services/
如果您想使用 RIA 服务,它们已经开源:
http://www.openriaservices.net/blog/posts/
【讨论】:
以上是关于什么是 WCF RIA 服务?的主要内容,如果未能解决你的问题,请参考以下文章