小寒的blog
Programming is a darned hard thing—but I am going to like it.

第1章 绪论

1.1 系统的研究目的和意义

随着标准化考试的日益普及,在各种考试中越来越多地采用了计算机考试的方式。相对于传统的卷面考试而言,由于传统的卷面考试从出题印刷到下发试卷等环节需要较长的时间,接触的人员相对较多,因而在保密方面具有一定的困难。而计算机考试系统采用试题库方式提供试题来源,考前无任何成套试卷,考试时考卷由计算机现场随机生成,各考生试卷不完全相同,从而避免了互相参看等作弊现象或不公平成绩的出现。

目前国内在线考试系统多数都是基于aspjsp等服务器端技术实现的。这就不免在保存答案时候要刷新考试页面和重新生成试卷。这种方式的考试系统使用起来给用户的体验非常的糟糕,而且效率不高。另外大多数的考试系统都是结构化的方式分析设计的。结构化的代码组织方式在代码复用和代码可维护性方面显然不如面向对象的方式。所以本系统在考试模块的实现上利用了Ajax方式来保存答案。并在系统分析和设计上采用了面向对象的方式。

1.2 系统的开发背景

1.2.1开发工具和平台介绍

本系统采用了基于.net平台的Asp.net 2.0框架。使用到了Ajax.net Jquery作为javascript类库。使用了基于XMLxslt的转换视图来显示html考试页面。使用了NHibernate作为数据访问层框架。开发工具主要是Visual Studio 2005。使用了Visual Source Safe 2005作为源代码和版本控制工具。数据库使用的是Sql Server 2005 Express。单元测试工具使用的是NUnit

1.2.2 NHibernate介绍

在企业应用开发中使用面向对象和关系数据库可能是一件非常笨重耗时的事情。NHibernate是一个针对.net平台的对象关系映射工具。NHibernate不仅可以映射.net 类到数据库表中。也提供了灵活的数据查询取回的功能。与使用sqlado.net手工处理数据相比,有了NHibernate可以大大的减少开发时间本系统的使用NHibernate做为数据访问层的框架,而不是直接使用ADO.NET。有NHibernate只需要编写映射文件。当使用NHibernate来做数据操作的时候NHibernate会自动生成sql语句来操作数据库的内容。映射文件会告诉NHibernate将类保存到那个表,将那个属性保存到那个字段中。NHibernate处理了所有的数据持久化工作。我们就可以专注于对象的业务逻辑。这正是面向方面编程(AOP)所提倡的把系统的职责(方面)划分到不同的模块中。NHibernate就是封装了数据持久化的这方面的任务。这样在编写核心的业务逻辑类的时候就不用关心持久化的任务了。这让代码更加的清晰容易理解。也容易修改。

1.2.3 XML,XSLT 生成xhtml介绍

在表示层的经典架构MVC,强调Model(模型)View(视图)Controller(控制器)三个角色的分离。这一框架已经得到了Asp.net的默认的支持。其中aspx文件就是Viewaspx.cs就是Controller ,领域类则是Model。按照Martin Flower的定义aspx算是模板视图,aspx.cs则是页面控制器。在开始设计试卷显示问题的时候,开始考虑的也是使用Asp.net 控件来生成试卷。但是试验发现由于多个试卷对象间嵌套比较复杂,将试卷绑定到控件上代码比较复杂和混乱。于是采用了另一种视图。转换视图。就是将试卷对象表示成 XML,然后用xsltXML转换成xhtml再呈现给浏览器。这种视图使用起来比较直观。试卷对象先用XML 表示。然后通过xslt换成xhtml表示。这种方法还可以将试卷格式化成其它不同的表示,只要有不同的xslt转换就行了。

1.2.4  Ajax.net和Jquery

Ajax是一种的改善web应用程序用户体验的技术。就是在浏览器中能够向后台向服务器发出异步请求,并根据返回内容不刷新页面而更新页面的技术。它是几个老技术的综合应用。包括JavascriptXMLXMLHttpRequest对象、DOMCSSJavascript则是将这几种技术粘合在一起的胶水。但是浏览器之间对JavascriptDOMCSS的支持不一致。给Ajax编程带来了很大的难度。Ajax.netJquery正是一个提供了跨浏览器的Javascript库。它们对Ajax的支持都差不多。但是Ajax.net由于是微软自己的产品,所以它可以很好的和服务器端的技术集成。比如Ajax.net提供了客户端访问web服务的内置支持。Jquery 则是一个非常流行的Javascript库。它提供了非常简练操作DOM的功能。提供了非常方便获取DOM节点引用的选择器。选择器类似CSS中的选择器。链式表达式的应用也让代码更加简洁优雅。所以在系统中同时使用了这两个库。Ajax.net主要用于和服务器端的通信。Jquery用来操作修改界面。相互取长补短。
1.3 可行性分析
    本系统属于数据信息管理系统类。用户对功能上的要求不是很复杂。加上有这么强大工具可框架支持。所以本系统十分可行。

posted on 2008-05-19 13:28  xhan  阅读(521)  评论(0编辑  收藏  举报