A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 满面春风 中级黑马   /  2014-5-12 07:32  /  1144 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

前言:
与ASP相比ASP.NET在Web应用开发上无疑更容易,更有效率。Web开发大部分还是围绕着数据操作,建立数据库存储数据,编写代码访问和修改数据,设计界面采集和呈现数据。走过Asp.net学习入门阶段后,真正开始着手开发一个Web项目时,才发现错综复杂的数据与关联根本就不是SqlDataSource和AccessDataSource数据源控件能简单解决的,而恰恰是被忽视了的一个ObjectDataSource数据源控件才是真正踏入开发门槛的关键,由此也对三层架构模式有了初步体验。
一.ASP.NET三层架构介绍
设计模式中的分层架构(可以参考一下J2EE中MVC模式)实现了各司其职,互不干涉,所以如果一旦哪一层的需求发生了变化,就只需要更改相应的层中的代码而不会影响到其它层中的代码。这样就能更好的实现开发中的分工,有利于组件的重用。所以这些年关于模式的研究有很多成果,应用也很广泛。一个好的模式在程序开发和后期维护中作用重大。
ASP.NET三层架构自底向上分为:数据访问层(DAL),业务逻辑层(BLL)和表示层(PL)。


数据访问层(DAL):使用了一个强类型的DataSet作为数据访问层,只是单纯的对数据进行增,删,改,查询和判断存在等等较通用的数据访问方法(由SQL语句来提供),不应该有“事务”存在。
业务逻辑层(BLL):业务逻辑层是在数据访问层和表示层之间进行数据交换的桥梁,按业务需求调用数据访问层中的方法组合,集合了各种业务规则到一个BLL中,例如通过条件进行判断的数据操作或“事务”处理。BLL都是以类库(Class Library)的形式来实现的。
表示层(PL):表示层是为客户提供用于交互的应用服务图形界面,帮助用户理解和高效地定位应用服务,呈现业务逻辑层中传递的数据,用ASP.NET页面来实现。
二.三层架构应用实现
随着ASP.NET 的不断升级,可以很方便的使用ASP.NET 来构建B/S 三层架构的应用程序,下面以“教师业务信息管理系统”项目中的部分例子来演示如何使用ASP.NET 2.0 和SQL Server 2005数据库来构建一个三层架构的应用程序。
1.创建数据库
打开SQL Server 2005,新建一个数据库“TeacherDb”,建立如下所示结构的两个表“PersonInfo”和“JobInfo”。两表以PersonIDNumber作为关联字段,存储18位身份证号码。
表名:        PersonInfo                基本信息表
字段名        类型        说明        备注
ID        int        主键,自增       
UserID        uniqueidentifier        登录帐户ID       
TrueName        nvarchar(20)        姓名       
PersonIDNumber        nvarchar(18)        身份证       
Sex        nvarchar(1)        性别        “男”或“女”
BirthDate        datetime        出生日期       
Nation        nvarchar(10)        民族       
NativePlace        nvarchar(50)        籍贯       
Polity        nvarchar(10)        政治面貌       
JoinPolityTime        datetime        入党时间       
PersonImageUrl        nvarchar(250)        相片地址        允许NULL
Telephone        nvarchar(50)        联系电话       
MobiePhone        nvarchar(50)        手机号码       
Email        nvarchar(50)        Email       
表名:        JobInfo                职业信息表
字段名        类型        说明        备注
ID        int        主键,自增       
PersonIDNumber        nvarchar(18)        身份证号码       
Post1        nvarchar(20)        职务       
Post2        nvarchar(20)        职务2        第二职务
JoinTime        datetime        参加工作时间       
CountryWorkedTime        int        农村年限       
MasteSubject        nvarchar(20)        学科       
SecondSubject        nvarchar(20)        兼职学科       
SchoolPhase        nvarchar(10)        学段       
MotherClassTime        int        班主任年限       
SchoolID        int        所在学校代码       
InPosition        real        是否在职       

1 个回复

正序浏览
谢谢分享。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马