求一个简单的asp.net2.0三层结构例子

在学习 asp.net 三层架构,理解一直是模模糊糊的,
哪位高手能够帮我做一个简单的例子来帮忙理解下!
顺便说说 需要安装什么环境.
网上复制一大堆莫名其妙代码的就免了吧!
谢谢..

(注释,这是我现编的,不是摘抄的,我保证你看懂,看下去吧.)

没什么难的,其实反而更清晰了. 换个视角去看.

就跟公司一样,难道经理从采购到加工,到销售到售后都负责吗? 为了让业务和管理清晰和流程化,必须分部门,每个部门做专门应该做的事.

三层即,数据层,逻辑层,表现层.

咱从底层开始说.

[数据层],顾名思义,就是操作数据库.这一层就负责增,删,写,查询.别的它不管.

举例:

设计一个数据操作类叫做: DAL_Admin,这个类包括4个成员函数:Insert\Update\Delete\Login
看名字知道这4个家伙会干什么,他们负责对数据库中的Admin表进行相应的操作.
为了下面的例子我只写出Login函数的定义:

public bool Login(string strName, string strPassword)
{
//这里的代码省略,就是链接数据并且查询是否有符合条件的记录
//成功返回true, 否则返回false
}

[逻辑层],负责一些逻辑和流程上的处理,比如我们现在要判断管理员登陆口令是否正确, 在这里定义一个类:BLL_Admin,也写一个 Login 函数(当然,你叫什么都行,这里是为了清晰,实际中没必要跟数据层方法名保持一致):

//我们要使用数据层所以这里有个对象的定义:
DAL_Admin myAdmin = new DAL_Admin();

public bool Login(string strName, string strPassword)
{
return myAdmin.Login(strName, strPassword);
}

看见了吧,对数据的操作都让数据层去管理,我们这里的逻辑层只是为表示层提供调用的方法(函数).当然,这个例子简单了点,你可以做一些更复杂的逻辑处理后再返回给表示层.这里只是让你明白层之间的关系.

[表示层]呵呵,现在似乎没什么悬念了,我们的登陆页面部分.点击按钮的时候验证管理员密码,正确则跳转页面. 在没有用3层框架的时候,你是不是经常在这里写一堆代码,要链接数据库,还要判断是否是否返回了记录.

现在轻巧多了,我是表示层,我不管那么多,我告诉逻辑层参数,他给我结果就OK了,我只要结果,别的都是别人的事情.

代码示例:

BLL_Admin oAdmin = New BLL_Admin();

protected void bLogin_Click(object sender, ImageClickEventArgs e)
{
// 这里就不写那么多了,估计你也知道怎么写了
// 如果 oAdmin.Login(txtName.Text, txtPwd.Text)返回true
// 就登陆管理页面
}

就这么回事,难吗? 呵呵~~

大半夜给你写的~~ 不过想到我当初跟你一样迷惑,还是给你留言啦. 希望你能看懂.
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-02
举个例子就是说你向你父母要钱花 , 你就是表示层(相当于界面),你有你的需求你要买衣服等 ,你的父母就是业务逻辑层 ,他们会去判断该不该给你钱,你的需求符不符合他们的要求 ,如果符合他们会调用钱包(数据层),给你想要的钱(数据)或者是true,如果他们觉得不能给你了 ,就不会返回应有的数据或者是false,有些东西还需要具体情况具体分析。
需要Visual Studio 2005 和sqlserver2005/2000 或者Access等
第2个回答  2008-12-02
其实三层架构很简单的:

以一个验证登陆为例子
这里是界面层一般叫UIL
protected void Button1_Click(object sender, EventArgs e)
{
List<User> Users = BAL.GetUserInfo(txtUserName.Text,txtPassword.Text);

if(Users.Length > 0)
{
Response.Write("登陆成功");
}
else
{
Response.Write("登陆失败");
}
}

以下是逻辑层代码,业务逻辑层一般叫BLL
public static List<User> GetUserInfo(string user,string password)
{
string newPassword = GetMD5Hash(password); //这里对密码进行加密处理,数据库中存放的是经过MD5加密后的密,业务逻辑层一般都是处理复杂的逻辑.例如加密逻辑
List<User> Users = DAL.GetUserInfo(user,newPassword);

return Users;
}

以下是数据访问层代码,数据访问层一般叫DAL
public static List<User> GetUserInfo(string user,string password)
{
List<User> Users = new List<User>();
string sql = "select * from User where Password = '"+password+"' and User = '"+user+"'"; //写where子句的时候把Password放前面.因为Password经过加密,所以可以防止SQL注入攻击
SqlDataAdapter da = new SqlDataAdapter(sql,"这里是数据库连接字符串");
DataSet ds = new DataSet();
da.Fill(ds);

for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
User user = new User(ds.Tables[0].Rows[i]["ID"].ToString(),ds.Tables[0].Rows[i]["User"].ToString(),ds.Tables[0].Rows[i]["Password"].ToString());
Users.Add(user);
}

return Users;
}

