如何在c#中实现3层架构

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

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

    + GetData() :返回此;

    + Update(this) ;

    + Insert(this) ;

    + Delete(this) ;

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

  • 我想如果使用上述方法,我们可以获得记录并更新它。 但是,如果我们有很多记录并希望将其放入数据集中,那么我们如何更新所有已更改的记录? 我们必须为所有记录使用循环吗?
  • 而且,在数据库中,有很多表彼此相关,所以我们如何将它们放入数据集,建立关系以及添加,更新,删除像BindingSource一样使用ComboboxDataGridView ? 在这种情况下我们如何分离代码呢?

在此处输入图像描述

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

  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://管道使用代理服务器消耗在Business Server上公开的服务。
  6. 客户端可以是任何独立的计算机,在桌面应用程序(Win-Form或控制台应用程序)的情况下安装应用程序,或者具有运行Web应用程序的浏览器。
  7. 数据/信息由实体封装,并通过网络从一个位置传输到另一个位置,然后是所有网络协议。

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

C#中的 3层体系结构和C#.NET中的三层体系结构 。 这两个项目都特别适合您。

在此处输入图像描述

在此处输入图像描述