ASP.NET三层架构

上传人:大米 文档编号:508909555 上传时间:2022-11-12 格式:DOCX 页数:17 大小:574.08KB
返回 下载 相关 举报
ASP.NET三层架构_第1页
第1页 / 共17页
ASP.NET三层架构_第2页
第2页 / 共17页
ASP.NET三层架构_第3页
第3页 / 共17页
ASP.NET三层架构_第4页
第4页 / 共17页
ASP.NET三层架构_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《ASP.NET三层架构》由会员分享,可在线阅读,更多相关《ASP.NET三层架构(17页珍藏版)》请在金锄头文库上搜索。

1、ASP.NET三层架构应用总结(一)2009-6-216:22:00|By:backbird前言:与ASP相比ASP.NET在Web应用开发上无疑更容易,更有效率。Web开发大部分还是围绕着数据操作,建立数据库存储数据,编写代码访问和修改数据,设计界面采集和呈现数据。走过A学习入门阶段后,真正开始着手开发一个Web项目时,才发现错综复杂的数据与关联根本就不是SqlDataSource和AccessDataSource数据源控件能简单解决的,而恰恰是被忽视了的一个ObjectDataSource数据源控件才是真正踏入开发门槛的关键,由此也对三层架构模式有了初步体验。一.ASP.NET三层架构介绍

2、设计模式中的分层架构(可以参考一下J2EE中MVC模式)实现了各司其职,互不干涉,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。这样就能更好的实现开发中的分工,有利于组件的重用。所以这些年关于模式的研究有很多成果,应用也很广泛。一个好的模式在程序开发和后期维护中作用重大。ASP.NET三层架构自底向上分为:数据访问层(DAL),业务逻辑层(BLL)和表示层(PL)。后台桃稱BiiTinf1lavir唯业弄連|I|I数据访问层(DAL):使用了一个强类型的DataSet作为数据访问层,只是单纯的对数据进行增,删,改,查询和判断存在等等较通用的数据访问

3、方法(由SQL语句来提供),不应该有“事务”存在。业务逻辑层(BLL):业务逻辑层是在数据访问层和表示层之间进行数据交换的桥梁,按业务需求调用数据访问层中的方法组合,集合了各种业务规则到一个BLL中,例如通过条件进行判断的数据操作或“事务”处理。BLL都是以类库(ClassLibrary)的形式来实现的。表示层(PL):表示层是为客户提供用于交互的应用服务图形界面,帮助用户理解和高效地定位应用服务,呈现业务逻辑层中传递的数据,用ASP.NET页面来实现。二.三层架构应用实现随着ASP.NET的不断升级,可以很方便的使用ASP.NET来构建B/S三层架构的应用程序,下面以“教师业务信息管理系统”

4、项目中的部分例子来演示如何使用ASP.NET2.0和SQLServer2005数据库来构建一个三层架构的应用程序。1创建数据库打开SQLServer2005,新建一个数据库“TeacherDb”,建立如下所示结构的两个表“Personinfo”和“Jobinfo”。两表以PersonlDNumber作为关联字段,存储18位身份证号码。表名:Personinfo基本信息表字段名类型说明备注iDint主键,自增UseriDuniqueidentifier登录帐户IDTrueNamenvarchar(20)姓名PersoniDNumbernvarchar(18)身份证Sexnvarchar(1)性别

5、“男”或“女”BirthDatedatetime出生日期Nationnvarchar(10)民族NativePlacenvarchar(50)籍贯Politynvarchar(10)政治面貌JoinPolityTimedatetime入党时间PersonimageUrlnvarchar(250)相片地址允许NULLTelephonenvarchar(50)联系电话MobiePhonenvarchar(50)手机号码Emailnvarchar(50)Email表名:Jobinfo职业信息表字段名类型说明备注iDint主键,自增PersoniDNumbernvarchar(18)身份证号码Post

6、1nvarchar(20)职务Post2nvarchar(20)职务2第二职务JoinTimedatetime参加工作时间CountryWorkedTimeint农村年限MasteSubjectnvarchar(20)学科SecondSubjectnvarchar(20)兼职学科SchoolPhasenvarchar(10)学段MotherClassTimeint班主任年限SchooliDint所在学校代码InPositionreal是否在职2创建数据访问层在开始创建数据访问层(DAL)之前,首先需要创建一个网站,配置好数据库链接。第一步:创建一个Web项目,配置数据库连接打开VisualSt

