【问题标题】:Is there a point to have multiple VS projects for an ASP.NET MVC application?一个 ASP.NET MVC 应用程序有多个 VS 项目有什么意义吗?
【发布时间】:2010-03-18 12:09:34
【问题描述】:

我正在开发 MVC 应用程序,目前我有 3 个项目在解决方案中。

  • 核心(它应该用于存储库、业务类、模型、HttpModules、HttpFilters、设置等)
  • 数据访问(数据提供程序,例如用于处理 SQL Server 数据存储的 SqlDataProvider - 实现 Repository 接口,XmlDataProvider - 也实现 Repository 接口,但用于本地 XML 文件作为数据存储)
  • ASP.NET MVC 项目(所有典型的东西、UI、控制器、内容、脚本、资源和帮助程序)。

我的 ASP.NET MVC 项目中没有模型。我刚刚遇到了一个问题,因为我想在我的 Business 类上使用 MVC 2 中的新 DataAnnotation 功能,正如 Core 中所说,但我希望能够本地化错误消息。这是我的问题开始的地方。我无法在 Core 中使用 MVC 项目中的 Resources。 MVC 项目引用 Core,不能反之。

我看到的选项是: 1)将资源移出,但这需要更正我引用它们的一大堆视图和控制器, 2) 对我的应用进行全面重组

您对此有何看法?另外,我是否应该将所有与业务相关的内容移到 MVC 项目中的 Models 文件夹中?像这样构造它是否有意义,因为我们可以为 MVC 项目下的所有内容创建子文件夹?整个 Core 库不打算用于其他任何用途,因此实际上没有必要将其编译为单独的 DLL。

建议表示赞赏。

【问题讨论】:

    标签: asp.net-mvc web-applications repository


    【解决方案1】:

    将所有内容放入一个 .csproj 大船中,并使用文件夹来分隔内容。它比单独的项目更容易导航文件夹。您不必一直与命名空间作斗争,一切都如您所愿。当事情不在正确的位置或需要引用程序集时,您可以完全消除任何 .sln 功夫,并且您可以花费更多时间编码而不是移动 .sln 位。

    有人说“换掉一个实现”变得更加困难,这是胡扯。交换文件夹的内容就像交换项目一样简单。

    MVC 源代码让我喜欢这种方法。他们把所有东西都弄平了,而且很容易在他们的源代码周围游来游去。

    【讨论】:

    • 拆分的好处是,当您进行更改时,您不必重新编译所有内容,只需重新编译已更改的项目。在开始单元测试之前,您不会真正看到这种优势。当您对域类进行 TDD 时,您真的想继续重建所有 HTTP 模块、DBML 和 Web 项目吗? (另外,我总是将我的 dbml 保存在它自己的项目中,因为它通常大约是我总构建时间的 2/3。)我做的另一件事是有一个 MVC 项目,其中只有视图。将所有控制器、过滤器、global.asax.cs 等保存在单独的类库项目中。
    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多