首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么是WCF RIA服务?

什么是WCF RIA服务?
EN

Stack Overflow用户
提问于 2010-09-10 20:00:28
回答 2查看 62K关注 0票数 103

我讨厌MSDN的WCF RIA服务站点。它没有说它是什么,它只说它做了什么。它说明了它能实现什么,但没有说明我为什么需要它。

例如:

“在开发n层RIA解决方案时,一个常见的问题是协调中间层和表示层之间的应用逻辑”。

好吧,这对我来说没什么意义。

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

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

那么这是什么呢?它只是RAD的VS2010附加组件吗?或者它是一种在WCF之上或之下的技术,还是什么?它住在哪里?有数据吗?有服务器吗?

如果你能为我总结一下,我将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-10 20:47:24

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

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

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

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

对于更新,您只需更新现有客户的属性(通过GetCustomersByCountryQuery).

  • For inserts检索,使用CustomerContext.Customers.Add(new Customer(...) {...}).

  • For

  • ,使用CustomerContext.Customers.Remove(someCustomer).

编辑完成后,调用CustomerContext.SubmitChanges()

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

我希望这个解释能帮助你更进一步。

票数 109
EN

Stack Overflow用户

发布于 2014-11-22 06:47:44

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

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

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

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3684421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档