winform项目的三层框架

哪三层?

我们通常所说的三层框架指的是DAL、BIL和UIL三层,分别是数据层、业务逻辑层和界面层,以及与之搭配的实体类和通用类库,下面分别概述

DAL-数据访问层 - DataAccessLayer

数据访问层,就是调用我们数据库访问方法,专注于数据的增删改查操作,构建SQL语句,构建参数等。
DAL就是根据业务需求,构建SQL语句,构建参数,调用帮助类,获取结果,DAL层被BIL层调用。

BLL-业务逻辑层 - Business Logic Layer

BLL层索要负责的,就是处理业务逻辑上的问题,比如在调用数据库访问之前,对数据的处理、判断等。那你可能就会有疑问,为什么不把业务逻辑和数据访问合在一起呢,偏要搞出两个层,不是多此一举么。那其实呢,我们分层解决问题的意义就是,功能专一,并且解耦我们的程序,我们在DAL层只关心我的数据库访问操作,我默认你给我的数据是合法的、正确的,那至于你如何保证数据的合法性和正确性就是你需要在BLL层里去做的了。
BLL层只被UIL层引用。

UIL-用户表现层

就是窗体Form。

实体类- Model

我们将数据存放在数据库中,数据表的结构,我们通常会用一个类来抽象,表的属性就是类的属性,我们通常将表的一行存储在一个类中。我们在Java中,通常将其称为实体类Entity,在C#中,我们通常将其称为Model。
Model类库一般来说需要被DAL、BIL和UI引用。

通用类库-Utility

对于一些程序中用到的其他封装的类库,可以统一放在这里,比如一些第三方类库等。

数据库帮助类

我们可以用过封装ADO.NET形成自己的一套方法,但是我们知道在ADO.NET中,SQLServer、Access、Mysql和Oracle使用的是不同的类,那么我们可能需要对每一个数据库封装一套帮助类。其中常用的方法包括非查询类方法(两个重载[sql],[sql,参数])和查询类方法(两个重载[sql],[sql,参数]),事务类方法、存储过程类方法等。
我们通常为会先规定一个接口,然后在帮助类中实现结构。这样后期可以通过反射或工厂的方式来实现不同数据库的切换。

项目创建

1、首先创建解决方案的过程中,创建默认项目Windows窗体应用程序UIL
2、然后分别在解决方案中添加类库项目DAL、BLL和CL(通用类库)和Model
3、然后新建一个DBUtil类库,里面放SQLHeader类
4、最后添加引用,从下往上添加,先给DAL添加Model和DBHelper的引用,再为BLL添加DAL和Model的引用,再为UIL添加BLL和Model引用,然后在为需要使用通用类库的项目添加CL的引用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WinForm上位机开发中,三层框架是常用的架构模式之一,用于实现系统的分层结构,提高代码的可维护性和可扩展性。下面我们来介绍如何在三层框架下实现登录功能。 第一层是表现层,也就是WinForm客户端界面。在登录界面上,通常有两个文本框分别用于输入用户名和密码,以及一个登录按钮。当用户点击登录按钮时,触发相应的事件处理程序。 第二层是逻辑层,又称为业务层。在登录功能中,逻辑层负责处理用户的输入以及与数据库交互的操作。逻辑层会调用数据访问层的方法来验证用户输入的用户名和密码是否与数据库中存储的一致。如果一致,则登录成功;否则,登录失败。 第三层是数据访问层,负责与数据库进行交互,执行数据库操作。在登录功能中,数据访问层会提供一个验证用户身份的方法,该方法会通过查询数据库中的用户表,判断输入的用户名和密码是否匹配。 具体的实现流程如下: 1. 用户在登录界面输入用户名和密码,点击登录按钮。 2. WinForm客户端界面会调用逻辑层的登录方法,并将输入的用户名和密码作为参数传递给该方法。 3. 逻辑层根据传入参数调用数据访问层的验证用户身份的方法。 4. 数据访问层连接数据库,执行查询操作,判断输入的用户名和密码是否匹配。 5. 数据访问层将验证结果返回给逻辑层。 6. 逻辑层根据验证结果,决定登录是否成功。 7. 若登录成功,客户端界面显示登录成功提示信息,跳转到下一个功能界面;若登录失败,客户端界面显示登录失败提示信息。 通过三层框架的设计,可以将界面逻辑、业务逻辑和数据访问逻辑分离,提高代码的可维护性和可测试性。同时,也能够将不同层级的代码逻辑清晰地划分开来,便于团队协作开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值