ASP.net 三层架构各层如何通讯,用代码举例说明
时间: 2023-12-03 22:46:50 浏览: 68
ASP.NET三层架构一般包括表示层、业务逻辑层和数据层。它们之间的通讯可以通过接口、类和对象等方式实现。下面是一个简单的例子:
1. 表示层
在表示层中,我们可以通过创建业务逻辑层对象来调用业务逻辑层的方法,从而实现与业务逻辑层的通讯。
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ThreeTierArchitectureDemo.PresentationLayer
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BusinessLayer.Employee emp = new BusinessLayer.Employee();
emp.Name = "John";
emp.Age = 30;
emp.Address = "123 Main st.";
emp.SaveEmployee(emp);
}
}
}
```
2. 业务逻辑层
在业务逻辑层中,我们可以定义接口或者类来与数据层进行通讯。例如,在以下示例中,我们定义了一个接口 IEmployeeDAL,用于与数据层进行通讯。
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ThreeTierArchitectureDemo.DataAccessLayer;
namespace ThreeTierArchitectureDemo.BusinessLayer
{
public class Employee
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
public void SaveEmployee(Employee emp)
{
IEmployeeDAL employeeDAL = new EmployeeDAL();
employeeDAL.SaveEmployee(emp);
}
}
}
```
3. 数据层
在数据层中,我们实现了业务逻辑层定义的接口,并且通过该接口与数据库进行通讯。例如,在以下示例中,我们实现了 IEmpoyeeDAL 接口,并且通过 ADO.NET 与数据库进行通讯。
```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
namespace ThreeTierArchitectureDemo.DataAccessLayer
{
public class EmployeeDAL : IEmployeeDAL
{
public void SaveEmployee(BusinessLayer.Employee emp)
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=ThreeTierArchitectureDemo;Integrated Security=True");
SqlCommand cmd = new SqlCommand("INSERT INTO Employee(Name, Age, Address) VALUES (@Name, @Age, @Address)", con);
cmd.Parameters.AddWithValue("@Name", emp.Name);
cmd.Parameters.AddWithValue("@Age", emp.Age);
cmd.Parameters.AddWithValue("@Address", emp.Address);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
public interface IEmployeeDAL
{
void SaveEmployee(BusinessLayer.Employee emp);
}
}
```
通过以上三个层次的代码实现,我们可以看到,表现层通过创建业务逻辑层对象来调用业务逻辑层的方法,从而与业务逻辑层进行通讯。业务逻辑层通过接口与数据层进行通讯,从而实现对数据库的操作。这样的分层架构,可以让应用程序更加模块化,易于维护和扩展。
阅读全文