5 .net c# architecture asp.net-core request-response
软件架构中响应对象和 DTO 有什么区别?假设我想获取目录中的产品列表。
如果 ProductDTO 是这样,那么 Product Response 类有何不同?产品响应通常只是一个带有日期时间、错误日志或 GUID 的包装,或者主要区别是什么?如果没有确切的或多个答案,想听听业界的主要原因。
public class ProductDto
{
public int ProductId { get; set;},
public string ProductName { get; set;},
public string ProductDescription { get; set;},
public float SalesAmount { get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我尝试谷歌搜索这些答案,他们没有这个问题的具体答案,
对各种请求/响应类型重用 DTO 与明确需要什么/应该返回什么
更新:
试图验证答案。看来 Rahul 的答案是回答 Domain object 和 DTO 之间的区别。Thought Response 是 DTO 的包装,不确定是否正确 -
http://themoderndeveloper.com/the-modern-developer/requesting-a-response/
现在发布在这里:
Rah*_*ate 10
ADTO (Data Transfer Object)是一个定义数据如何通过网络或应用程序发送的对象。另一方面Response Object,它通常保存来自 DTO 的响应数据或WebApi's or Data Access任何其他对客户端的响应。
它Response Object通常包括特定对象的所有/少数属性,model or entity or DTO该特定对象通常是对象的子集DTO。请参阅下面的示例。
员工响应对象:
public class EmployeeResponseObject
{
public int Id { get; set; }
public string Name { get; set; }
public string Designation { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
员工 DTO:
public class EmployeeDTO
{
public int Id { get; set; }
public string Name { get; set; }
public string Designation { get; set; }
public decimal Salary { get; set; }
public DateTime JoiningDate { get; set; }
public decimal Tax { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在你可以在这里看到。EmployeeResponseObject是 的子集,EmployeeDTO其中mean'sEmployeeResponseObject具有较少的属性EmployeeDTO。在少数情况下,我们不必将所有信息传递给最终客户端。因此我们将使用EmployeeResponseObject来获取所需的属性EmployeeDTO。您可以使用LINQ将数据投影到Response Objectfrom DTO。
[ResponseType(typeof(EmployeeResponseObject))]
public EmployeeResponseObject GetEmployee()
{
var employee = from e in dbContext.EmployeeDTO
select new EmployeeResponseObject()
{
Id = e.Id,
Name = e.Name,
Designation = e.Designation
};
return employee;
}
Run Code Online (Sandbox Code Playgroud)
如果您仅用于EmployeeDTO传递信息,presentation layer/View, Webforms or ConsoleApp那么您的presentation layer/View意愿与您的domain layer. 所做的任何更改都DTO Objects需要您进行更改presentation layer or controllers,这不是一个好方法。
有时DTO和Response Objects会完全相同,那么为什么要使用单独的对象。这可能看起来是不必要的代码重复,但请考虑当您的项目变得更大时,特别是在一个大团队中,其中许多人在不同的应用程序层上一起工作。在这里使用DTO和 ,separate Response object对于良好的编程实践来说更有意义。当您跳过使用 时, 将会变得紧密Presentation layer/View耦合。domain layerResponseObject/ViewModelObject
| 归档时间: |
|
| 查看次数: |
18289 次 |
| 最近记录: |