7、udio2005(以下简称VS2005)集成开发环境,首先创建一个C#语言的ASP.NET网站,并将其命名为WebSite,设置位置(Location)列表的选项为文件系统(FileSystem),然后选这一个放置这个网站的文件夹,然后选择编程语言为C#。VisualStudio会为你生成一个新的网站,同时生成一个名为Default.aspx的网页,和一个App_Data文件夹。第二步:创建数据访问层,配置数据库连接接下来创建数据访问层,添加一个强类型的DataSet。在解决方案管理器里的项目节点上按右鼠标,选择“添加新项”,在模板列单里选择“数据集”,将其命名为DataSetl.xsd。接下

8、来会出现“TableAdpater”配置向导的窗口,选择数据库服务器,设置好各项参数,并按照提示逐步完成。需要注意:1.指定连接的数据库字符串,并选择将连接字符串保存到web.config文件中去。2.命令类型选择“使用SQL语句”,通过“高级选项”选择“生成Insert、Update和Delete语句”,通过“查询生成器”生成要装载数据的“Select语句。并为方法命名。SELECTID,UserID,TrueName,PersonlDNumber,Sex,BirthDate,Nation,NativePlace,Polity,JoinPolityTime,PersonImageUrl,Te

9、lephone,MobiePhone,EmailFROMEM_P_PersonInfo针对项目需求对数据库中各表查询操作分别建立各种方法,完成后的可能如下图。IEUserIDT1UhN:=lJT|PFersonlDHuiTi匕erSexBirtMateNationHitivfiPl-a.cfiPality丁。inFolityTimeFereorilmageUrlTelephone細SQL型FillByNan已GetFersonsBylT:=jne.亍五函岀巩G毗FerWonB而厂尬二FillBySID,GetPer=on=By5IH(.FillFersonsByN:=meAiliISIDGt.

10、圉-一跟底层数据源相关的所有编码,比如建立到数据库的连接,发出SELECT,INSERT,UPDATE和DELETE命令等的编码,都应该放置在DAL中。表现层不应该包含对这些数据访问编码的任何引用,而应该调用DAL中的编码处理所有的数据访问请求。数据访问层包含访问底层数据库数据的方法。至此,清晰构建出数据访问层,之后可在“业务逻辑层”和“表示层”通过调用自动生成的TableAdpater及相关类来操作数据。由于“数据集”是强类型,对于数据库中的NULL数据需要使用方法来判断,这些内容在后续内容中再详细描述。3创建业务逻辑层数据访问层(DAL)将数据访问的细节从表示层中分离出来了,可它却不能处理

11、任何的业务规则。比如判断数据的有效性。这些工作将由业务逻辑层(简称BLL)来承担,在以下应用程序中,将BLL实现为App_Code文件夹中的一系列的类。每一个BLL类都对应DAL中的一个TableAdapter,它们都从各自的TableAdapter中得到读取、插入、修改以及删除等方法以应用合适的业务规则。第一步:创建BLL类在App_Code文件夹中创建2个类文件。在解决方案浏览器(SolutionExplorer)中右键点击App_Code文件夹,并选择新建项目(NewItem),然后在弹出的对话框中选择“类”模板(Classtemplate)就可以创建新的类文件了。将这2个文件分别命名为

12、UserBLL以及JobBLL。第二步:通过BLL类访问类型化数据集为UserBLL和JobBLL类分别添加如下方法:(1) UserBLL.css updateuser(stringUserName,StringPersonlDNumber,intSchoolID,stringPassword,stringSex,stringTrueName,boolInPosition) updateUser(StringPersonIDNumber,stringTrueName,stringBirthDate,stringNation,stringNativePlace,stringPolity,str

13、ingJoinPolityTime,stringTelephone,stringMobiePhone,stringEmail) getPersons(intSchoolID,stringTrueName) getPersonByPiD(stringPersonIDNumber) deleteUser(stringUserName,StringPersonIDNumber,int?SchoolID) addUser(stringUserName,StringPersonIDNumber,intSchoolID,stringPassword,stringSex,stringTrueName,boo

14、lInPosition)(2) JobBLL.css getPersonJob(stringPersonIDNumber) updateUser(StringPersonIDNumber,stringPost1,stringPost2,stringJoinTime,int?CountryWorkedTime,stringMasteSubject,stringSecondSubject,stringSchoolPhase,int?MotherClassTime)以下为JobBLL.css的代码(UserBLL.css的代码太长,不列出)usingSystem;usingSystem.Data;u

15、singSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingTeacherTableAdapters;/JobBLL的摘要说明/System.ComponentModel.DataObjectpublicclassJobBLLprivateJobInfoTableAdapter_JobAdapter

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号