【发布时间】:2013-04-15 09:35:10
【问题描述】:
我们的应用程序中有两个项目:
- Web UI 项目(aspx 页面)。
- WCF 项目。
这两个部分将进一步调用相同的 BL 和 DAL 层。这是架构:
网络项目:
WCF 项目(将使用 REST):
上述业务对象和 DTO 示例:
public class User
{
public int UserID { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class UserDTO
{
public int UserID { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
是否值得为 WCF REST 层提供单独的数据传输对象 UserDTO.cs?我们已经将 User.cs 作为 Web 项目、BL 和 DAL 使用的业务对象。此外,在我们的 WCF REST 层中,我们仅将 DTO 用于输入婴儿车:
public MyResponse CreateUser(User user)
{
通过这个方法,我们通过一些映射器将 DTO 转换为业务对象(即 UserDTO 到 User.cs 对象),并将其传递给仅接受业务对象而不接受 DTO 的 BL 层。即,从 WCF 将业务对象传递给 BL 和 DAL 的点来看,它的行为方式与 UI 将业务对象传递给 BL 和 DAL 层的方式完全相同。
使用 2 个单独的数据传输对象有什么实际优势?我问了这个问题,因为 IMO 这将是多余的,我们应该使用一个数据传输对象,即 Web 项目和 WCF 项目的业务对象。
【问题讨论】: