【问题标题】:transfer objects betwen DAL and BLL在 DAL 和 BLL 之间传输对象
【发布时间】:2011-06-29 19:38:53
【问题描述】:

我们正在启动一个新的 Web 应用程序,我们决定使用 N 层设计。

我们对在层之间传输数据的对象 (DTO) 存在一些分歧,
里面应该有方法吗?

如果要组织来自 2 个数据库的数据,我们是否应该为每个对象的所有层创建一个 DTO?标准是什么?

我们正在阅读 Microsoft 的 Web 应用程序设计。

【问题讨论】:

    标签: c# architecture


    【解决方案1】:

    DTO 对象通常是数据的容器,没有任何行为。使用 DTO 对象实现层间映射的方法有很多种。

    在阅读 MS 模式和实践团队关于 DTO 的文章时,您可以得到一些指导:http://msdn.microsoft.com/en-us/library/ff649585.aspx

    还有另一个关于 SO 的资源:@​​987654322@

    您还可以查看一个工作项目示例“Microsoft - Domain Oriented N-Layered .NET 4.0 App Sample”:http://microsoftnlayerapp.codeplex.com/,其中使用了许多模式以及 DTO。

    【讨论】:

    • 我们有一个名为 site 的对象,它的数据由 2 个数据库组成(是的,我知道这很糟糕 - 旧架构),同时由用户创建一个新的数据库,我们正在调用一种设置数据的方法一个内部对象(来自另一个数据库),我不喜欢它在 DTO/POCO 中我希望它在 BLL 中但它的对象结构那么它应该在 DAL 中吗?有那个方法正常吗,可以是dao中的util方法吗?你有什么想法?
    • 我的建议是保持简单和愚蠢(KISS)。我喜欢保持我的关注点分离。在最简单的场景中,我们有 DAL 层和域层。该域没有引用任何内容。 DAL 知道域,因此它是我可以实现映射或辅助方法的唯一层。在您的情况下,您可以通过第三方框架或定制的辅助方法用数据填充站点对象,但我认为最好将其保存在您的 dal 中。 “不管”它是如何完成的,因为重要的是在哪里完成。
    猜你喜欢
    • 2011-04-26
    • 1970-01-01
    • 2011-06-09
    • 2011-04-10
    • 2010-10-01
    • 1970-01-01
    • 2011-01-23
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多