0

我对使用 PRISM 框架的 WPF MVVM 应用程序开发有几个问题:

  1. 模块化应用程序中的模块是否应该包含数据访问代码?

  2. 如果模块依赖于基础设施项目中存在的代码,例如 prism 文档中的“Stock Trader RI”,那么这不会导致这些模块和基础设施之间的紧密耦合。项目,模块不应该是自包含的功能吗!?

  3. 我喜欢 DDD(领域驱动开发)神话,即所有代码都应该依赖于业务逻辑层,因此“依赖箭头”不应该从 BLL 中出来,而是应该进入 BLL(例如,DAL 依赖于BLL,然后你可以使用 DI 容器来连接所有东西),我认为模块是应用程序的 BLL,所以我不希望它们依赖于任何东西,你可以在模块化 PRISM 应用程序中实现这一点(如何) ?

4

1 回答 1

1
  1. 是的,由于 Prism 应用程序通常仅由模块组成,因此如果您希望在应用程序中访问数据,则必须以某种方式从模块中访问它。

  2. 管理依赖关系很重要。我尝试检查我的模块做了什么,以决定它引用我的基础设施项目是否有意义。例如,如果您正在创建一个事件记录模块,您可能需要考虑将该接口放在一个公共库中,该库不是您的基础设施项目,因为您可以将其重新用于其他项目。但是,我不介意我的项目特定模块引用了基础设施项目。这些模块仍然允许我强制松散耦合,随意更换模块以添加或删除功能,或者如果我要水平而不是垂直切片应用程序,则可以交换 UI。

  3. 我不太清楚你所说的不依赖“任何东西”是什么意思。我想他们仍然依赖于 .NET 核心库。那么棱镜呢?这是允许的吗?如果您担心它们引用 Prism 或您的基础设施项目,您可以始终将 BLL 代码放在单独的 DLLS 中,您的模块引用并在其中实现模型存储库、视图模型逻辑和视图逻辑。

于 2012-11-25T04:07:12.620 回答