免费论文查重: 大雅 万方 维普 turnitin paperpass

简析模块以登录模块为列介绍基于ASP.net三层结构实现策略

最后更新时间:2024-02-16 作者:用户投稿原创标记本站原创 点赞:6283 浏览:15947
论文导读:务逻辑的实现。该组件对应图2中的Data-layer层。(3)选定login,点击右键,选择添加-〉新建项目-〉类型选为类库,名字logic。由于该组件通过Sqldb组件实现数据库存取操作,因此点击该组件-〉添加引用-〉项目-〉Sqldb,然后在该组件的类中写入如下代码:usingSystem;usingSystem.Collections.Generic;usingSyste
摘 要:本文论述了三层结构基本原理及其发展历程、Asp.Net的特性以及Asp.Net系统组成结构,给出了.net平台上基于组件方式的三层结构的实现方法,并通过一个在线考试系统登录模块的实现,讲述了该方法在实际的软件开发中的实现过程。
关键词:B/SASP.Net组件C#

一、传统两层结构

1.1三层结构介绍

所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构。三层是指逻辑上的三层,即使这三个层放置到一台机器上。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放在中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。

1.2用ASP.NET部署三层架构

基于ASP.NET技术的系统结构模型
ASP.NET结构天然就是一个三层系统:UI层、业务逻辑层和数据层。ASP.NET系统结构如图1所示。
图1 Asp.net系统结构图
其中UI层负责与用户交互,接收用户的输入并将服务器端传来的数据呈现给客户。业务逻辑层负责接收浏览器传来的请求并将请求传给数据层,同时将请求处理结果发给浏览器。它由Web表单、XMlWeb服务和组件服务组成。其中Web表单是ASP.NET应用程序的核心所在,是向客户呈现数据和信息的基础,也是响应和处理客户与显示的Web表单交
互生成的信息和数据的基础。在本文给出的方法中,我们可以使用任何页面编辑工具如dreamwer、frontpage等编辑Web表单。本层不负责任何业务逻辑的处理,只是负责通过页面控件向Business-layer层传递参数,然后根据Business-layer层的处理结果所传回来的参数,改变页面的各种显示方式,呈现给用户。UI层的控制逻辑在.NET中是通过“code-behind”方式以.aspx.cs文件存放的。

三、实现方法

下面以一个登录模块为例子,采用C#程序设计语言,分别说明各层的实现。
(l)在ms—vs2005中新建网站,网站名称为login,系统会出现名为login的解决方案。
(2)选定login,点击右键,选择添加-〉新建项目-〉类型选为类库,名字dbSql。这样就新建立了一个组件dbSql,它负责最底层Sqlserver数据库的存取。在该组件的类中写入如下代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace Sqldb
{
public class Sqldb
{
public SqlDatareader reader(stringxx)
{
SqlConnection conn=new SqlConnection(“server=rj2;data-base=lwexam;uid=sa;pwd=jlthfjg”);
conn.Open();
SqlCommand comm=new SqlCommand(“select userid from userinfo where userid=’”+xx+“’”,conn);
SqlDatareader read=comm.Executereader();
Return read;
}
}
}
该代码的功能是:自定义一个方法reader,接受上一层传过来的参数xx,然后在SOlserver数据库中的表userinfo中查询名字为变量xx中的信息,并返回一个Datareader,数据集合。从代码中可以看出该组件主要功能是为方便数据存储,封装了所有关于数据库存储操作的底层信息,方便了上层业务逻辑的实现。该组件对应图2中的Data-layer层。
(3)选定login,点击右键,选择添加-〉新建项目-〉类型选为类库,名字logic。由于该组件通过Sqldb组件实现数据库存取操作,因此点击该组件-〉添加引用-〉项目-〉Sqldb,然后在该组件的类中写入如下代码:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace Sqllogic
{
public class Sqllogic
{
publicSqllogic()
{
}
private string fanhui;
public string xianshi(string yy)
{
Sqldb.Sqldbmm=newSqldb.Sqldb();
SqlDatareader nn;
nn=mm.reader(yy);
if(nn.read())
{
fanhui=nn[“userid”].ToString();
}
else
{
return “该用户不存在,请重新登录”;
}
}
}
}
从上述代码可以看出,组件logic负责登录逻辑的处理,比如判断用户是否合法以及合法性判断后相应的处理逻辑。该组件对应图2中的Bussiness-layer,它通过向低层组件dbSql发送各种数据库存储要求,实现业务逻辑的所要求的具体的数据库存取操作。
理论上Sqldb和logic两个组件在任何机器上单独编译成.dll文件即可直接使用,充分实现了代码分离。
表示层的实现
新创建网站时系统会有一个默认的页面文件default.aspx。在该页面文件中,通过放置一些textbox文本框,button按纽,lab论文导读:ic.Sqllogic();label1.Text=xx.xianshi(this.TextBox1.Text);}从上述代码可以看出,表示层只是调用组件logic提供的方法xianshi(stringxx),通过页面控件传递参数。具体的逻辑处理完全由逻辑层的组件负责。理论上,表示层可以通过各种页面编辑工具制作,逻辑层可以在任何机器上存源于:毕业论文www.7ctime.com在
le控件实现登录表单。在后台default.aspx.cs中写入如下代码:
protected void Button1_Click(object sender,EventArgs e)
{
Sqllogic.Sqllogic xx=new Sqllogic.Sqllogic();
label

1.Text=xx.xianshi(this.TextBoxText);

}
从上述代码可以看出,表示层只是调用组件logic提供的方法xianshi(stringxx),通过页面控件传递参数。具体的逻辑处理完全由逻辑层的组件负责。理论上,表示层可以通过各种页面编辑工具制作,逻辑层可以在任何机器上存源于:毕业论文www.7ctime.com
在,二者互不干扰,表示层的修改不影响逻辑层,反之亦然。这就充分方便了代码的复用以及应用程序的扩展。
参考文献
石志国.Asp.Net程序设计实用教程.北京:电子工业出版社,2006
启明工作室.Asp.Net网络应用系统开发与实例.2005