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

时间:2012-12-09 10:14:55

标签: c# architecture 3-tier

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

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

    + GetData():返回此内容;

    + Update(this);

    + Insert(this);

    + Delete(this);

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

  • 我认为如果使用上述方法,我们可以获得记录并进行更新。但是如果我们有很多记录并希望将其放入数据集中, 我们怎样才能更新所有记录?我们必须为所有记录使用循环吗?
  • 而且,在数据库中,有很多表相互关联,所以我们如何将它们放入数据集,建立关系和 使用BindingSourceCombobox添加,更新,删除使用DataGridView的记录?在这种情况下我们如何分离代码呢?

2 个答案:

答案 0 :(得分:11)

enter image description here

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

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

    此图描述了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. 数据/信息由实体封装,并通过网络从一个位置传输到另一个位置,然后是所有网络协议。

答案 1 :(得分:3)

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

3-tier architecture in 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̶。这两个项目都特别适合你。

enter image description here

enter image description here