什么是WCF RIA服务?


102

我讨厌WSDN RIA服务的MSDN网站。它不说它是什么,而仅说它是什么。它说它可以实现什么,但没有说我为什么需要它。

例如:

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

好吧,对我来说意义不大。

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

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

那是什么 仅仅是RAD的VS 2010插件吗?还是在WCF之上或之下的技术?它在哪里生活?用数据,用服务器,什么?

谢谢您能为我总结一下。


3
它是WCF之上的一项技术,它使用代码生成以及服务器端和客户端代码。它主要侧重于通过验证和其他方式将数据从服务器转换到客户端,然后再返回。
Rangoric

1
@Rangoric:您可以将其发布为答案。简短的答案也可以是个好答案。
Henk Holterman 2010年

7
啊,大声笑,我误读为RIAA,因此感到心理不适。
Mateen Ulhaq 2011年

必知:RIA =富Internet应用程序(其中的瘦客户端是Silverlight),在此进行了详细说明。WCF RIA服务是通过WCF将瘦客户端链接到服务器的RIA服务。“ WCF RIA Services检索从Microsoft结构化查询语言(SQL)Server数据库数据,并在那里提出了编辑和观看提供给Silverlight客户端这个数据
分钟,

Answers:


109

RIA服务是一种服务器端技术,可自动生成客户端(Silverlight)对象,这些对象将为您与服务器进行通信并提供客户端验证。

RIA服务内部的主要对象是DomainService,通常是a LinqToEntitiesDomainService,它连接到LinqToEntities模型。

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

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

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

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

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

希望这种解释对您有所帮助。


当然可以。感谢分享。我希望您可以更新MSDN站点。现在,如果我将属性添加到域对象怎么办?它会自我更新吗?
Aliostad

我添加了一些有关更新,插入和删除的附加信息。
罗纳德·威登伯格

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.