RIA中单/多域服务的优缺点是什么?

时间:2013-11-29 13:23:54

标签: c# silverlight wcf-ria-services ria domainservices

在Silverlight中使用RIA服务时,我想知道什么是域服务的数量和组织的最佳解决方案?

我已经阅读了一些关于此的文章有很多不同的陈述,并且发现有些人更喜欢:

  • 每个viewmodel一个域名服务
  • 每个对象组一个域服务(即订单,订单,产品等)
  • 整个应用程序的一个域服务

还有一些......

我认为所有不同的解决方案都有利弊,但我想听听是否有人有这方面的实际经验?

我们正在考虑重写/重组主要业务应用程序的数据库层,因此我们非常感谢您分享知识/经验。

2 个答案:

答案 0 :(得分:1)

我从未听说过“每个视图模型的一个域名服务”,我认为这与RiaServices的设计方式有关。

如果必须处理大型域模型,则每组对象可能有一个DomainService。但是,请注意,当您必须在单个交易中为属于两个不同的domaincontext (即订单和客户)的实体提交更改时,您将会遇到麻烦:您将拥有调用两个不同的SubmitChanges。

如果您的应用程序不是那么大(我会说< 100 domainmodel类)

,整个应用程序的一个DomainService肯定是要走的路。

答案 1 :(得分:0)

官方指南是DomainService,DomainController(future)和DomainContext代表一个单独的工作单元。任何需要作为单个事务一起保存的东西必须位于相同的服务/控制器/上下文中,因此这是最小的大小和范围。没有关于最大尺寸的官方指导,但是在工作单元中的思考也可以帮助指导。如果您有两个不同的数据屏幕可以彼此独立保存,那么您可能需要两个单独的上下文,以便一个屏幕中的错误不会阻止另一个屏幕保存。