还会有一个Model层.叫做模板层.是数据表结构的印射.Model层是共用层,其他三层都要用到.
比如数据库中有张表User,里面有3个字段ID,User,Password
那么在模板层中应该有一个类,数据库中User表的一行对应一个User对象,一张表对应User对象的集合.
public class User
{
string ID;
string User;
string Password;

//重载构造函数
User(string id,string user,string password)
{
this.ID=id;
this.User=user;
this.Password=password;
}
}
第3个回答  2008-12-06
visual studio 最强大的工具
三层
UI 显示也就是.aspx页面
BLL 业务也就是控制业务流程
DAL 数据层对于数据的操作(增,删,改,查)
Model 模型层

UI层 <---> BLL层 <---> DAL层
| | |
Model层 Model层 Model层

比如说 想插入一张表吧
UI层负责提取数据 然后传到 BLL层在BLL层中可以将其封装成为实体类
然后把实体类传入 DAL层进行对数据库的操作 然后将返回值传到BLL层
再返回给UI层做出相应的处理

这样就可以使代码重用性更高耦合性低
注意:
UI层 <---> BLL层 <---> DAL层 这个顺序不要错
---> 这意思是调用传参
<--- 这意思是返回值

数据库方面的话 当然是 sql server 2005
祝你早日学会

求一个简单的asp.net2.0三层结构例子
设计一个数据操作类叫做: DAL_Admin,这个类包括4个成员函数:Insert\\Update\\Delete\\Login 看名字知道这4个家伙会干什么,他们负责对数据库中的Admin表进行相应的操作.为了下面的例子我只写出Login函数的定义:public bool Login(string strName, string strPassword){ \/\/这里的代码省略,就是链接数据并且查询...

ASP.NET 2.0页面框架简要慨述
ASP NET Web窗体页面框架组件是一个可缩放的通用语言运行时编程模型 它可以用于动态地生成Web页面 ASP NET页面框架组件是ASP的合理进化(ASP NET提供的语法与已有的页面是兼容的) 它被特意地设计用于解决早期模型中的大量的关键的缺陷 特别是 它提供了建立和使用可供重复使用的(reusable)UI控件的能力 ...

怎样理解ASP.NET2.0+SQLSERVER2000 开发中的三层结构
三层架构 就是 数据层,业务层,和显示层 数据库:用来存储数据 业务层:通过显示层得到数据对数据库进行操作和得到结果 显示层:给业务层提供数据 和得到数据进行显示 这个只是一个大概 并不全面 数据层 可以分数据库 和 代码层 :代码层可以分为 连接层 和 数据持久化层 业务层 :可以分为 接口层(抽...

ASP.NET2.0中创建中间层的目的是什么?三层架构适用于什么情况
微软推荐的分层式结构一般分为三层,从下至上分别为:数据访问层、业务逻辑层(又或成为领域层)、表示层. 二、三层结构的优点 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑...

ASP.NET2.0动态网站开发教程(第2版)内容提要
ASENET2.0是微软公司推出的新一代企业级开发平台,其功能与易学性全面超越了ASP.NET1.1版本。利用ASENET2.0,开发者可以在短时间内构建出高效、可靠且具有高扩展性的网站。书内提供了多个典型应用示例,如设计网上招聘网页和以订单为中心的电子商务网站。这些示例经过简单修改即可应用于实际工作场景。

5.ASP.NET页面主要包括哪几个部分?
1、站点导航控件 在ASP.NET 1.x时期,微软发布了一组IE Web Control控件(非内置控件),其中包括一个实现树形结构的TreeView控件,它就是典型的站点导航控件。在ASP.NET 2.0中,不仅包含和扩展了原有的TreeView,而且还新增了另外两个控件。 站点导航控件主要用于实现站点页面导航功能。站点导航控件包括SiteMapPath、Menu...

asp.net 2.0四:ASP.NET2.0 相关的微软WEB开发技术
使用ASP.NET 2.0进行WEB开发,所需技术包括以下几个方面:IIS(Internet Information Service)作为服务器端请求提供程序,在B\/S架构的S端发挥关键作用。支持多种编程语言,包括C#, VB.NET,C++.NET及其他.NET框架兼容语言。甚至可以采用COBOL或PYTHON等。HTML、JavaScript、DIV+CSS作为基本开发工具,不可...

ASP.NET2.0中web服务器控件和HTML控件的含义和区别~
很不一样.web服务器控件并非只是运行在服务器端这么简单,它是.NET中封装好的组件,每个控件都是一个对象,属于某个基类,有自己的属性,事件和方法.由在.net framework下执行.而HTML只是普通的HTML标记,就算加上runat=server也没有服务端控件那么强大的方法,只是有简单的属性和事件而已.HTML控件有runat=...

ASP.NET 2.0中使用SQL Server 2000实现login控件
Server中吧 在login控件中的Authenticate事件中写代码就是了 一个简单的示例:protected void Login1_Authenticate(object sender, AuthenticateEventArgs e){ if (Login1.UserName == "1" && Login1.Password == "2")e.Authenticated = true;\/\/验证通过 else e.Authenticated = false;...

请问一个asp,net的问题?
属性结构归类的.我们要实现ASP.NET的应用程序的灵活性,很大程度上依赖了这些配置文件.举一个简单的例子:当我们在.ASPX文件中连接数据源时,需要先定义连接字符串,但是一套完整的应用程序包括很多数据源,也包括很多连接数据源的代码,因此你必须考虑把这些连接字符串统一的管理,统一的调用,就像定义了一个"全局变量",...

相似回答
大家正在搜