張銀霞,閆佳莉,趙雪雯,周 晨
(北京聯(lián)合大學(xué)師范學(xué)院,北京 100101)
0 引言 近年來,中國高校的規(guī)模不斷擴(kuò)大,大學(xué)生的校園生活豐富多彩,也延伸出各種各樣的需求,比如:公共必修課學(xué)習(xí)中遇到難題和困惑,需要找尋更為專業(yè)的校友求助;學(xué)習(xí)、社團(tuán)活動等時間緊張時,需要請人幫忙代取快遞、食堂打飯等;校園尋求考研、考證、留學(xué)的同伴;勤工儉學(xué)的需求、二手物品交易或贈送需求等。
現(xiàn)代的大學(xué)校園里,隨處可見使用平板電腦、筆記本電腦的大學(xué)生,手機(jī)更是常見,幾乎人手一機(jī)。在大學(xué)校園張貼求助廣告的現(xiàn)象已不復(fù)存在,當(dāng)需要尋求幫助時,所有人都會想利用手機(jī)的便捷性、足不出戶就能達(dá)成愿望。
基于此現(xiàn)象,希望開發(fā)一款利用各類移動終端和網(wǎng)絡(luò)實現(xiàn)校園互助的系統(tǒng),來滿足大學(xué)生大學(xué)校園生活的實際需求,為學(xué)生之間互助提供智能化的溝通交流平臺,最大化利用資源。因此,將本系統(tǒng)命名為“想你所想”校園互助系統(tǒng)。
1 系統(tǒng)分析與設(shè)計 1.1 系統(tǒng)功能結(jié)構(gòu)設(shè)計 基于當(dāng)前大學(xué)生校園生活實際需求,確定本系統(tǒng)的功能版塊有:“食堂超市”“幫我取”“幫我買”“幫我送”“幫我學(xué)”“幫我尋”“幫我售”和“系統(tǒng)管理”八大模塊。
“食堂超市”版塊功能:提供食堂和超市的物品清單,幫助用戶了解和選擇要購買的商品的詳細(xì)信息。
“幫我取”版塊功能:取快遞、取資料、取鑰匙、取衣服等事務(wù)處理。
“幫我買”版塊功能:買食堂飯菜、買超市物品、買飲品、買藥品等事務(wù)處理。
“幫我送”版塊功能:送文件、送禮物、送鑰匙等事務(wù)處理。
“幫我學(xué)”版塊功能:課程學(xué)習(xí)及復(fù)習(xí)的互助交流、資源共享等事務(wù)處理。
“幫我尋”版塊功能:失物尋主、主尋失物等事務(wù)處理。
“幫我售”版塊功能:閑置物品處置的事務(wù)處理。
本系統(tǒng)由客戶端和服務(wù)器端兩部分組成,可以接受三種用戶角色訪問,分別為:需求者、接單者、管理員。
以需求者身份訪問,主要實現(xiàn)“注冊”“登錄”“發(fā)布需求信息”“瀏覽物品”“用戶私信溝通”等功能。
以接單者身份訪問,主要實現(xiàn)訂單的查看及接單,回復(fù)用戶私信等功能。
以系統(tǒng)管理員身份訪問,主要實現(xiàn)從后臺管理頁面進(jìn)行超市食堂商品的增加、刪除、修改,用戶積分的增減,用戶信息的審核及刪除等功能。
需求者、接單者身份訪問實現(xiàn)的客戶端功能,主要是為了給用戶帶來比較便捷和舒心的使用感受,同時便于系統(tǒng)對于用戶信用的測評。
管理員身份訪問,主要通過后臺服務(wù)器端對用戶所發(fā)布的內(nèi)容進(jìn)行監(jiān)管,以及物品的上架,保證此系統(tǒng)安全的使用環(huán)境和物品信息的及時性,還可對信用較好、較活躍的用戶進(jìn)行增加積分的操作,以此來激勵用戶。
本系統(tǒng)的功能模塊間的組織結(jié)構(gòu)如圖1所示。
圖1 “想你所想”校園互助系統(tǒng)功能模塊組織結(jié)構(gòu)
1.2 系統(tǒng)開發(fā)使用的技術(shù) 考慮到大學(xué)生們有日常使用手機(jī)、平板電腦、筆記本電腦等移動終端的習(xí)慣,為增加更好的用戶體驗,使其隨時隨地隨意使用該系統(tǒng),故在技術(shù)方面考慮將其開發(fā)成可以跨平臺、跨系統(tǒng)使用的軟件產(chǎn)品,不局限于僅能選擇運行在Android、IOS、Windows 單一系統(tǒng)下,達(dá)到一次開發(fā)多平臺應(yīng)用的效果。
因此,本系統(tǒng)選擇采用基于瀏覽器/服務(wù)器(Browser/Server,B/S)架構(gòu)的服務(wù)器端動態(tài)網(wǎng)站開發(fā)技術(shù)進(jìn)行開發(fā),無需單獨安裝額外的APP,不消耗額外的移動終端的存儲空間,就可通過手機(jī)、平板電腦、移動電腦等終端的瀏覽器訪問使用該系統(tǒng)。
1.2.1 ASP.NET動態(tài)網(wǎng)站編程技術(shù)
創(chuàng)建動態(tài)網(wǎng)站的一種強(qiáng)大的服務(wù)器端新技術(shù),隸屬于微軟.NET體系結(jié)構(gòu),對.NET類庫具有全面訪問權(quán)限,基于Visual Studio 可視化開發(fā)環(huán)境、使用面向?qū)ο蟮某绦蛟O(shè)計語言、ADO.NET、服務(wù)器端控件開發(fā)交互式網(wǎng)站[1]。
1.2.2 面向?qū)ο蟮木幊陶Z言C#
C#簡單易用,面向?qū)ο蟪潭缺菾ava 還要高、是完全的面向?qū)ο螅粚嵤┝俗顕?yán)格的類型安全機(jī)制,可以進(jìn)行邊界、算術(shù)運算溢出檢查等;盡可能通過DLL來提高運行效率。
1.2.3 數(shù)據(jù)庫服務(wù)器SQL Server2012
SQL Server 2012 是為開發(fā)者提供的數(shù)據(jù)庫系統(tǒng)開發(fā)工具,主要的作用是對數(shù)據(jù)進(jìn)行保存[2]。它操作簡單、有良好的伸縮性、可跨越多種大型的處理器的服務(wù)器平臺使用,可以改善ASP.NET動態(tài)網(wǎng)站存儲數(shù)據(jù)的效率。
1.2.4 運行方式——響應(yīng)式網(wǎng)站
響應(yīng)式網(wǎng)站是一種網(wǎng)頁布局能夠兼容多個終端、適應(yīng)不同分辨率屏幕的網(wǎng)站,具有同一個后臺,多終端自動適應(yīng)的特點,不需再給每一種不同顯示器尺寸的設(shè)備重新制定一個網(wǎng)站版本。它具有使用便捷、應(yīng)用性強(qiáng)、可以獨立設(shè)計、與數(shù)據(jù)庫同步、設(shè)計方案靈活等優(yōu)點。
1.2.5 Bootstrap框架
Bootstrap 框架是采用HTML、CSS、JavaScript所編寫的前端開發(fā)架構(gòu),由動態(tài)CSS 代碼Less所編寫而成,需要依賴于JQuery 才能正常執(zhí)行,支持響應(yīng)式布局,用于開發(fā)響應(yīng)式布局、移動設(shè)備優(yōu)先的Web 項目[3]。
Bootstrap 柵格系統(tǒng)是網(wǎng)格系統(tǒng),主要是為將網(wǎng)頁設(shè)計分割為等寬的列,進(jìn)而利用序列數(shù)的概念進(jìn)行模塊化網(wǎng)頁設(shè)計。
1.2.6 CSS網(wǎng)頁布局
CSS 網(wǎng)頁布局一般分為頭部、導(dǎo)航菜單部分、網(wǎng)頁內(nèi)容部分、底部,涉及正常布局流、display屬性、彈性盒子、網(wǎng)格、浮動、定位、CSS 表格布局、多列布局等多種技術(shù)[4]。
1.2.7 HTML5
HTML5(hypertext markup language 5)是互聯(lián)網(wǎng)新一代標(biāo)準(zhǔn),是構(gòu)建網(wǎng)頁內(nèi)容的一種語言描述方式,增加了對多媒體音視頻支持的<audio>、<video>標(biāo)簽,還具有智能表單、數(shù)據(jù)存儲、多線程等功能。
1.3 系統(tǒng)開發(fā)環(huán)境部署 本系統(tǒng)使用集成開發(fā)環(huán)境Visual Studio 2013,ASP.NET 服務(wù)端網(wǎng)站開發(fā)技術(shù);采用的開發(fā)語言為C#、HTML5 等;采用的數(shù)據(jù)庫服務(wù)器為SQL Server 2012。
本系統(tǒng)客戶端運行方式:響應(yīng)式網(wǎng)頁。
本系統(tǒng)服務(wù)器端運行方式:電腦端動態(tài)網(wǎng)頁。
圖2 校園互助系統(tǒng)架構(gòu)
2 系統(tǒng)核心功能模塊的設(shè)計與實現(xiàn) 2.1 網(wǎng)頁響應(yīng)式布局的設(shè)計與實現(xiàn) 在本系統(tǒng)中,對于有統(tǒng)一顯示風(fēng)格的頁面,使用ASP.NET 的母版頁來設(shè)計。在母版頁中,使用Bootstrap 框架技術(shù)實現(xiàn)頁面的響應(yīng)式布局,實現(xiàn)的核心代碼如圖3~圖6所示。
圖3
標(biāo)簽中應(yīng)用Bootstrap布局文件的引用
圖4
標(biāo)簽中
部分應(yīng)用Bootstrap布局的設(shè)計
圖5
標(biāo)簽中部分應(yīng)用Bootstrap布局的設(shè)計
圖6
標(biāo)簽中Bootstrap的JavaScript Files引用(續(xù))
圖6
標(biāo)簽中Bootstrap的JavaScript Files引用其他無法使用母版的頁面響應(yīng)式實現(xiàn)方法原理類似。
2.2 數(shù)據(jù)庫的設(shè)計與實現(xiàn) 2.2.1 概念結(jié)構(gòu)設(shè)計
通過對本軟件的功能需求和使用分析,將抽象的功能轉(zhuǎn)化為實際的數(shù)據(jù)信息結(jié)構(gòu),這一步驟對于數(shù)據(jù)庫的設(shè)計尤為重要。通常會采用歸類法對數(shù)據(jù)進(jìn)行抽象化并完成數(shù)據(jù)結(jié)構(gòu)設(shè)計。
本軟件中實體設(shè)計如下所示:
(1)用戶(唯一標(biāo)識、用戶名id、登錄密碼、電話號碼、住址、身份、積分);
(2)食堂超市物品信息(唯一標(biāo)識、物品名稱、物品圖片、所屬分類、價格、 物品詳細(xì)介紹、所屬食堂/超市);
(3)各種服務(wù)信息(唯一標(biāo)識、發(fā)布的標(biāo)題、發(fā)布者、圖片、所屬的服務(wù)類別、 傭金/售價、發(fā)布的具體內(nèi)容介紹、接單者、接單狀態(tài)、私信留言、私信回復(fù)、評價);
(4)學(xué)習(xí)交流信息(唯一標(biāo)識、交流主題、發(fā)布者、交流內(nèi)容)。
2.2.2 數(shù)據(jù)庫表的實現(xiàn)
根據(jù)上述邏輯結(jié)構(gòu)設(shè)計,在SQL Server數(shù)據(jù)庫服務(wù)中創(chuàng)建數(shù)據(jù)庫并生成數(shù)據(jù)表,如圖7、圖8所示。
圖7 食堂超市物品信息表
圖8 服務(wù)信息表
用戶及學(xué)習(xí)交流信息表的實現(xiàn)原理類似。
2.3 本系統(tǒng)的數(shù)據(jù)庫訪問 本系統(tǒng)是一個響應(yīng)式布局的動態(tài)網(wǎng)站,各個頁面和數(shù)據(jù)庫間存在大量的數(shù)據(jù)交換業(yè)務(wù)邏輯處理?;贏DO.NET 斷開式數(shù)據(jù)庫訪問適合網(wǎng)絡(luò)數(shù)據(jù)量大、系統(tǒng)節(jié)點多、網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,尤其是通過因特網(wǎng)/企業(yè)專用網(wǎng)進(jìn)行連接的網(wǎng)絡(luò),因此本系統(tǒng)所有功能的數(shù)據(jù)庫訪問方式均采用斷開式,利用DataSet對象來實現(xiàn)。
2.3.1 數(shù)據(jù)庫連接字符串的配置
本系統(tǒng)使用ASP.NET 的應(yīng)用程序配置文件web.config 來存儲數(shù)據(jù)庫連接字符串,以提高Web應(yīng)用程序的維護(hù)性和安全性,配置代碼如下:
<appSettings>
<add key=“ConnectionString”value=“Data Source
=.;Database=tbnz;Integrated Security=true;”/>
</appSettings>
其中:DataSource 屬性用來設(shè)置SQL 服務(wù)器地址,本系統(tǒng)是將數(shù)據(jù)庫和網(wǎng)站部署在同一個服務(wù)器上,所以用“.”表示,也可以用localhost表示;Database屬性用來設(shè)置要訪問的數(shù)據(jù)庫的名稱; Integrated Security 屬性用來設(shè)置訪問數(shù)據(jù)庫的方式,本系統(tǒng)中使用Windows 集成的安全性驗證的方式去連接到數(shù)據(jù)庫服務(wù)器,這樣連接字符串中不會公開用戶名和密碼,具有更高的安全性。
2.3.2 數(shù)據(jù)庫訪問的實現(xiàn)
本系統(tǒng)客戶端和服務(wù)器端的Web 頁面的創(chuàng)建均采用代碼隱藏頁模型,即:頁面顯示邏輯位于.aspx 文件中,業(yè)務(wù)邏輯處理代碼位于和頁面顯示邏輯同名的.aspx.cs 文件中。數(shù)據(jù)的訪問代碼是寫在*.aspx.cs文件中,以首頁加載時訪問數(shù)據(jù)庫的代碼實現(xiàn)為例:
string myStr=ConfigurationManager.AppSettings
[“ConnectionString”].ToString();
SqlConnection myConn=new SqlConnection(myStr);
string sqlStr1=“select*from service where lanmu
like‘%幫我售%’and state like%待接單%’”;
SqlDataAdapter myDa1=new SqlDataAdapter
(sqlStr1,myConn);
DataSet myDs1=new DataSe(t);
myDa1.Fil(lmyDs1,“news”);
this.GridView1.DataSource=myDs1.Tables
[“news”].DefaultView;
this.GridView1.DataBind();
訪問數(shù)據(jù)服務(wù)表service 中的帶有“幫我售”“待接單”信息的數(shù)據(jù),并綁定到Default.aspx中的數(shù)據(jù)綁定控件Gridview中顯示。
也可以獲取該數(shù)據(jù)表中部分字段數(shù)據(jù)信息綁定到div、span 標(biāo)簽中顯示,實現(xiàn)方法舉例如下:
<a href=“shop_more.aspx?id=<%#Eva(l“id”)%>”>
<img src=“admin/file/<%#Eva(l“pic”)%>”></a>
<span><%#Eva(l“l(fā)anmu”)%></span>
2.4 客戶端部分核心功能的設(shè)計與實現(xiàn) 2.4.1 發(fā)布信息功能模塊
以“幫我買”為例,介紹各類信息發(fā)布功能的設(shè)計及實現(xiàn)原理,如圖9、圖10所示。
圖9 “幫我買“信息發(fā)布界面
圖10 “幫我買”信息發(fā)布功能實現(xiàn)的核心代碼
2.4.2 接單功能模塊
接單時,要首先對用戶的身份進(jìn)行確認(rèn),如果是發(fā)布信息的需求者就不能接單,如圖11、圖12所示。
圖11 “接單”界面
圖12 “接單”功能實現(xiàn)的核心代碼
2.5 服務(wù)端部分核心功能的設(shè)計與實現(xiàn) 本系統(tǒng)的服務(wù)器端以電腦端網(wǎng)站的形式運行,用于對各類用戶信息、發(fā)布信息進(jìn)行后臺的管理和維護(hù)。在程序?qū)崿F(xiàn)時,主要表現(xiàn)為在代碼邏輯頁訪問數(shù)據(jù)庫,在對應(yīng)的頁面顯示邏輯頁用數(shù)據(jù)綁定控件GridView以表格的形式顯示,并根據(jù)事務(wù)邏輯實現(xiàn)對數(shù)據(jù)的增刪改查。以訂單管理為例,實現(xiàn)的原理如圖13、圖14所示。
圖13 食堂物品管理頁面顯示
圖14 食堂物品管理數(shù)據(jù)綁定顯示
3 系統(tǒng)運行效果展示 服務(wù)器端頁面設(shè)計和實現(xiàn)效果風(fēng)格較為統(tǒng)一,均為圖13 所示式樣,故此部分僅展示客戶端部分核心功能的運行效果,如圖15~圖19 所示。
圖15 菜品
圖16 信息發(fā)布
圖17 我要接單
圖18 學(xué)習(xí)交流
圖19 接單者信息
4 結(jié)語 本系統(tǒng)的優(yōu)勢是一次開發(fā)多平臺使用,無需安裝,通過各個終端設(shè)備內(nèi)容的瀏覽器就可直接訪問使用,節(jié)約了空間和安裝的時間,也可以避免手機(jī)遭受到病毒、垃圾廣告等的侵害。
當(dāng)前,本系統(tǒng)平臺主要是以大學(xué)校園的應(yīng)用為主,但平臺的功能和技術(shù)的可移植性較強(qiáng),未來隨著中國老齡化現(xiàn)象日益嚴(yán)重,本軟件系統(tǒng)還可以遷移至社區(qū),實現(xiàn)社區(qū)互助,應(yīng)用前景廣闊。
本論文提供了響應(yīng)式動態(tài)網(wǎng)站系統(tǒng)設(shè)計與開發(fā)的關(guān)鍵環(huán)節(jié)、技術(shù)原理和核心代碼,可以為此類相應(yīng)模式的Web 應(yīng)用程序開發(fā)提供參考樣例和開發(fā)范式。