论文部分内容阅读
【摘 要】随着WEB2.0的广泛应用以及AJAX技术优势的突出体现,基于AJAX技术的网络系统得到了迅速的发展。本文简单介绍了AJAX的基本知识,以及在高校中比较热门的网络答疑系统的结构和各个模块的功能。
【关键词】网络系统 AJAX ASP.NET
【中图分类号】TN711 【文献标识码】A 【文章编号】1009-9646(2008)06-0021-02
如今,为了适应现代化的人才培养方案,各种各样的教育方式层出不穷,而网络教育则是最耀眼的一面,本文讲解了对于一般高校普遍适用的网络答疑系统的基本结构和功能,具有很好的普遍性和扩展性,读者可根据自己的需要很容易地创造出含自身特点的系统。
1 AJAX技术简介
当前,随着大量的业界巨头 在Ajax应用上取得的成功,使得古老的B/S方式Web开发焕发了新的活力,迎来了第二个春天,如Google的Google Maps、GMail等,显然,AJAX已经成为了Web应用的主流开发技术。
具体的说,AJAX技术并没有用到太多的新技术,它只是对XHTML, CSS, DOM, Javascript, XMLHttpRequest进行了整合:
(1)使用CSS和XHTML来表示。
(2)使用DOM模型来交互和动态显示。
(3)使用XMLHttpRequest来和服务器进行异步通信。
(4)使用javascript来绑定和调用。
但就是这样的巧妙的整合,完全的改变了我们以前的工作方式,使得我们可以不用为了等待服务器发回的消息而焦急,也使得我们体验到了真正的人机交互的感觉。
2 网络答疑系统结构
本系统采用了三层体系结构(见图1):数据层,业务逻辑层,表示层。因此Web结构有着更好的安全性,可扩展性,可变性。
2.1 数据层
其功能主要是负责对数据库的基本操作。简单的说法就是实现对数据表的Select,Ins-ert,Update,Delete的操作。它包括:数据库实体(MODEL),数据访问层(DAL),数据访问引擎(DBHELPER),数据工厂(DALFA-CTORY)等。
数据库实体类是利用面向对象思想把关系数据库中表的各个字段映射成实体类中的各个属性,这样做更能体现出面向对象编程的灵魂——处处皆对象。
2.2 业务逻辑层
业务逻辑层是系统体系架构的核心,它处于数据访问层与表示层中间,在数据交换中起到了承上启下的作用。由于层层之间是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据层而言,它是调用者;对于表示层而言,它却是被调用者。
2.3 表示层
表示层是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。
该层用来实现客户浏览,显示用户界面,是用户能看到系统的唯一部分。一方面,该层以适当的形式显示由业务层传送的数据;另一方面该层负责获得用户录入的数据,同时完成对录入数据的验证,并将录入的数据传送给业务层。
3 网络答疑系统的功能
通过对网上答疑系统的功能需求分析,把该系统分为四个大的部分(见图2)。
3.1系统管理模块
此模块只能管理员进入,可分为两部分,一是成员管理,管理员可以对学生老师管理员进行添加删除修改,也可进行批量导入,二是科目管理,可以对系统的课程科目和章节进行批量导入和维护。为了给用户带来更好的体验,我们在此模块运用了基于prototype的AJAX技术,部分代码:
<script type="text/javascript" language="javascript">
function getComments(pageIndex)
{
new Ajax.Updater(
"users",
"userlisthandler.ashx?page=" + pageIndex+ "&t=" + new Date(),
{ method: "get" });
return false; // IE only
}
</script>
……
public class userlisthandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
ViewManager();
userlist control = viewManager.LoadViewControl("~/userlist.ascx");
int result = 0;
Int32.TryParse(context.Request.QueryString["page"], out result);
result = result > 0 ? result : 1;
control.PageIndex = result;
control.PageSize = 10;
context.Response.Write(viewManager.RenderView(control));
}
}
当用户进行人机操作的过程中,可以瞬间体验到分页时无刷新的带来的快乐感,也可以在不知不觉的情况下完成对用户的编辑。
3.2 网络答疑模块
每个人进入都有自己的个人空间,如果是学生进入可以进行提问与答疑,如果是老师进入除了上述功能外,还可以对学生的问题及回答进行打分,同时,老师回答完一个问题,表明此问题已经结贴,显示为已回答完的问题。
3.3 信息搜索模块
学生和老师可以充分利用智能搜索功能,对问题进行有针对性的搜索,搜索完毕还可以使搜索到的信息生成报表。
3.4 数据统计模块
里面包含了学生信息报表,班级统计报表,章节统计报表等。并配备三维立体图表对数据进行更加形象的显示(见图3)。学生和老师可以很方便的把图像和数据按格式的进行导出。
4 结语
通过以上分析,我们了解了此系统的基本结构和功能,我们可以看到,利用B/S结构设计实现的网络答疑系统网站,能够较好的实现师生间的交流,优化学校的教育质量。如今此系统已得到了很多学校的认可与应用,希望在将来能够在高校中普及。
参考文献
[1] [英]克拉恩,帕斯卡雷洛,杰姆斯著,ajaxcn.org译,Ajax实战.人民邮电出版社,2006,4.
[2] [美]哥特兰,[美]高伯瑞斯,[美]艾米亚 著,徐锋,胡冰 译,Ajax修炼之道:Web2.0入门电子工业出版社,2006,4.
[3] 施伟伟,张蓓著.征服Ajax:Dojo、Pro-totype、script.aculo.us框架解析与实例,人民邮电出版社,2007,3.
[4] [美]麦赫马夫著,杨仁和译,Ajax设计模式,电子工业出版社,2007,5.
[5] [美]雅可布斯 著,许劲松等译, XML 基础教程:入门、DOM、Ajax与Flash.人民邮电出版社,2007,7.
[6] [美]贝尼纳索,[美]霍特曼著,康博译,ASP.NET Web站点高级编程—提出问题-设计方案-解方案,清华大学出版社,2002,9.
【关键词】网络系统 AJAX ASP.NET
【中图分类号】TN711 【文献标识码】A 【文章编号】1009-9646(2008)06-0021-02
如今,为了适应现代化的人才培养方案,各种各样的教育方式层出不穷,而网络教育则是最耀眼的一面,本文讲解了对于一般高校普遍适用的网络答疑系统的基本结构和功能,具有很好的普遍性和扩展性,读者可根据自己的需要很容易地创造出含自身特点的系统。
1 AJAX技术简介
当前,随着大量的业界巨头 在Ajax应用上取得的成功,使得古老的B/S方式Web开发焕发了新的活力,迎来了第二个春天,如Google的Google Maps、GMail等,显然,AJAX已经成为了Web应用的主流开发技术。
具体的说,AJAX技术并没有用到太多的新技术,它只是对XHTML, CSS, DOM, Javascript, XMLHttpRequest进行了整合:
(1)使用CSS和XHTML来表示。
(2)使用DOM模型来交互和动态显示。
(3)使用XMLHttpRequest来和服务器进行异步通信。
(4)使用javascript来绑定和调用。
但就是这样的巧妙的整合,完全的改变了我们以前的工作方式,使得我们可以不用为了等待服务器发回的消息而焦急,也使得我们体验到了真正的人机交互的感觉。
2 网络答疑系统结构
本系统采用了三层体系结构(见图1):数据层,业务逻辑层,表示层。因此Web结构有着更好的安全性,可扩展性,可变性。
2.1 数据层
其功能主要是负责对数据库的基本操作。简单的说法就是实现对数据表的Select,Ins-ert,Update,Delete的操作。它包括:数据库实体(MODEL),数据访问层(DAL),数据访问引擎(DBHELPER),数据工厂(DALFA-CTORY)等。
数据库实体类是利用面向对象思想把关系数据库中表的各个字段映射成实体类中的各个属性,这样做更能体现出面向对象编程的灵魂——处处皆对象。
2.2 业务逻辑层
业务逻辑层是系统体系架构的核心,它处于数据访问层与表示层中间,在数据交换中起到了承上启下的作用。由于层层之间是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据层而言,它是调用者;对于表示层而言,它却是被调用者。
2.3 表示层
表示层是系统的UI部分,负责使用者与整个系统的交互。在这一层中,理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。
该层用来实现客户浏览,显示用户界面,是用户能看到系统的唯一部分。一方面,该层以适当的形式显示由业务层传送的数据;另一方面该层负责获得用户录入的数据,同时完成对录入数据的验证,并将录入的数据传送给业务层。
3 网络答疑系统的功能
通过对网上答疑系统的功能需求分析,把该系统分为四个大的部分(见图2)。
3.1系统管理模块
此模块只能管理员进入,可分为两部分,一是成员管理,管理员可以对学生老师管理员进行添加删除修改,也可进行批量导入,二是科目管理,可以对系统的课程科目和章节进行批量导入和维护。为了给用户带来更好的体验,我们在此模块运用了基于prototype的AJAX技术,部分代码:
<script type="text/javascript" language="javascript">
function getComments(pageIndex)
{
new Ajax.Updater(
"users",
"userlisthandler.ashx?page=" + pageIndex+ "&t=" + new Date(),
{ method: "get" });
return false; // IE only
}
</script>
……
public class userlisthandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/plain";
ViewManager();
userlist control = viewManager.LoadViewControl("~/userlist.ascx");
int result = 0;
Int32.TryParse(context.Request.QueryString["page"], out result);
result = result > 0 ? result : 1;
control.PageIndex = result;
control.PageSize = 10;
context.Response.Write(viewManager.RenderView(control));
}
}
当用户进行人机操作的过程中,可以瞬间体验到分页时无刷新的带来的快乐感,也可以在不知不觉的情况下完成对用户的编辑。
3.2 网络答疑模块
每个人进入都有自己的个人空间,如果是学生进入可以进行提问与答疑,如果是老师进入除了上述功能外,还可以对学生的问题及回答进行打分,同时,老师回答完一个问题,表明此问题已经结贴,显示为已回答完的问题。
3.3 信息搜索模块
学生和老师可以充分利用智能搜索功能,对问题进行有针对性的搜索,搜索完毕还可以使搜索到的信息生成报表。
3.4 数据统计模块
里面包含了学生信息报表,班级统计报表,章节统计报表等。并配备三维立体图表对数据进行更加形象的显示(见图3)。学生和老师可以很方便的把图像和数据按格式的进行导出。
4 结语
通过以上分析,我们了解了此系统的基本结构和功能,我们可以看到,利用B/S结构设计实现的网络答疑系统网站,能够较好的实现师生间的交流,优化学校的教育质量。如今此系统已得到了很多学校的认可与应用,希望在将来能够在高校中普及。
参考文献
[1] [英]克拉恩,帕斯卡雷洛,杰姆斯著,ajaxcn.org译,Ajax实战.人民邮电出版社,2006,4.
[2] [美]哥特兰,[美]高伯瑞斯,[美]艾米亚 著,徐锋,胡冰 译,Ajax修炼之道:Web2.0入门电子工业出版社,2006,4.
[3] 施伟伟,张蓓著.征服Ajax:Dojo、Pro-totype、script.aculo.us框架解析与实例,人民邮电出版社,2007,3.
[4] [美]麦赫马夫著,杨仁和译,Ajax设计模式,电子工业出版社,2007,5.
[5] [美]雅可布斯 著,许劲松等译, XML 基础教程:入门、DOM、Ajax与Flash.人民邮电出版社,2007,7.
[6] [美]贝尼纳索,[美]霍特曼著,康博译,ASP.NET Web站点高级编程—提出问题-设计方案-解方案,清华大学出版社,2002,9.