多个MVC项目结构

时间:2012-10-12 20:18:49

标签: asp.net-mvc model-view-controller

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

  • 我们有不同的部门,我们将转向网络(MVC)。例如,我们有一个人口普查部门,管道部门,& Compset Dept等。

选项:

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

2 个答案:

答案 0 :(得分:1)

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

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

似乎还有using views from different projects的方法。 我个人从来没有这样做过,这个链接是Google搜索给我的快速链接,所以一定要仔细检查一下。这可以使您的观点在所有网站上都可以重复使用。

关于模型和存储库,我将它们放在一个完全独立的项目中,然后由所有网站引用。最近我倾向于构建我的模型和存储库而没有任何“客户端”,因此我通常将它们放在一个完全独立的项目中,我尝试构建它们以便它们可以轻松地被网站,网站使用服务或桌面应用。

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

答案 1 :(得分:0)

您可以通过多种方式实现这一目标。

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

相关问题