欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

ASP.NET MVC中的三层架构详解:理解ASP.NET的分层设计

最编程 2024-02-07 09:53:24
...


一、基本概念及说明

ASP.NET三层架构主要包括UI(显示/表示)层、BLL(业务逻辑)层、DAL(数据访问)层。UI层主要用来显示数据,BLL层主要用来控制业务逻辑,有时什么都不做,只是简单作为传值用,而DAL层主要用来控制数据库,进行数据交互。并且还有Model层作为补充,进行参数传递。一般由UI层调用BLL层,BLL层调用DAL层,DAL层返回数据给BLL层,BLL层在接着返回数据给UI层显示数据。

asp.net mvc 三层架构 aspnet三层架构包括_asp.net

二、三层架构的优势

1.避免了表示层直接访问数据访问层,表示层只和业务逻辑层有联系,提高了数据安全性。


2.有利于系统的分散开发,每一个层可以由不同的人员来开发,只要遵循接口标准,利用相同的对象模型实体类就可以了,这样就可以大大提高系统的开发速度。


3.方便系统的移植,如果要把一个 C/S 的系统变成 B/S 系统,只要修改三层架构的表示层就可以了,业务逻辑层和数据访问层几乎不用修改就可以轻松的把系统移植到网络上。


4.项目结构更清楚,分工更明确,有利于后期的维护和升级。

三、Code

UI 层

<form id="form1" runat="server">
	<div>
	<asp:Button ID="btnGetData" runat="server" Text="点击" OnClick="btnGetData_Click" />
	<asp:GridView ID="GridView1" runat="server"></asp:GridView>
	</div>
</form>

//后台代码
protected void btnGetData_Click(object sender, EventArgs e)
{
	try
	{
		DemoBLL bll = new DemoBLL();
        DataTable dt = new DataTable();
        string sql = "select * from Book";
        dt=bll.GetData(sql);
        GridView1.DataSource = dt;
        GridView1.DataBind();
	}
	catch (Exception ex)
	{
		ClientScript.RegisterClientScriptBlock(this.GetType(), "", "<script>alert('错误: \\n" + ex.Message.Replace("'", "\\'").Replace("\r\n", "\\r\\n") + "')</script>");
	}
	finally
    {
	}
}

BLL层新建DemoBLL类

public class DemoBLL
{
	public DataTable GetData(string sql)
	{
		DemoDAL dal = new DemoDAL();
	    DataTable dt = dal.GetData(sql);
		return dt;
	}
}

DAL层新建DemoDAL类

public class DemoDAL
{
	public DataTable GetData(string sql)
	{
		SqlConnection conn = new SqlConnection();
		DataTable dt = new DataTable();
		try
        {
	        conn.ConnectionString = "server=.;database=Book;uid=sa;pwd=123456";
	        conn.Open();
	        SqlCommand cmd = new SqlCommand(sql, conn);
	        SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(dt);
            return dt;
		}
		catch (Exception ex)
		{
        	return null;
        }
        finally
        {
        	if (conn.State == System.Data.ConnectionState.Open)
        		conn.Close();
		}
	}
}

三层架构写的一个简单分页(连接字符串改下就行):
下载:https://7lin.lanzous.com/i4IG5gy2zbi 密码:18vh


推荐阅读