C# asp.net 三层架构

来源:互联网 发布:数据挖掘实例分析 编辑:程序博客网 时间:2024/06/05 21:20

三层架构:指的是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" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title></head><body>    <form id="form1" runat="server">    <div>        10+12=        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><br />        10*12=<asp:Label ID="Label2" runat="server" Text="Label"></asp:Label><br />        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />        <br />    </div>    </form></body></html>

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