一 三层架构是哪三层
1.界面层(User Interface layer)
主要功能是显示数据和接受传输用户的数据,提供与人的交互。
2.数据访问层(Data access layer)
其主要是访问数据系统中的文件,比如实现对数据库或文件中数据的读取保存操作
3.业务逻辑层(Business Logic Layer)
可以说是表示层和数据访问层的桥梁,从表示层得知用户的操作,然后根据操作从数据访问层获取数据进行相关操作再返回给表示层
优缺点
优点
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用。
缺点
1、降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码。
二 如何构造三层架构
步骤1
文件—新建—项目—Windows窗体应用程序
名称:UI
解决方案名称:个人任务管理系统
选中解决方案名称:个人任务管理系统
添加—新建项目—类库
名称:Model
选中解决方案名称:个人任务管理系统
添加—新建项目—类库
名称:BLL
选中解决方案名称:个人任务管理系统
添加—新建项目—类库
名称:DAL
完成之后如图所示
步骤2
DAL 添加引用
Model
BLL 添加引用
DAL,Model
UI 添加引用
BLL,Model
下面只显示UI层引用
步骤3
Model编写Project类文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Model
{
public class Project
{
///
/// 项目编号
///
public int ProjectID { get; set; }
///
/// 项目名称
///
public string ProjectName { get; set; }
}
}
步骤4
DAL编写SqlHelper类文件和ProjectService类文件
代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace DAL
{
public class SqlHelper
{ //连接数据库
private static string strConn = ConfigurationManager.ConnectionStrings["TestConnectionString"].ConnectionString;
//查询方法
public static DataTable Query(string sql)
{
using (DataTable table = new DataTable())
{
using (SqlDataAdapter sqlAdapter = new SqlDataAdapter(sql, strConn))
{
sqlAdapter.Fill(table);
}
return table;
}
}
//增删改
public static int NonQuery(string sql)
{
int num = 0;
using (SqlConnection sqlConn = new SqlConnection(strConn))
{
using (SqlCommand sqlcmd = new SqlCommand(sql, sqlConn))
{
try
{
sqlConn.Open();
num = sqlcmd.ExecuteNonQuery();
}
finally
{
if (sqlConn.State == ConnectionState.Open)
{
sqlConn.Close();
}
}
}
}
return num;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
namespace DAL
{
public class ProjectService
{
public static DataTable Select()
{
var sql = "select*from Project";
return SqlHelper.Query(sql);
}
}
}
步骤5
BLL编写ProjectManage类文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using DAL;
using Model;
namespace BLL
{
public class ProjectManage
{
public static DataTable Select()
{
return ProjectService.Select();
}
}
}
完成步骤3~步骤5后如下图所示
三层架构构建完毕。



