基于微信的英语等级考试报名系统的设计与实现
2017-06-27苏雪林夏凌云董国卿高富文
苏雪林, 夏凌云, 董国卿, 高富文
(中国石油大学(华东), 青岛 266580)
基于微信的英语等级考试报名系统的设计与实现
苏雪林, 夏凌云, 董国卿, 高富文
(中国石油大学(华东), 青岛 266580)
随着微信软件的使用人数不断上升,越来越多的微信开发者基于微信公众平台对微信进行了二次开发。基于微信的英语等级考试报名系统的基本设计思想、页面的UI设计和系统的开发原理以及业务逻辑、使用方法。开发使用介绍了的编辑语言为C#,同时用到ASP.NET和ADO.NET技术。在一定程度上,总结了ASP.NET和ADO.NET在该系统下的优势所在,同时解决了原有数字石油大学英语等级考试报名系统的限制。总结了该系统的优势以及存在的问题。
微信公众平台; 二次开发; ASP.NET; ADO.NET; 英语等级考试报名系统
0 引言
微信成为不少智能手机用户的装机必备软件,现在已经拥有了6亿甚至更多的用户[1]。人们如今的日常生活均与微信相关,和朋友发语音聊天,发朋友圈,阅读微信公众号发布的文章。微信作为移动互联网的重要入口,在一开始,就以开放的姿态问世,这给微信爱好者契机,可以供移动应用开发者和公众账号运营者使用的是微信公众平台的开放平台。每个个体都有自己的品牌,大到企业、组织,小到媒体、个人,微信公众平台为大家提供服务的形式均是以轻应用的形式。微信的开发者模式和众多的开放接口,为微信爱好者提供了难得的机遇和广阔的想象空间。
大学英语等级考试是国家教育考试,其目的是提供一个客观、公正的评价学生的英语应用能力,为大学英语教学服务[2]。针对大学英语等级考试的线上报名管理工作,我们积极探索一些现代化手段,这些手段是适用于现代化条件下学生学习活动的,所以团队申报了学校《基于微信的等级考试报名系统》大学生创新创业训练项目。其目的是为了构建效率高、服务好、误差小、管理成本低的英语等级考试报名系统。
基于微信的英语等级考试报名系统的开发是一项艰巨的工作,系统的效率程度、服务质量和成本以及用户的满意程度,在很大程度上依赖于系统开发方法的选择,所以团队选择了ASP.NET技术和ADO.NET技术进行系统开发。ASP.NET和ADO.NET技术是真正能够较全面地支持整个考试报名系统开发的程序开发技术。
1 微信公众平台开发模式的数据交互
微信是一款社交软件。微信用户可以通过其与好友进行与短信、彩信等方式类似的联系,但是形式又更加丰富[3]。腾讯公司之后新出了微信公众平台,个人和企业可以申请一个微信公众账号,并实现和特定群体的全方位沟通、互动[4-5]。同时众所周知,基于微信公众平台,微信应用号已经进行内测。我们团队选择了微信公众平台的服务号类型,模式使用的是服务号的开发者模式,通过公众平台提供的接口实现了自定义菜单、自动回复、查询各类教务信息以及英语等级考试报名等功能。
开发者可以使用公众平台的开放接口,开发属于自己团队的小程序并部署在自己的服务器上,但前提是公众账号需要开启开发者模式,实现特定功能,同时可以和用户进行消息交互。用户在使用该微信公众账号的功能,需要先关注该账号,然后通过微信客户端点击开发者已经实现的菜单或者向公众账号发送消息,微信后台接收到通过网络传输来的用户消息后,会将其转发团队自身公众账号服务器上,XML消息被服务器接收,服务器快速解析消息,并在程序和后台数据库中遍历所需的消息,再次将信息封装成XML消息,微信后台接收XML消息,将返回的消息转发到用户微信移动客户端,用户就接收到了公共账号发送的消息[4]。
2 系统设计思想
团队经过调研和观察,发现在当代大学生中微信的使用频率蒸蒸日上,所以学校相继部署属于自己的官方微信,发布各类消息,除了发布消息以及一些推文之外,还会通过开发模式开发日常教务应用,例如成绩查询、课表查询、校园一卡通余额查询等,极大地便利了全校师生。正是基于便利广大师生的思想,才有了开发基于微信的英语等级考试报名系统的想法。
在前文已经提到,团队微信公众账号类型选择了服务号,服务号更有利于开发者去开发相应的功能,使用开发者写的Webservice代码从对应的教务处数据库和四六级数据库里调用相应的学生个人信息以及之前所报名科目的成绩数据再返回给Webservice,经过处理与整合再将数据传给微信后台,从而实现在手机微信端能一打开报名页面即可看到已自动生成好的报名表,里面涵盖学生个人信息。用户操作方式采用微信菜单与用户向公众平台发送消息两者相结合的方式,同时设计了回复关键字接收相应的消息的方式。此外,微信端英语等级考试报名页面排版与本校电脑端(数字石大)报名页面排版基本一致,页面适用于现在用户所使用的智能手机,排版一致能有效提高老用户适应新的报名系统的速度。
3 页面基本设计
手机端的UI设计。如图1、图2、图3所示。
4 系统的开发原理
4.1 ASP.NET技术的系统结构简介
ASP.NET系统结构是一个三层结构:用户层、业务逻辑层和数据层[6]。用户层负责与用户交互,作用类似于一个中间人,除了接收用户的输入数据同时还将服务器传来的数据反馈给用户。业务逻辑层也称为领域层,是系统架构体现核心价值的部分,负责接收浏览器传来的请求同时将接收到的请求传给数据层,之后将请求的处理结果返回给之前的浏览器。Web表单是向客户呈现数据和信息的基础,也是响应客户信息和处理数据的基础。团队开发的英语等级考试报名系统结构正是采用了ASP.NET系统结构。
图1 报名首页
图2 选择报名语种级别
图3 报名须知
4.2 ADO.NET访问数据原理
ADO.NET是.NET框架的组成部分,称之为数据访问接口。ADO.NET提供与数据源进行交互的公共方法,允许与不同的数据源交流[6]。在实际操作中,无论采用哪种数据提供程序,ADO.NET都会实现以下5种对象,分别为:Connection对象,负责建立与所需数据源的连接工作;Command对象,大部分时候是利用INSERT、DELETE、UPDATE命令对数据库进行操作;DataReader对象,从数据库中读取只进的数据流,并且数据流属性为只读;DataSet对象,将其称之为ADO.NET的中心概念,可以把DataSet当成内存中的数据库,是不依赖于数据库的独立数据集合[6];DataAdapter对象,是 DataSet和 SQL Server之间的桥接器。
需要从数据源中读取数据时,ADO.NET应用程序首先要创建连接对象。以上所述对象可实现数据访问基本操作。需要特别说明DataSet对象采用了断开连接方式的数据结构[6],当浏览器向Web服务器请求网页时,服务器处理这个请求,在连接被断开之前,服务器会将所请求的网页发送给浏览器,连接断开后,一直等待,直到浏览器发出发出下一个请求。
4.3 系统业务逻辑
4.3.1 用户得到报名链接
用户向服务号发送“等级考试报名”或者点击开始设定好的自定义菜单,微信服务器收到用户的请求,微信服务器利用之前已绑定过的学号,和时间戳、自定义的密码,进行MD5加密,微信服务器再将请求发给微信开发者自己的服务器(图4中为i石大服务器),i石大服务器生成请求链接,返回给微信服务器,微信服务器再返回给用户微信客户端。
4.3.2 生成报名表
用户点击链接访问报名页面,触发四六级服务器自动查询四六级数据库中用户(根据学号判定)原有的报名信息,根据查询到的信息自动生成报名表,查询的信息包括姓名、性别、学号、身份证号、学历、学制、入学年份、年级、电话号码、院系、专业、班级、四六级成绩,以上信息已包含报名表所有信息,电话号码可编辑,若有错误,可及时修改,同时服务器查询可报名的科目,比如报考六级是在已通过四级考试的前提下方可报名。若该用户还未在英语等级考试系统中报名,则从教务处的数据库查询用户信息(根据学号),生成报名表,信息包括:姓名、性别、学号、身份证号、学历、学制、入学年份、年级、院系、专业、班级,电话号码一栏初次报名,需自己填写。服务器查询可报名的科目,判断是否拥有报名资格(大一不可报,四级通过,才可报六级),生成报名页面,返回给用户。
4.3.3 基本信息与照片
用户初次报名,需要上传学籍照片,同时用户也可修改基本信息(电话号码等),确认无误后点击确定,四六级服务器将信息存入数据库,该用户下次报名,服务器直接查询数据库数据即可。
4.3.4 选择报名科目以及缴费
用户选择科目,点击报名,将转到一卡通缴费页面,在一卡通页面缴费后,若缴费成功,一卡通将返回成功信息给四六级页面,将报名信息存入数据库,否则将返回失败信息,返回报名页面。
数据库连接采用ADO.NET连接数据库,并将用户上传的照片保存到服务器目录下,用到了两个数据库:四六级服务器的数据库,还要查询学校教务处的数据库,基本原理,如图4所示。
图4 基本原理图
5 系统的使用方法
5.1 系统的操作流程,如图5所示。
图5 功能结构图
5.2 系统的主要特点
(1) 操作简单,界面友好系统界面布局较友好,采用的是完全控件形式,使系统的页面更加人性化,更易操作。用户再向微信后台发送请求时,微信自动获取该用户的学号,再通过学号从数据库查找该学生的相关个人信息数据,将已有信息直接显示在设定好的控件中,一目了然,不需要用户逐个填写用户表栏目。
(2) 参数传递安全,性能可靠在开发ASP.NET网页的过程中,会遇到多个页面间需要共享同一组变量或者参数值的情况。ASP.NET技术提供了将这些参数值在网页间进行正常传输,实现了实量共享的解决方法,各种方法均有其自身的适用范围和使用的局限性[7]。同时在各个网页间采用MD5加密技术,安全性更强。
(3) 系统的功能比较完善基于微信的等级考试报名系统,完全采用了面向对象的开发理念。本系统除了英语等级考试报名以外,还有本校自习教室查询、师生课表查询、学生成绩查询和个人信息查询等辅助性功能。
6 代码
protect against XSRF attacks防止XSS跨站脚本攻击(Cross Site Scripting)。
代码如下:
protected void Page_Init(object sender, EventArgs)
{
// The code below helps to protect against XSRF attacks
var requestCookie = Request.Cookies[AntiXsrfTokenKey];
Guid requestCookieGuidValue;
if (requestCookie != null && Guid.TryParse(requestCookie.Value, out requestCookieGuidValue))
{
// Use the Anti-XSRF token from the cookie
_antiXsrfTokenValue = requestCookie.Value;
Page.ViewStateUserKey = _antiXsrfTokenValue;
}
Else
{
// Generate a new Anti-XSRF token and save to the cookie
_antiXsrfTokenValue = Guid.NewGuid().ToString("N");
Page.ViewStateUserKey = _antiXsrfTokenValue;
var response Cookie = new HttpCookie(AntiXsrfTokenKey)
{
HttpOnly = true,
Value = _antiXsrfTokenValue
};
if (FormsAuthentication.RequireSSL && Request.IsSecureConnection)
{
responseCookie.Secure = true;
}
Response.Cookies.Set(responseCookie);
}
Page.PreLoad += master_Page_PreLoad;
}
7 总结
基于微信的英语等级考试报名系统,突破了数字石大原有网页版英语等级考试系统时间地点的局限。手机成为人们每时每刻必用的物品,微信移动客户端报名相对于网站报名有许多的便捷之处。手机版网页采用现当下流行的网页编制工具.NET,语言和工具易懂易学,数据库与服务器、客户端的连接条理清晰。该系统经过一段时间的反复调试、改进,在各方面基本达到了预期的目标,满足了本校师生特定功能的需求。该系统目前在本校师生中取得好评,但也存在不足的地方,系统人使用人数超过一定数额的时候,服务器会有故障隐患,所以团队成员正在做进一步的研究,如何消除隐患。
[1] 闫小坤,周涛. 微信公众平台应用开发从入门到精通[M].北京:清华大学出版社,2016, 1-2.
[2] 许霄雨,支希哲.对大学英语教学改革的解读与分析[J].西北工业大学学报(社会科学版),2006(2):67-70.
[3] 唐燕,刘仁权,白俊,等.WebService技术在高校微信开发中的应用[J].信息技术.2015(4): 44-47,50.
[4] 钱志勇.微信公众平台应用开发实践[M].北京:机械工业出版社,2013(9):98-99.
[5] 陈晓罗.基于微信公众凭他的高校师生信息互动平台研究与实现[J].吉林省教育学院学报(中旬),2013(9):98-99.
[6] 申朝阳,宋颜浩.ASP.NET与相关数据库技术[M].北京:中国水利水电出版社,2005.
[7] Marco Bellinaso.ASP.NET2.0WebSite程序设计:问题-设计-方案(2版)[M].John Witey&Sons,2007.
Design and Implementation of College English Test Registration System Based on WeChat
Su Xuelin, Xia Lingyun, Dong Guoqing, Gao Fuwen
(China University of Petroleum, Qingdao 266580, China)
With the rising of user number of WeChat, based on WeChat public platform, more and more WeChat developers do the further development for WeChat. This paper describes the basic design, UI design and system development principles and business logic, the use of method of the English grade examination registration system which is based on WeChat. The development of the editing language uses C #, and ASP.NET and ADO.NET technologies. To a certain extent, it sums up the advantages of ASP.NET and ADO.NET in the system, while addressing the restrictions of the original digital Stone English Grading Test Registration System. At the end of the paper, the advantages and problems of the system are summarized.
WeChat public platform; Further development; ASP.NET; ADO.NET; English test registration system
苏雪林(1996-)女,广元人,本科,担任大学生创新创业项目——基于微信的等级考试报名系统开发项目负责人。 夏凌云(1980-)男,泸州人,硕士研究生,工程师,研究方向:互联网技术、计算机软硬件技术和物联网技术。 董国卿(1966-)男,博士,高工,研究方向:数据库应用、云计算等。 高富文(1995-)男,临沂人,本科,研究方向:web开发,数据库和云计算方向。
1007-757X(2017)05-0053-04
TP39
A
2016.10.21)