【问题标题】:Where to put DTOs, Result Objects etc?DTO、结果对象等放在哪里?
【发布时间】:2010-11-20 12:21:29
【问题描述】:

我有一个相当干净的 ASP.NET MVC 项目结构。但是,我正在努力解决如何组织作为 DTO(数据传输对象)的类的 mass,例如只是为了封装来自表单(视图模型)的发布数据,但不代表完整的域对象或任何接近它的东西;然后是我拥有的许多“结果”对象,它们将复杂的结果信息从我的服务层传回控制器。你把这些东西放在哪里/你如何组织它们?我现在有一个文件夹,里面有 60 多个课程,而且变得杂乱无章。欣赏建议!

【问题讨论】:

    标签: c# asp.net-mvc project-structuring


    【解决方案1】:

    域对象应该存在于单独的域模型库中。以框架中立的方式支持域模型的任何内容(例如,不引用 ASP.NET MVC、WCF、WPF 等)都属于域模型。

    在域模型和特定接口框架(在您的情况下为 ASP.NET MVC)之间执行转换的类属于该特定项目(您的 ASP.NET MVC 项目)。

    您可以将映射器等放在单独的 Mappers 文件夹中,但就我个人而言,我认为沿着功能而不是基础架构构建代码更有价值。

    【讨论】:

      【解决方案2】:

      我使用<CompanyName>.<ProjectName>.Core 来存储与我正在编写的特定项目接口不严格相关的所有项目特定类。所以 DTO、DAO 和其他项目特定的类都在里面。

      我还使用<CompanyName>.<DotNetLibraryNamespace> 来存储可以跨项目重用的通用类,并且不特定于该项目域。例如,字符串操作类可以放在<CompanyName>.Text 命名空间中。我总是镜像 .net 命名空间结构名称,以便使用 .net 类库的任何人都可以轻松找到我的东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-17
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 1970-01-01
        • 2019-07-11
        • 2011-01-27
        • 1970-01-01
        相关资源
        最近更新 更多