4

我需要帮助设计用于团队环境的 MVC 结构吗?以下是对我们正在做的事情的简短说明:

  • 我们有不同的部门将迁移到 Web (MVC)。例如,我们有一个 Census Dept、Pipeline Dept 和 Compset Dept 等。

选项:

  1. 我可以在 Visual Studio 中为每个模块设置一个普通的 MVC 解决方案。所以我可以有一个用于人口普查的 VS 解决方案,一个用于管道等。这一切都很好,但我希望有一个可以跨项目使用的共享视图(类似于母版页)。在这种情况下如何工作?
  2. 我可以为每个部门设置一个具有区域的 MVC 应用程序。不错的选择。它解决了我的共享视图问题。但是,当我们完成时,我最终可能会得到 12-15 个不同的区域。这是一个巨大的解决方案中的许多子文件夹和代码。更不用说我可能想将我的模型和存储库分离到他们自己的项目中。甚至可以使用区域来处理吗?
  3. 如果对此有更好的想法,我将不胜感激。

我们有 8 到 10 名开发人员将继续开发这个应用程序,所以我只想确保我拥有最好的结构。

4

2 回答 2

1

我认为这里没有“正确”的答案,基本上它归结为您认为随着时间的推移最容易构建和维护的东西。所以这就是我要做的。

将模块组合成更易于管理的单元,并将这些单元放在模块将成为区域的不同网站项目中。如果视图共享是这里最重要的事情,那么这将是您将模块分组到具有不同区域的网站的标准。此外,如果他们分享一些观点,那么他们在逻辑上也或多或少相似,所以你最终也会按照他们的逻辑含义对它们进行分组。然后,您可以将它们作为解决方案中的不同项目,或完全不同的解决方案。

似乎还有一种方法可以使用来自不同项目的视图。我个人从来没有这样做过,链接是谷歌快速搜索给我的,所以一定要详细阅读。这可以使您的视图可在所有网站上重复使用。

关于模型和存储库,我会将它们放在一个完全独立的项目中,然后所有网站都会引用它们。最近,我倾向于在不考虑任何“客户端”的情况下构建我的模型和存储库,所以我通常将它们放在一个完全独立的项目中,并且我尝试构建它们以便它们可以轻松地被网站、网络使用服务或桌面应用程序。

我希望这会有所帮助,但正如我所说,这绝不是一个正确的答案(它可能是完全错误的,所以如果有人有更好的想法,请分享)。顺便说一句,如果您有 8 到 10 名开发人员来开发它,请务必询问他们。来自聪明人的一堆不同意见往往会融入有用的想法。

于 2012-10-12T20:45:20.547 回答
0

您可以通过多种方式真正做到这一点。

一种选择是使用Portable Areas,其中每个区域都是它自己的程序集。这可以解决您的项目大小问题。

于 2012-10-12T21:35:23.787 回答