?

基于微信的英語等級考試報名系統的設計與實現

2017-06-01 12:20蘇雪林夏凌云董國卿高富文
微型電腦應用 2017年5期
關鍵詞:開發者頁面服務器

蘇雪林, 夏凌云, 董國卿, 高富文

(中國石油大學(華東), 青島 266580)

基于微信的英語等級考試報名系統的設計與實現

蘇雪林, 夏凌云, 董國卿, 高富文

(中國石油大學(華東), 青島 266580)

隨著微信軟件的使用人數不斷上升,基于微信公眾平臺,越來越多的微信開發者對微信進行了二次開發?;谖⑿诺挠⒄Z等級考試報名系統的基本設計思想、頁面的UI設計和系統的開發原理以及業務邏輯、使用方法,開發時用到的編輯語言為C#,同時用到ASP.NET和ADO.NET技術。在一定程度上,總結了ASP.NET和ADO.NET在該系統下的優勢所在,同時解決了原有數字石油大學英語等級考試報名系統的限制??偨Y了該系統的優勢以及存在的問題。

微信公眾平臺; 二次開發; ASP.NET; ADO.NET; 英語等級考試報名系統

0 引言

微信成為不少智能手機用戶的裝機必備軟件,現在已經擁有了6億甚至更多的用戶[1]。人們如今的日常生活均與微信相關,和朋友發語音聊天,發朋友圈,閱讀微信公眾號發布的文章。微信作為移動互聯網的重要入口,在一開始,就以開放的姿態問世,這給微信愛好者契機,可以供移動應用開發者和公眾賬號運營者使用的是微信公眾平臺的開放平臺。每個個體都有自己的品牌,大到企業、組織,小到媒體、個人,微信公眾平臺為大家提供服務的形式均是以輕應用的形式。微信的開發者模式和眾多的開放接口,為微信愛好者提供了難得的機遇和廣闊的想象空間。

大學英語等級考試是國家教育考試,其目的是提供一個客觀、公正的評價學生的英語應用能力,為大學英語教學服務[2]。針對大學英語等級考試的線上報名管理工作,我們積極探索一些現代化手段,這些手段是適用于現代化條件下學生學習活動的,所以團隊申報了學?!痘谖⑿诺牡燃壙荚噲竺到y》大學生創新創業訓練項目。其目的是為了構建效率高、服務好、誤差小、管理成本低的英語等級考試報名系統。

基于微信的英語等級考試報名系統的開發是一項艱巨的工作,系統的效率程度、服務質量和成本以及用戶的滿意程度,在很大程度上依賴于系統開發方法的選擇,所以團隊選擇了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加密,微信服務器再將請求發給微信開發者自己的服務器(原理圖中為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程序設計:問題-設計-方案[M].(2版).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, Shandong 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 original digital Stone English Grading Test Registration System restrictions. 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-0065-04

TP39

A

2016.10.21)

猜你喜歡
開發者頁面服務器
刷新生活的頁面
答案
通信控制服務器(CCS)維護終端的設計與實現
PowerTCP Server Tool
“85后”高學歷男性成為APP開發新生主力軍
得形忘意的服務器標準
計算機網絡安全服務器入侵與防御
16%游戲開發者看好VR
Web安全問答(3)
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合