【问题标题】:How many entities should RIA domain service include?RIA 域服务应该包括多少个实体?
【发布时间】:2010-04-01 19:44:12
【问题描述】:

我想知道如何在 RIA 中准确实现域服务。将整个域模型中的所有实体包含在单个域服务中,从而使该服务负责整个数据库是否很常见?这是通常的做法吗?我真的没有理由将数据访问分离到不同的服务中,但我想知道这是否被认为是一种好的做法,以及这种方法的优缺点是什么。

另外,使用 IOC 将域上下文注册为单例,以便整个应用程序使用相同的数据集,从而避免并发问题和类似问题,这是一种好的做法还是坏的做法?

想法?

谢谢

【问题讨论】:

    标签: c# dns wcf-ria-services


    【解决方案1】:

    我们的应用中有两种独立的服务:一种用于数据模型,另一种严格用于身份验证。我们从 MS 的业务示例应用程序结构中获取了此设计。

    我们考虑将我们的数据域服务拆分成更小的组件,但最终决定放弃,因为它似乎没有增加任何优势(除了减少服务类的大小)。如果您有完全相互独立的不同数据模型那么走这条路可能是有意义的。直观地说,域服务应该代表整个域。如果您的域是独立的(使用occasional need for crossover),那么以这种方式隔离它们是合乎逻辑的。

    关于使用上下文作为单例:我尝试过并最终创建了类范围的实例。我们没有遇到任何问题,因为它们都使用相同的底层数据连接。我不知道“官方”最佳做法是什么,但这是我在众多 RIA 应用程序中看到的做法。

    【讨论】:

    • 我不同意。我认为 domainService 应该代表一个任务或业务流程,而不是整个域。一个很好的示例应用程序是 Book Club 应用程序,您可以在此处找到 nikhilk.net/RIA-Services-MIX10-Slides-Code.aspx
    【解决方案2】:

    谢谢尼克。我实际上和你做了同样的事情,我构建了两个服务,一个用于身份验证,一个用于数据访问。这对我来说似乎最合乎逻辑。

    至于使 datacontext 成为单例,我也尝试过,效果很好。无需不断地重新加载和刷新数据,也无需担心其他类的并发问题:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多