看起来你不知道这些术语是什么意思。首先,不是它们是“层”。
- WCF - Windows通信基础 - 用于构建面向服务的应用程序的MS技术
- DAO - 数据访问对象 - 对象公开与数据库交互的操作(加载对象,保存对象等),但在内部隐藏有关数据库的详细信息。
- DTO - 数据传输对象 - 用于将数据从一个层/层传输到其他层/层的特殊对象类型。
因此,在实际架构中使用这些术语的示例可以是:
数据层(Db服务器)
业务层(应用程序服务器)
- 使用DAO访问数据库并隐藏更高层数据库详细信息的数据访问层。
- 使用数据访问层访问和保留数据的业务层。运行所有域逻辑,工作流,业务规则等。
- 在WCF中实现的服务层从业务层公开业务操作。服务层公开使用DTO传输数据的Web服务。域/业务对象将与DTO进行转换。
演示文稿层(网络服务器)
- 表示层 - 使用服务层与业务层通信的ASP.NET应用程序。服务层和表示层仅交换DTO。
此架构仅适用于大型项目。通常,您不需要单独显示表示层和业务层,因此您不需要WCF服务层。在这种情况下,您的表示层可以直接访问业务层而无需使用DTO。
修改强>
根据您的评论,我正在添加这些信息。
- NHibernate的
Session
可以称为DAO,因为它提供了与DB交互的操作,但它也隐藏了DB的详细信息。
- 使用NHibernate时,您有一组类,可以根据定义的映射将其保存到DB。 NHibernate存储并加载这些对象。您可以向这些类添加一些逻辑(方法),并将它们称为域/业务对象。
- DTO是特殊类型的对象,没有任何逻辑。它是数据的juse包装箱。它通常设计为仅传输操作实际需要的数据(例如,如果您只需要名称和电子邮件,则不会传输整个客户对象)。 DTO还应设计为从多个业务对象传输数据,以减少客户端和服务之间的往返。