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

Trầ*_*inh 6 c# architecture 3-tier

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

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

    + GetData():返回此;

    + Update(this);

    + Insert(this);

    + Delete(this);

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

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

Moi*_*oiz 12

在此输入图像描述

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


Son*_*nül 4

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

\n\n

C#和T\xcc\xb6h\xcc\xb6r\xcc\xb6e\xcc\xb6e\xcc\xb6 \xcc\xb6L\xcc\xb6a\xcc\xb6y\xcc\xb6e\xcc\xb6r\xcc中的 3 层架构\xb6 \xcc\xb6A\xcc\xb6r\xcc\xb6c\xcc\xb6h\xcc\xb6i\xcc\xb6t\xcc\xb6e\xcc\xb6c\xcc\xb6t\xcc\xb6u\xcc\xb6r\xcc\xb6e \xcc\xb6 \xcc\xb6i\xcc\xb6n\xcc\xb6 \xcc\xb6C\xcc\xb6#\xcc\xb6 \xcc\xb6.\xcc\xb6N\xcc\xb6E\xcc\xb6T\xcc\xb6。这两个项目都特别适合您。

\n\n

在此输入图像描述

\n\n

在此输入图像描述

\n

  • 洋葱架构 - http://jeffreypalermo.com/blog/the-onion-architecture-part-1/ (2认同)