基于.NET的课程学习系统的设计与实现毕业论文
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
目 录
1 绪论 1
1.1 开发平台简介 1
1.2 学习系统概论 1
2技术背景 1
2.1绪论 1
2.2母版页 1
2.3数据源控制 2
2.4数据显示控件 4
2.5登陆控件 5
2.6数据驱动的站点导航 6
2.7验证控件 6
3系统架构 7
3.1 系统架构的选择 7
3.1.1 LearningSystem采用三层架构实现。 7
3.1.2三层架构的设计 7
3.2 三层架构的实现 8
3.2.1 建立表示层: 9
3.2.2 建立数据库访问层: 9
3.2.3 建立业务逻辑层: 9
3.2.4 添加引用: 9
4 系统设计 10
4.1 系统的功能模块 10
4.2 系统设计说明 10
4.2.1 学生个人信息管理 10
4.2.2 资源下载: 10
4.2.3 作业提交: 11
4.2.4 简易论坛: 11
4.2.5 网上测试: 12
4.3 系统数据库设计 13
5 系统实现 15
5.1 概述 15
5.2 用户表示层的实现 15
5.2.1 母版页的实现 15
5.2.2 学生个人信息管理 16
5.2.3 资源下载 18
5.2.4 作业提交 20
5.2.5 简易论坛 22
5.2.6 网上测试 23
5.2.7 登陆页面Login.aspx 25
5.2.8 Web.Config文件配置 25
5.3 数据访问层的实现 26
5.3.1 DAL概述 26
5.3.2 PrepareCommand函数 26
5.3.3 ExecuteNonQuery函数 26
5.3.4 ExecuteReader函数 27
5.4 业务逻辑层的实现 27
5.4.1概述 27
5.4.2 UserInfo类 28
5.4.3 ResourceDownload 类 29
5.4.4 HomeworkUpload类 31
5.4.5 BBS类 33
5.4.6 Test类 35
5.4.7 userControl类 37
6 结论 38
6.1 本文总结 38
6.2 系统改进和优化 38
致 谢 39
参考文献 40
课程学习系统技术背景
2.1简介
本系统使用VS.NET2005开发平台实现。该平台为Framework 2.0版本。该版本拥有1.x平台很多没有的功能。在系统开发之初,本人阅读了很多关于2.0版本的相关知识。下面,我将列举出在LearningSystem系统中使用到的新增控件和服务。
2.2母版页
2.0的一个新特性——我们称其为“母版页”。首先,在将会出现在其他页面(这里,我们相对于母版页的其他页面称作内容页)的公共部分存储在母版页中,然后在非公共部分则用ContentPlaceHolder控件以实现占位作用,内容页将会出现在ContentPlaceHolder空间标识的位置。然后,你可以在内容页——标准的ASPX文件中——通过添加下面的指令来引用母版页内容[1]。 内容来自think58 [资料来源:http://www.THINK58.com]
在内容页中,你可以将页面的非公共部分放在Content控件标签之间,这部分内容将显示在母版页placeholders控件的位置。Content控件的ContentPlaceHolderID属性将正确标识母版页中相应的ContentPlaceHolder控件。通过浏览器访问一个内容页,实际上出现的是母版页与内容页组合在一起的页面。
ASP.NET对象模式完全支持母版页。System.Web.UI.Page类的一个突出特点就是名为Master得新属性,该属性允许将任何公共元素都放在母版中,并让一个内容页通过编程方式引用该母版。内容页可以调用FindControl函数来访问再母版页中声明的控件,或者将母版页中的成员声明为成员,是内容页可以访问它们。母版页可以嵌套。此外,母版页还可以包括默认内容,而这部分内容可以在内容页中被重写[2]。
另外,应用程序可以通过以下方式在web.config中配置一个默认的母版页:
这里,个别内容页也可以根据自己需要,通过显示声明覆盖掉在web.config中配置的默认母版页,从而自由地选择所需母版页。理论上讲,我们并没有限制一个页面可以包括的母版页个数[3]。 copyright think58
2.3数据源控制
数据源控件可对数据资源(包括数据库和XML文件)启动声明性访问。SqlDataSource可以连接任何比如SQL数据库服务器和Oracle数据库服务器管理下的所有数据库。下面的例子中我们可以看到,通过使用SqlDataSource和DataGrid控件来显示从SQL数据库服务器中返回的数据。
SqlDataSource控件的SelectCommand属性用于定义对数据资源的访问动作,而ConnectionString属性则指定连接字符串,该字符串包括控件连接到数据库所需信息(你也可以将连接字符串集中存储在应用程序的web.config配置文件中的<connectionStrings>标签内)。DataGrids控件的DataSourceID属性用以将该控件连接到SqlDataSource。当页面被载入是,SqlDataSource控件将执行对数据库的查询并将结果提供给DataGrid。
当然,数据绑定实际上并不是只有刚才说的那么简单。想象一下其他情况,有时我们可能需要使用缓存来存储查询结果集又或者我们需要使用代参数的查询语句,而我们需要使用一些其他的控制流来填充参数。下列SqlDataSource2.aspx代码使用一个SqlDataSource控件从Northwind数据库的Customers表中返回所有城市的信息,将其填充在下拉列表(dropdown list)中。同时,当从该下拉列表中选择了一个城市,则会使用另一个SalDataSource控件将该城市下所有用户的信息填入一个DataGrid中[4]。 内容来自think58
注意,该SqlDataSourcw控件的SelectCommand属性带有一个参数◎Country并且包括了一个<asp:ControlParameter>标签,该标签表明SqlDataSource将从下拉列表(dropdown list)的SelectedValue属性中获取值,作为参数◎Country的值。此外还有一些属性,比如EnableCaching属性以及CacheDuration属性,可以允许你缓存查询返回的结果集[5]。
然而SqlDataSource有一个很明显的问题:它将直接访问数据库资源,这种数据访问方式就是我们通常所说的两层结构。如果你希望能过使用多层架构,将数据访问组件清晰地定义为中间层,你可能就需要使用另一个数据访问控件——ObjectDataSource。使用该控件,它可以通过声明将数据也要进行数据操作的组件绑定到一起。ObjectDataSource有两个及其重要的属性,其一是TypeName,该属性用于标识要进行数据操作的组件的名称(通常是类名);其二就是SelectMethod,该属性用于指示ObjectDataSource从数据操作类中调用正确的方法来访问数据资源。
这里有一段代码ObjectDataSource.aspx,虽然它看起来跟SqlDataSource2.aspx及其相似,但是实际上它们的实现方式是迥异的。这段代码使用的是ObjectDataSource控件与一个自定义的数据组建Customers(该组件位于App_Code目录下面)来访问数据库并将返回结果绑定到DataGrid。。使用ObjectDataSource,数据资源不一定必须是没个数据库,它可以是Web service,或者其他什么的,总之只要是可以让数据访问组建可以从头到尾逐条读入的就行。
think58
[来源:http://www.think58.com]
以上这些例子,仅仅只是展示了数据资源控制最基本最简单的使用方法而已。实际上,你可以使用存储过程;或者通过种种方法——比如查询字符串,用户输入,会话状态,以及从Cookies中——获取查询参数的值;你甚至可以指定使用DataSet或者使用DataReader读取数据库。因为数据资源控制也包括了对数据适配器的选择,你可以选择不同的适配器来搭配对应的数据绑定方式,以实习对数据库不同方式的操作。
课程学习系统架构
3.1 系统架构的选择
3.1.1 课程学习系统采用三层架构实现。
主要是考虑到三层架构的种种优点:
1.开发人员可以只关注整个结构中的其中某一层;
2.可以很容易的用新的实现来替换原有层次的实现;
3.可以降低层与层之间的依赖;
4.有利于标准化;
5.利于各层逻辑的复用[13]。
think58.com [资料来源:http://think58.com]
[资料来源:THINK58.com]
[资料来源:www.THINK58.com]
下一篇:电子书城系统的设计