将UI相关信息保存到分层应用程序中的数据库

时间:2010-11-04 20:04:34

标签: c# .net winforms

我和我的团队正在将我们的应用程序重构为分层应用程序。该应用程序是一个Windows应用程序,组织有UI,服务层(SL),业务层(BLL)和数据访问层(DAL)。我们的目标是将应用程序逻辑保留在服务层中,将域逻辑保留在业务层中,并使用DTO在服务层和UI之间进行通信。话虽如此,我的问题涉及存储在数据库中的UI特定数据。

例如(具有5个电话号码的屏幕,用户可以选择这些电话号码显示在屏幕上的位置{1,2,3,4或5})。在我的域模型中,我有一个名为Phone

的权利
public class phone{
 string name;
 string number;
 string extension;
 etc...
}

在服务层中,我有一个看起来像这样的DTO名称phoneDTO

public class phoneDTO{
     string name;
     string number;
     string extension;
     int position;
     etc...
}

通常,我将DTO传递给服务层,让服务层从域模型创建对象,然后调用相应的DAL映射器。

问题:在保留UI相关信息时,这样做的最佳做法是什么?在我的情况下,DAL没有对DTO的引用,它确实引用了域模型。

1 个答案:

答案 0 :(得分:1)

你可以选择存储库模式(只是google)来保存数据库中的实体,但在这种情况下,这个层应该知道实体模型以保留它们

看看:

Repository Pattern vs DAL

对于DTO,我认为你应该有一个类/层负责在两侧构建对象:DTO到entityMode,反之亦然。服务层不应该知道如何创建对象,而是将其委托给另一个层(汇编程序)

用户界面,服务层(SL),// 汇编程序 //业务层(BLL) - // **存储库(DAL)