□ 譚正龍
該款評(píng)分軟件使用Visual Studio 2019平臺(tái)開(kāi)發(fā),Microsoft Visual Studio(以下簡(jiǎn)稱為VS)是美國(guó)微軟公司的開(kāi)發(fā)工具包系列產(chǎn)品。VS是一個(gè)基本完整的開(kāi)發(fā)工具集,包含了整個(gè)軟件生命周期所需要的大部分工具。評(píng)分系統(tǒng)使用C#語(yǔ)言為基礎(chǔ)開(kāi)發(fā)語(yǔ)言,采用.NET平臺(tái)WebAPI模式開(kāi)發(fā)服務(wù)器端,采用Bootstrap、knockout.js、WPF構(gòu)建跨平臺(tái)客戶端,利用Jquery的AJAX方法調(diào)用和服務(wù)器端進(jìn)行數(shù)據(jù)交互實(shí)現(xiàn)。
該款評(píng)分系統(tǒng)采用B/S、C/S架構(gòu),在服務(wù)器端實(shí)現(xiàn)會(huì)員注冊(cè)、會(huì)員權(quán)限管理、參賽數(shù)據(jù)收集、評(píng)分?jǐn)?shù)據(jù)讀寫等功能;在客戶端通過(guò)Jqury的AJAX方法調(diào)用實(shí)現(xiàn)和服務(wù)器端的數(shù)據(jù)交互,從而實(shí)現(xiàn)評(píng)分過(guò)程。之所以采用WebAPI模式開(kāi)發(fā)服務(wù)器端是出于客戶端跨平臺(tái)特性的考慮。采用WebAPI模式時(shí),服務(wù)器和客戶端傳輸數(shù)據(jù)可選擇JSON格式。JSON格式是一種輕量級(jí)通用的數(shù)據(jù)交換格式,可以輕松將JSON格式數(shù)據(jù)轉(zhuǎn)換成JavaScript對(duì)象。得益于JavaScript在多種應(yīng)用中的廣泛使用,JSON可在手機(jī)瀏覽器、電腦瀏覽器、電腦程序、微信等多類客戶端和服務(wù)器實(shí)現(xiàn)無(wú)差別通訊,豐富客戶端形式。以下從服務(wù)器端及客戶端分析系統(tǒng)可行性。
完成服務(wù)器端會(huì)員注冊(cè)、會(huì)員權(quán)限管理、參賽數(shù)據(jù)收集、評(píng)分?jǐn)?shù)據(jù)讀寫等基本功能,首先要建立會(huì)員模型、權(quán)限管理模型、參賽模型和評(píng)分模型,然后利用VS平臺(tái)的代碼優(yōu)先規(guī)則建立從模型到數(shù)據(jù)庫(kù)關(guān)聯(lián),進(jìn)而實(shí)現(xiàn)模型數(shù)據(jù)讀寫的基本功能。相應(yīng)模型、相關(guān)數(shù)據(jù)庫(kù)建立以及服務(wù)器寄宿方式設(shè)置如下。
1.會(huì)員及權(quán)限模型。構(gòu)建該系統(tǒng)的權(quán)限管理模型時(shí),該系統(tǒng)對(duì)會(huì)員身份的需求大致可以分為系統(tǒng)管理員、比賽管理員、評(píng)委、參賽者和普通會(huì)員五類。系統(tǒng)登錄采用注冊(cè)登錄制,系統(tǒng)管理員具有更改已注冊(cè)會(huì)員身份的權(quán)限,采用ASP.NET的Identity模塊來(lái)實(shí)現(xiàn)該系統(tǒng)的會(huì)員功能。ASP.NET Identity可用于所有的ASP.NET框架,如ASP.NET MVC、Web窗體、網(wǎng)頁(yè)和WebAPI。采用ASP.NET的Identity建立模型可簡(jiǎn)單實(shí)現(xiàn)跨平臺(tái)的用戶管理。主要用戶模型字段及角色模型字段建立如表1。
表1 用戶模型表
業(yè)務(wù)流程如圖1,管理員劃分角色。
圖1 注冊(cè)管理流程
2.評(píng)分模型。系統(tǒng)管理員添加比賽并分配比賽管理員,比賽管理員完成添加比賽評(píng)委及參賽者后,添加單場(chǎng)比賽評(píng)分項(xiàng),評(píng)委根據(jù)比賽進(jìn)程進(jìn)行打分操作,主要涉及評(píng)分模型字段建立和評(píng)分流程,如表2和圖2。
表2 數(shù)據(jù)庫(kù)表格
圖2 評(píng)分流程
3.創(chuàng)建數(shù)據(jù)庫(kù)。至此已經(jīng)設(shè)置好主要模型,通過(guò)VS的代碼優(yōu)先編程模型,可以依據(jù)數(shù)據(jù)模型創(chuàng)建數(shù)據(jù)庫(kù)實(shí)體。為給定數(shù)據(jù)模型協(xié)調(diào)實(shí)體框架功能的主類是數(shù)據(jù)庫(kù)上下文類,通過(guò)創(chuàng)建派生自DBContext的類來(lái)定義這種對(duì)應(yīng)關(guān)系。根據(jù)前述設(shè)置好的模型,通過(guò)代碼優(yōu)先規(guī)則共生成了用于存儲(chǔ)數(shù)據(jù)的5張數(shù)據(jù)表,分別用于存儲(chǔ)用戶、角色、比賽和評(píng)分記錄等信息。
4.服務(wù)器寄宿方式。服務(wù)器端可通過(guò)設(shè)置寄宿方式,達(dá)到支持多類型客戶端的目的。WebAPI寄宿的本質(zhì)是利用一個(gè)具體的應(yīng)用程序?yàn)閃ebAPI提供一個(gè)運(yùn)行的環(huán)境,并最終解決“請(qǐng)求的接收和響應(yīng)的回復(fù)”。該評(píng)分系統(tǒng)采用Web Host方式寄宿WebAPI接收以及響應(yīng)來(lái)自微信、移動(dòng)客戶端瀏覽器、電腦端瀏覽器的請(qǐng)求,采用Self Host方式寄宿WebAPI接收以及響應(yīng)來(lái)自電腦應(yīng)用程序的請(qǐng)求,如圖3。
圖3 寄宿方式
該評(píng)分系統(tǒng)支持多種形式的客戶端,主要包括移動(dòng)設(shè)備瀏覽器、電腦瀏覽器、微信和電腦應(yīng)用程序,采用電腦程序端可以實(shí)現(xiàn)評(píng)分過(guò)程、評(píng)分結(jié)果的投屏顯示,方便評(píng)分進(jìn)程公開(kāi)化。下面主要以移動(dòng)設(shè)備端以及電腦程序端進(jìn)行說(shuō)明。
1.移動(dòng)設(shè)備端。移動(dòng)設(shè)備客戶端采用Jquery的AJAX異步通信模式和服務(wù)端實(shí)現(xiàn)數(shù)據(jù)交互,移動(dòng)設(shè)備客戶端發(fā)送的請(qǐng)求通過(guò)服務(wù)器的Web Host模式路由到達(dá)對(duì)應(yīng)的服務(wù)處理程序中進(jìn)行處理,服務(wù)器再將處理結(jié)果返回客戶端。為了在多種屏幕大小不一樣的設(shè)備中獲取最佳使用體驗(yàn),使用了Bootstrap和knockout.js進(jìn)行界面的設(shè)計(jì)以及界面元素和后端數(shù)據(jù)的綁定。
2.電腦應(yīng)用程序端。電腦應(yīng)用程序設(shè)計(jì)是為了獲得更好的投屏顯示效果,因此采用了VS平臺(tái)中的WPF來(lái)進(jìn)行開(kāi)發(fā)。WPF的優(yōu)勢(shì)在于圖形向量渲染引擎,能開(kāi)發(fā)出較為酷炫的界面以滿足投屏顯示評(píng)分過(guò)程及評(píng)分結(jié)果的需求。電腦應(yīng)用程序端發(fā)送的請(qǐng)求通過(guò)服務(wù)器的Self Host模式路由到對(duì)應(yīng)的服務(wù)處理程序中進(jìn)行處理,服務(wù)器再將結(jié)果返回客戶端顯示。
(一)在服務(wù)器實(shí)現(xiàn)Web Host寄宿以支持與移動(dòng)設(shè)備瀏覽器、微信、電腦瀏覽器的連接與數(shù)據(jù)交互。采用Web Host方式寄宿WebAPI,ASP.NET自身的路由系統(tǒng)會(huì)成為接收請(qǐng)求的第一道屏障,因此我們需要做的就是根據(jù)需求注冊(cè)相應(yīng)的路由。在項(xiàng)目中添加一個(gè)Global.asax文件,并建立Application_Start方法,在方法中完成路由設(shè)立,代碼如下:
(二)在服務(wù)器實(shí)現(xiàn)Self Host寄宿以支持與電腦應(yīng)用程序的連接與數(shù)據(jù)交互。對(duì)比Web Host寄宿方式,Self Host不僅要完成必要的路由注冊(cè),還需要完成手工加載定義了HttpController類型的程序集。
之后在WPF應(yīng)用程序端的啟動(dòng)程序中設(shè)置Http-Client訪問(wèn)服務(wù)器,通過(guò)HttpClient的GetAsync方法獲得需要的數(shù)據(jù)。
(三)在客戶端通過(guò)調(diào)用Jquery的AJAX方法來(lái)實(shí)現(xiàn)與服務(wù)器的連接與數(shù)據(jù)交互。由于該方法重用率高,應(yīng)建立AJAXHelper工具以方便重復(fù)調(diào)用AJAX方法。
本文闡述了網(wǎng)絡(luò)評(píng)分系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),包括系統(tǒng)數(shù)據(jù)模型的建立,服務(wù)器與客戶端主要功能部分的實(shí)現(xiàn)過(guò)程等內(nèi)容。評(píng)分系統(tǒng)由服務(wù)器、多類客戶終端組成,操作簡(jiǎn)單,可實(shí)現(xiàn)移動(dòng)設(shè)備如手機(jī)端打分,具有較強(qiáng)的通用性,適應(yīng)多種場(chǎng)景,可以為各項(xiàng)活動(dòng)、比賽、晚會(huì)等評(píng)分、顯示提供便利途徑,提高打分的效率及準(zhǔn)確率。