【问题标题】:Database location in solution解决方案中的数据库位置
【发布时间】:2015-09-08 23:44:59
【问题描述】:

我正在使用 C#、WPF 和 Prism。我想创建模块化应用程序,但我有问题。我不知道从哪里获取数据库中的数据。这是我的解决方案:

我有两个模块 - ModuleMainFilterModuleResults。我最初的想法是,我将通过Infrastructure 从模块与当前位于DensoMSBFrontDataClient 中的数据库进行通信。但我不能这样做,因为由于循环依赖问题,我无法在Infrastructure 中引用DensoMSBFrontDataClient。那么我应该把我的数据库放在哪里呢?我想不出任何有用的想法。

【问题讨论】:

  • 问题是:为什么这两个组件之间存在循环依赖关系?基础设施听起来像是一个低级的通用包,不应该知道“高层”......
  • 模块使用基础设施在彼此之间传递命令和数据。

标签: c# wpf architecture prism


【解决方案1】:

如果我的理解正确,以下是您应用的分层架构:

  • DensoMSBFrontDataClient
  • Modules
  • Infrastructure

DensoMSBFrontDataClient 引用了 *Modules,它引用了基础结构并将这个通用组件用作数据交换。指挥链自上而下。因此,您的数据库应该放在最低层,并且只能从那里访问。否则你总会遇到这类问题。

【讨论】:

  • 是的,我用过这个。这是最有意义的,并且在我的情况下最有用。谢谢。
【解决方案2】:

我认为你应该做的是将你的数据库实现放在它自己的模块中,并在基础设施模块中添加一个接口实现。然后数据库模块应该实现这个接口,并且所有使用数据库服务的模块都应该引用基础设施,特别是这个接口。看看 StockTraderRI 以及他们如何实施 MarketFeedService。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-07
    • 2018-08-12
    • 2011-08-21
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 2018-09-08
    相关资源
    最近更新 更多