0

这是我第一次尝试实现洋葱架构。

在此处输入图像描述

AppService -> folder for the abstractions for the entire Application
Business -> Business logic using the abstractions in the Core project
DataService -> folder for abstractions that are implemented in the DataAccess project
Model -> Entities used by the application
WebService -> folder for abstractions that are implemented in the WebAccess project
  1. 上面放置的文件夹是否正确?
  2. DependencyResolution 项目的位置是否在 Domain 文件夹中?
  3. 基础设施中的每个项目是否应该包含一个 DependencyRegistrar 文件,该文件将核心项目中的接口与它所包含的项目中的实现一起注册?
  4. WebApi项目应该放在Presentation->Api中吗?是演示文稿吗?
  5. 我应该将每个项目的所有单元测试放在“测试”文件夹中吗?

提前致谢。

4

1 回答 1

1
  1. 您的文件夹结构通常看起来不错。就我个人而言,我采用更模块化的方法,您的核心项目中的文件夹实际上是我的单个项目,但这只是我的偏好。
  2. 依赖解析不是您领域的一部分,也不是真正的基础设施(至少在我看来)。它本身就是一个概念。
  3. DependencyRegistrars 似乎没有必要。将抽象映射到实现是依赖解析的责任。
  4. 我的直接反应是不会,但过去我做过单页应用程序,我在同一个项目中使用过 MVC 和 WebApi。因此,他们将一起成为客户。如果每个移动客户端都有自己的后端,我会将这些项目与客户端放在同一个文件夹中。否则,如果它们在多个不同的客户端之间共享,我会考虑将它们放入顶级“后端”或“服务”解决方案文件夹。
  5. 我认为每个项目及其测试彼此相邻更有意义,因此从一个导航到另一个或反之亦然很容易(即不必上下滚动解决方案)。

因此,除了生活在 Domain 和DependencyRegistrars 中的 Dependency Resolution 之外,它似乎还不错。细节取决于您认为最好的。

于 2014-04-29T10:14:45.697 回答