使用洋葱建筑时,在哪里放置共享部件?

时间:2012-05-21 08:51:23

标签: c# asp.net-mvc-2 onion-architecture

我正在尝试应用J. Palermo的洋葱建筑,但我有一些我正在努力的事情。

我有几个部分,我不确切知道在哪里放这些。

  • 我有一个插件引擎,它可以读取目录并确定要加载的内容
  • 有一些资源文件包含在多个项目中使用的翻译。我应该把这些文件放在哪里?
  • 我有一些在整个系统中使用的属性。在哪里放这些?
  • 我还有两个“基础”控制器,一些默认结果和视图。我应该把它们放在哪里?

所有这些项目都在几个项目中使用,所以我想将这些项目放在中心位置。

我目前的解决方案结构如下:

  • Project.Core(包含存储库的域对象和接口)
  • Project.Infrastructure(是核心的实施)

我正在使用MVC2。

1 个答案:

答案 0 :(得分:1)

我不认为洋葱架构本身会解决这个问题。 我要做的是将所有这些项目放在一个或多个项目中,在另一个解决方案中,并构建Nuget包,允许我将它们部署到我需要的任何地方。 这样我就可以在你的MVC项目和基础设施项目中的插件/翻译内容中部署基本控制器等项目。

这样,只要您需要在新创建的项目中使用这些元素,您就必须再次部署该软件包。

这些项目将变得独立,存储在一个中心点(一个新的sln)并且将拥有它自己的发布周期!