基于ASP.NET的精品课程网站生成系统的设计与实现
2010-09-25黄燕飞
黄燕飞
(江苏联合职业技术学院无锡机电高等职业技术学校分院 信息工程系,江苏 无锡 214000)
0 引言
2003年教育部发布了《教育部关于启动高等学校教学质量与教学改革工程精品课程建设工作的通知》,全面启动“高等学校教学质量和教学改革工程”的国家级精品课建设工程。主要目标就是建设1500门精品课程,并将精品课程的教案上网,推进优质教育资源共享。
目前大部分精品课程开发存在一些问题。例如教师缺乏软件开发知识和经验,由他们开发难度大;开发人员对专业、学科不了解,往往开发要花大量的时间在需求分析中;系统移植性和扩展性差,每门课程均要制作网页,这样造成工作量大、效率低,制作完成的课程质量得不到保证。
在围绕本校申报国家级精品课程建设的过程中,为了减少各学科组精品课程建设的难度,本人研究了综合采用面向对象的方法、数据库技术、ASP.NET技术构建了精品课程网站生成系统,实现了一般会简单操作Word的教师也能快速制作出符合自己学科特点的精品课程的目标,提高资源共享的效率。在精品课程的建设工作中发挥了良好的作用,得到教师和学校的好评。本文对精品课程网站生成系统的系统需求分析、系统架构设计、系统总体设计以及系统的实现做了详细的论述,并通过一个应用实例的分析及其实现效果,验证精品课程网站生成系统的实用性。
1 系统需求分析
本系统能自动生成课程网站,其建设要求原则上与国家精品课程、省级精品课程网站建设要求相同。至少应该满足以下要求。
1)适用各种精品课程网站建设,能完成《国家精品课程评审指标体系(2007)》中规定的评审栏目创建、栏目内容添加和更新。
2)实现界面美化功能,满足个性化定制界面要求。通过提供网站界面模板,达到快速变换网站整体视觉效果、页面布局和网站结构的目的。
3)提供视频教学功能,系统可实现视频上传、删除和前台播放等功能。
4)提供教学资料管理功能,管理员和教师可根据课程建设需要,对课程素材进行上传和管理。
5)实现系统安全管理功能,课程网站对不同的人员设置不同的权限,保证系统的安全。
6)系统具有良好的扩展能力,能满足今后课程建设需求变化。
7)系统具有良好的性能,保证系统运行的高效率。
8)系统还应有一些交互功能,如在线测试,在线论坛、在线答疑等供学生和老师交流以及自我测试。
2 系统设计
2.1系统架构设计
通过需求分析得知,精品课程网站栏目应根据国家精品课程评审指标体系进行设置,各栏目的内容要根据每门课程建设的需要进行录入,并可根据需要进行更新。课程网站还要设置视频教学、师生互动和成绩考核等功能。为了体现精品课程网站的特色,网站应该具有个性化设置功能。整个网站运行不仅要速度快,而且要安全、稳定,具有良好的可管理性和可维护性。为了便于系统开发、测试和维护,将整个系统进行分层和分模块设计。整个系统分为三层结构体系,三个结构层分别是表示逻辑层、商务逻辑层和数据访问层。其中商务逻辑层的功能较多,又细分为面向用户界面和面向问题域两个子层。三层独立开发、测试和维护。系统的分层结构如图1所示。
图1基于B/S三层架构的精品课程系统的结构图
2.1.1表示逻辑层[1]
系统针对不同用户设置了不同的界面,这些用户界面与用户的类型和权限有关。系统管理员经认证后,登录到管理员界面,可以对精品课程网站进行管理,如课程栏目创建、栏目内容添加与更新、站点模板定制、视频上传与删除等;任课教师经认证登录后,可以对自己的教学资源进行管理,上传和删除教学资源;普通用户只能看到经管理员定制的课程网站界面。
2.1.2业务逻辑层[2]
在三层结构应用系统中,业务逻辑层为中间层,担负着“承上启下”作用,在系统中扮演着至关重要的角色。中间层应保证事务的完整性,对大规模并发请求作出及时响应,对异构系统互联作出透明支持,对应用系统中的数据提供安全保护。它是应用系统成败的决定性因素。因此,在三层结构企业应用开发系统中,业务逻辑层是保证整个应用系统质量和可靠性的关键。本系统业务逻辑层是系统的核心层,系统大部分功能均通过该层实现。
2.1.3数据访问层
数据访问层封装了所有的数据库操作,能够完成系统与数据库交互功能,如数据的查询、更新、插入和删除等,其相关功能被封装成了不同的模块。
2.2系统模块设计
本系统模块划分在分层基础上进行,划分的原则是:划分出的各模块低耦合、高内聚。根据需求分析和系统分层情况,将系统功能模块划分为如图2所示。
图2 系统总体框图
1)业务逻辑层是系统的后台管理部分,也是系统最关键的部分。管理员登录后可以进行用户管理、课程管理、互动管理、和扩展管理等。其中用户管理可以添加删除用户,修改用户注册信息,设置不同用户的权限。课程管理包括跟该课程有关的课程简介、教案、多媒体课件、实验教学、教学录像等和精品课程内容相关的子模块的管理,管理员可根据需要添加或删除这些模块,也可以象在word中一样轻松地更新每一个子模块的内容,方便地设置添加内容的格式。互动管理用于教师进行题库管理、论坛管理、作业管理、在线答疑管理。扩展管理中可对站点的界面风格设置,可以自由选择,轻松给精品课程“变脸”,也可以对站点首页的新闻公告进行更新。
2)表示逻辑层即系统的前台。学生可以从浏览器端查看跟本课程相关的申报材料,课程简介,教学队伍,教学大纲,教案,多媒体课件,实验,教学成果,科学研究等内容,可供学生在线学习。还包括在线答疑、在线论坛、在线作业批改、在线考试等具有交互功能的组件。其中在线作业批改模块,学生可上传作业,和下载已经批改好的作业。教师可通过管理模块查看编辑作业列表,给作业评分,并提交已批改好的作业。在线考试由学生登录完成在线考试,考试题目在考试进行时从试题库中随机抽取。
(3)数据访问层属于表示和逻辑层的中间模块,此模块考虑代码的复用性,将常用的数据库的基本操作和其它常用功能分别封装,如连接数据库,数据库操作,断开数据库连接,字符串转换,加解密保护等。
3 系统实现
在本系统后台管理中,将课程管理中内容像Windows资源管理器那样将其驱动器和其下的文件及文件夹按照层次结构来安排,实现方法为生成一棵精品课程“目录分类”树[3]。
常用的方法是使用Visual Studio .NET中的TreeView Web 控件,它为我们提供了一种按层次结构显示信息的方式。TreeView控件包含了称做“节点”(node)的一些条目的一个列表。每一个节点都可以有自己的节点集合,从而提供了一种更深层的数据定义。每个节点都可以被折叠起来,从而允许访问者在一个TreeView控件中查找,只看他所感兴趣的那一级的数据。使用Visual Studio .NET静态指定TreeView 结构就像填写几份表格一样简单,但通常需要将内容动态地添加到 TreeView 中。当我们要将数据库中精品课程内容的数据用树状结构表现出来时,并不知道这个树的层次和节点数,就需要在TreeView控件中动态地添加树节点。具体原理:用InitTree0() 方法加载根结点,等根结点加载完后,开始调用加载子结点的方法InitTree(TreeNode Nd, String Parent_id),并用递归方式最终实现动态树的生成。代码如下:
private void InitTree0()
{
TreeView2.Nodes.Clear();
TreeNode T_root = new TreeNode();
T_root.Text = "课程管理系统";
T_root.ImageUrl = "~/Admin/images/ico_jingpin.gif";
T_root.SelectAction = TreeNodeSelectAction.None;
TreeView2.Nodes.Add(T_root);
DataRow[] rows = dt.Select("ParentID=0");
for (int i = 0; i < rows.Length; i++)
{
TreeNode Fst = new TreeNode();
DataRow dr = rows[i];
Fst.Text = dr["Name"].ToString();
Fst.ImageUrl = "~/Admin/images/folder.gif";
Fst.NavigateUrl = "~/Admin/Word.aspx?action=update&id=" + dr["ID"].ToString();
Fst.Target = "main";
T_root.ChildNodes.Add(Fst);
InitTree(Fst, dr["ID"].ToString());
}
}
以上代码将c_word表(用于录入精品课程所有内容如课程申报、课程概况等信息)中内容这一列加入精品课程目录书中。相同原理可生成精品课程目录树子节点,这里省略代码。
在本例中使用ASP.NET中的TreeView控件在生成树状结构方面具有强大功能,与其他编写自定义用户控件和利用XML的方法相比较,它提供的用可扩展的树状结构来显示层次数据方法更加方便、实用和有效,而且出错率非常低,达到了设计的目的。
4 应用实例的实现及其效果分析
以系统后台课程管理中更新栏目内容为例,检验在精品课程网站生成系统中更新网站内容的效果。对于栏目内容管理,系统设计了两个入口,一个是从菜单管理页进入;另一个是专门的栏目内容管理页进入,单击以课程概况中的课程描述为例点击“修改”按钮后,转入内容编辑页。
从前面的系统分析中可知,精品课程栏目内容不但要有文字信息,还要包含其它内容,如表格、超级链接和图像等,内容还要进行格式化设置。这些功能的实现过程非常繁琐,所以多数系统采用第三方组件来实现。本系统栏目内容管理,是通过服务器端组件fckeditor实现的[4]。fckeditor控件的应用实现了如同word文档有着强大的编辑功能,提供更加自主的空间,体现很好的灵活性,自主性。
该控件为外部控件,使用前必须注册,语句为:<%@ Register assembly="FredCK.FCKeditorV2" namespace="FredCK.FCKeditorV2" tagprefix="FCKeditorV2" %>
在引用fckeditor控件的页面中实现了后台插入、更新、删除数据于一体的功能,实现了只会操作word的老师也能快速制作精品课程的功能。重点在于设置一个语句来判断什么时候实现什么样的功能,为解决这一问题我们设置这样一个语句:
if (Request.QueryString["id"] == null) return;
string strUpdate = string.Format("Update C_Word set Content = '{0}' where id={1}",FCKeditor1.Value , Request.QueryString["id"]); ;
if (DBFun.ExecuteUpdate(strUpdate))
Response.Redirect("SuccessUpdate.aspx");
此语句的功能在于判断在c_word表(用于录入精品课程所有内容如课程申报、课程概况等信息)中的ID是否为空,非空的话则根据fckeditor控件编辑器空白区域中的值替代原数据库中的内容,实现了精品课程网站的内容更新。
在编辑栏中输入内容,进行排版后再点击确定保存页面。然后在前台浏览网页,可以看到课程概况中的课程描述已经更新了,如图3所示。
图3 前台网页浏览
5 结束语
随着各高校申报国家精品课程的流行趋势,精品课程网站生成系统的使用范围将越来越广,因此对其功能性、实用性等方面的要求也越来越高。如何使精品课程网站生成系统的功能更全面,操作更简便对于使用对象和开发者都有着重要的意义。
本文对精品课程系统的需求和设计进行了分析和研究,并对精品课程系统中课程管理目录树的生成等关键技术做了说明,希望为推动精品课程的建设尽一份力。
[参考文献]
[1] 史金昌. 浅析基于ASP.NET的Web网络应用程序的安全开发[J]. 科技创新导报,2008,23:37.
[2] 徐国芹. 基于ASP.NET的应用程序性能探讨[J]. 中国科技信息, 2005,22:35.
[3] 青宇航. ASP.NET连接数据库方案设计[J]. 科技资讯, 2006(7):61.
[4] 郑耀东,蔡赛.ASP.NET网络数库开发实例精解 [M].北京:清华大学出版社,2006:50-54.