我有一个相当干净的 ASP.NET MVC 项目结构。但是,我正在努力研究如何组织大量的 DTO(数据传输对象)类,例如仅封装来自表单(视图模型)的发布数据,但不代表完整的域对象或任何接近的对象;然后是我拥有的许多“结果”对象,它们将复杂的结果信息从我的服务层传回控制器。你把这些东西放在哪里/你如何组织它们?我现在有一个文件夹,里面有 60 多个课程,而且变得杂乱无章。欣赏建议!
问问题
3852 次
2 回答
8
域对象应该存在于单独的域模型库中。任何以与框架无关的方式支持域模型的东西(例如,不引用 ASP.NET MVC、WCF、WPF 等)都属于域模型。
在域模型和特定接口框架(在您的情况下为 ASP.NET MVC)之间执行转换的类属于该特定项目(您的 ASP.NET MVC 项目)。
您可以将映射器等放在单独的 Mappers 文件夹中,但就个人而言,我认为沿着功能而不是基础架构构建代码更有价值。
于 2009-08-18T07:57:19.143 回答
1
我<CompanyName>.<ProjectName>.Core
用来存储与我正在编写的特定项目接口不严格相关的所有项目特定类。所以 DTO、DAO 和其他项目特定的类都在里面。
我还用于<CompanyName>.<DotNetLibraryNamespace>
存储可以跨项目重用的通用类,并且不特定于该项目域。例如,字符串操作类可以放在<CompanyName>.Text
命名空间中。我总是镜像 .net 命名空间结构名称,以便使用 .net 类库的任何人都可以轻松找到我的东西。
于 2009-08-18T08:08:50.163 回答