7

我阅读了很多关于 c# 中的 3 层架构的文章,但我看到:

  • 几乎使用业务逻辑层(BLL)作为对象映射数据库中的对应表。这个 BLL 对象有一些像这样的方法:

    + GetData():返回这个;

    + Update(this);

    + Insert(this);

    + Delete(this);

  • 该 BLL 对象调用相应的 DAL(数据访问层)来执行相应的数据库表。

  • 我想如果使用上述方法,我们可以只获取一条记录并更新它。但是如果我们有很多记录并且想把它放到一个数据集中,我们如何更新所有改变的记录呢?我们必须对所有记录使用循环来做到这一点吗?
  • 此外,在数据库中,有很多相互关联的表,那么我们如何将它们放入数据集中,建立关系以及添加,更新,删除记录,如使用BindingSourcewith aCombobox和 a DataGridView?在这种情况下我们如何分离代码?
4

2 回答 2

12

在此处输入图像描述

上面描述了一个非常简单的三层模型架构。

  1. DAL(数据访问层)直接与数据库交互,因此所有 SQL 操作都仅在 DAL 内完成。
  2. BLL(业务逻辑层)就像 DAL 和 Presentation Tire 之间的中介。
  3. DAL 和表示层之间不允许直接通信。
  4. 虽然实体层没有物理存在,但实体封装了所有信息/数据,并将其从一层传递到另一层。
  5. 因此,所有数据库对象名称和数据库模式都被限制在 DAL 内,这为应用程序提供了额外的安全层。
  6. 由于 BLL 中定义了业务规则/逻辑,因此对业务逻辑的任何更新都不会影响 DAL 和表示层

在此处输入图像描述

此图描述了 3 层模型的实际实现。

  1. 数据访问服务和数据库服务器可以托管在单个服务器中。
  2. 大多数 SQL Server 2000/2005/2008 或 Oracle 可以托管在 Windows 2000/2003 Server 上。
  3. Business Server 通过 Web Service /Remoting/WCF 公开所有操作。
  4. 具有 Windows 2000/2003 的高度配置的服务器可用于托管业务服务,或者 Microsoft BizTalk Server 也可用于此。
  5. 表示层或客户端通过 http:// 管道使用代理来使用在业务服务器上公开的服务。
  6. 客户端可以是任何独立机器,如果是桌面应用程序(Win-Form 或控制台应用程序)正在安装应用程序,或者具有运行 Web 应用程序的浏览器。
  7. 数据/信息由实体封装,并通过网络从一个位置传输到另一个位置,然后是所有网络协议。
于 2012-12-09T10:20:39.873 回答
4

在 C# 中有 2 个关于三层架构的酷项目。

C#和T̶h̶r̶e̶e̶L̶a̶y̶e̶r̶A̶r̶c̶h̶i̶t̶e̶c̶t̶u̶r̶e̶̶i̶n̶̶C̶#̶̶.̶N̶E̶T̶中的 3 层架构。这两个项目都特别适合您。

在此处输入图像描述

在此处输入图像描述

于 2012-12-09T10:20:30.647 回答