【问题标题】:When do I add new folders in Convention over Configuration?何时在“约定优于配置”中添加新文件夹?
【发布时间】:2012-04-16 14:28:52
【问题描述】:

我有两个问题,真的。

我看到人们在他们的项目中添加了一个 Services 文件夹。该文件夹的用途是什么?

我看到了 Services 和 ViewModels 的文件夹。现在我遇到了一篇关于存储库的文章。那么,每次我有新用途的类时,我都应该为它们创建一个文件夹吗?例如,如果我有一个 Repository 类,那么我应该创建一个 Repository 文件夹并将它们放在那里而不是 Models 文件夹?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 model-view-controller convention-over-configur


    【解决方案1】:

    模型文件夹仅用于查看模型。没有其他东西属于它。

    我建议您将所有非 UI 逻辑移到您从 MVC 项目中引用的单独类库中。谷歌separation of concerns

    至于文件夹命名,因架构而异。那些使用域驱动设计的人倾向于命名文件夹

    • 基础设施
    • 模型(域模型而非视图模型)
    • 存储库
    • 服务

    而其他人为他们放置所有相关类的每种类型的模型创建根文件夹。

    【讨论】:

    • 您说:“模型文件夹仅用于查看模型。没有其他内容属于其中。”在 ASP.NET MVC 中?我阅读和看到的所有内容都表明它可以是域模型(对象或直接来自数据库)或视图模型。事实上,大量 MVC 文章/教程告诉您创建一个单独的 ViewModels 文件夹。
    • 这是因为没有现有的指南。任何人都可以编写示例、博客条目或基本的 MVC 项目,它们都可以正常工作。当应用程序增长并且您必须开始维护它时,问题就出现了。 MVC3 项目是一个 UI 层,应该只包含 UI 逻辑。至少如果您想要一个使用关注点分离的结构良好的解决方案。
    【解决方案2】:

    文件夹(通常)与约定优于配置无关。它们只是组织内容的一种方式。请记住,这通常也会为该文件夹中的所有类创建一个命名空间(文件夹名称)。

    在您的具体情况下,您需要做最有意义的事情。如果您为存储库使用自定义 POCO,那么我同意创建一个存储库文件夹。但是,Models 文件夹确实是 MVC 中的约定,UI 使用的模型应该存储在那里。

    只要确保将对象存储在最合乎逻辑的位置,就可以了 :)

    【讨论】:

      猜你喜欢
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      • 2014-12-23
      相关资源
      最近更新 更多