C# asp.net 三层架构

三层架构:指的是PL(present layer,BLL(business logical layer,DAL(data access layer)层,是一种总体设计的思想。


PL层:是表现层,主要是用来展示数据;BLL层:是处理层,主要是用来处理数据;DAL层:主要是从数据库获取数据的。PL面向用户,DAL面向数据库。


具体阐述:PL是web应用程序,调用BLL的方法将数据传给BLL或者从BLL中获取处理好的数据;BLL层是一个类库,调用DAL的方法获取数据或者将数据处理结果给DAL。

实现方法:

新建项目:

1.新建-项目-空解决方案

2.右键空解决方案-添加新项-web应用程序(PL层,当然还要添加web窗体


3.右键空解决方案-添加新项-类库(BLL层)

4.右键空解决方案-添加新项-类库(DAL层)


然后添加引用:

右键PL层的引用,添加对BLL层的引用


,右键BLL层的引用,添加对DAL层的引用



注意:改类库为共有,这样才可以访问到其他类库(PL,BLL)中它们的类



测试:

PL中WebForm1.aspx的代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Web.WebForm1" %>




    


    
10+12=
10*12=

PL代码WebForm1.aspx.cs的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Web
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            BLL.Calculate c = new BLL.Calculate();
            Label1.Text = "" + c.add(10, 12);
            Label2.Text = "" + c.mul(10, 12);
        }
    }
}

BLL类库中Calculate.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace BLL
{
    public class Calculate
    {
        DAL.Class1 c = new DAL.Class1();
        public int add(int x, int y)
        {
            return c.getX()+c.getY();  
        }
        public int mul(int x, int y)
        {
            return  c.getX()* c.getY();
        }
    }
}
DAL中class1.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DAL
{
    public class Class1
    {
        public int getX()
        { return 10; }
        public int getY()
        {
            return 12;
        }
    }
}

效果:



补充说明:

1.一般类库的名字不是这样命名的,这个只是一个简单例子,看着比较容易理解。一般是公司名+项目名称+BLL(或DAL)。

2.三层架构可以用动软代码生成器生成。下载链接地址是:

http://www.onlinedown.net/soft/63546.htm

你可能感兴趣的:(新事物学习)