C# 在哪里放置DTO、结果对象等?

C# 在哪里放置DTO、结果对象等?,c#,asp.net-mvc,project-structuring,C#,Asp.net Mvc,Project Structuring,我有一个相当干净的ASP.NETMVC项目结构。然而,我正在努力研究如何组织大量属于DTO(数据传输对象)的类,例如,仅封装表单(viewmodels)中的post数据,但不表示完整域对象或任何类似的对象;然后是我拥有的许多“结果”对象,它们将复杂的结果信息从我的服务层传回控制器。你把这些东西放在哪里/怎么组织?我现在有一个文件夹,里面有超过60门课,而且越来越乱了。感谢您的建议 域对象应位于单独的域模型库中。任何以与框架无关的方式支持域模型的内容(例如,不引用ASP.NET MVC、WCF、W

我有一个相当干净的ASP.NETMVC项目结构。然而,我正在努力研究如何组织大量属于DTO(数据传输对象)的类,例如,仅封装表单(viewmodels)中的post数据,但不表示完整域对象或任何类似的对象;然后是我拥有的许多“结果”对象,它们将复杂的结果信息从我的服务层传回控制器。你把这些东西放在哪里/怎么组织?我现在有一个文件夹,里面有超过60门课,而且越来越乱了。感谢您的建议

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

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

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

我使用
.Core
存储所有项目特定的类,这些类不严格属于我正在编写的特定项目接口。所以DTO、DAO和其他特定于项目的类都在这里

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