C# Winform 三层架构
三层架构是 C# 桌面开发中比较常用的框架,是由 表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)三层架构组成,目的是为了 “高内聚,低耦合”。开发人员分工更明确,将精力更专注于应用系统核心业务逻辑的分析、设计和开发,加快项目的进度,提高了开发效率,有利于项目的更新和维护工作。
从三层架构可以看到,很类似于 Web 前端开发的 MVC 框架(视图View,模型Model,控制Contorller),但本质上也有不同的地方,比如都有视图(三层中叫 UI),Model ,三层中没有 Contorller,但 BLL 层和 Contorller 很类似。
一个项目如果用到了三层架构,这就必然要涉及到数据库,否则就没有必要用三层架构了,下面用一张图来表示,我百度看了很多的帖子,三层架构写的基本是有一些差异的,如果你看的资料和我写的不一样,那都是正常的。
另外,各种项目根据自己的需求来,并不是所有的PC软件都要求用三层架构,用程序集划分了代码的逻辑,才是三层架构真正的意义所在。现在网上已经有很多三层架构自动生成生成软件,可以根据 sqlserver 数据库一键生成,但基本都是2016年之前的软件了,后面也没再更新了,有需要的话可以去试试。
二、搭建三层架构新建一个基于.net6 的 winform 项目,就以登陆功能作为演示,界面如下
1.Model添加一个 .net6 类库,取名 Model(存储数据库字段),在里面添加一个类 UserInfo
代码:
namespace Model{public class UserInfo{public string? UserName { get; set; }public string? Password { get; set; }}}一般你数据库用户表的所有字段都要写出来,主要是方便后面将查询的数据以类对象的方式返回回来。
2.DAL添加一个 .net6 类库,取名 DAL(数据访问层),在里面添加一个类 SqlServerHelper,这里看你用的什么数据库,如果是 mysql 就用 mysql 的查询方式,c# 查询 mysql 和 sqlserver 数据库我都有写相关的教程,有需要的可以去看看
C# 连接 SqlServer 数据库_熊思宇的博客-CSDN博客_c连接sqlserver数据库
C# 连接 MySQL 数据库_熊思宇的博客-CSDN博客_c# mysql
SqlServerHelper.cs
using System.Data;using System.Data.SqlClient;namespace SqlServer{internal class SqlServerHelper{/// /// 连接字符串/// private string strconn = string.Empty;public SqlServerHelper(string conn){//读取配置文件//strconn = ConfigurationManager.AppSettings["Conn"].ToString();//strconn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();strconn = conn;}/// /// 执行增删改SQL语句/// /// SQL语句/// public int ExecuteNonQuery(string cmdText){using (SqlConnection conn = new SqlConnection(strconn)){conn.Open();return ExecuteNonQuery(conn, cmdText);}}/// /// 执行增删改SQL语句/// /// SqlConnection/// SQL语句