曾俊國(guó),羅 剛
(成都工業(yè)學(xué)院 教務(wù)處,成都 610031)
羅剛(1968- ),男(漢族),四川安岳人,教授,碩士,研究方向:控制工程、高校教學(xué)管理與研究。
基于MVC的高校畢業(yè)論文管理系統(tǒng)研究
曾俊國(guó),羅 剛
(成都工業(yè)學(xué)院 教務(wù)處,成都 610031)
為克服用傳統(tǒng)方法設(shè)計(jì)及開(kāi)發(fā)出的畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)耦合度高、重用性低、部署和后期維護(hù)困難等缺點(diǎn),提出了基于MVC的Web軟件開(kāi)發(fā)方案。闡述了MVC思想內(nèi)涵、MVC與傳統(tǒng)三層架構(gòu)的聯(lián)系與區(qū)別;通過(guò)分析畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)的功能和工作流程確定基于MVC的系統(tǒng)體系架構(gòu);給出了部分系統(tǒng)功能的實(shí)現(xiàn)過(guò)程。系統(tǒng)試運(yùn)行良好,易于維護(hù)和功能擴(kuò)展,重用性高,軟件部署方便,滿(mǎn)足高校教務(wù)管理信息化需要。
MVC;高校;教務(wù)管理;信息化;畢業(yè)設(shè)計(jì)(論文)
高校校園信息化首先是教務(wù)管理信息化,作為整個(gè)高校日常教學(xué)運(yùn)行的引擎,教務(wù)管理系統(tǒng)在高校日常管理活動(dòng)中具有重要作用。目前,國(guó)內(nèi)很多高校對(duì)畢業(yè)設(shè)計(jì)(論文)的管理還未實(shí)現(xiàn)信息化,畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)作為教務(wù)管理系統(tǒng)的重要組成部分,對(duì)其進(jìn)行研制以及結(jié)構(gòu)的優(yōu)化、性能的提升一直是各高校研究的重要課題。運(yùn)用傳統(tǒng)方法設(shè)計(jì)的畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)不僅存在開(kāi)發(fā)周期較長(zhǎng)、難度大、效率低、各組件之間耦合度較高等弊端,而且軟件部署慢、可重用性低、后期維護(hù)困難。筆者利用時(shí)下比較流行的、多用于Web開(kāi)發(fā)的MVC技術(shù)實(shí)現(xiàn)了系統(tǒng)數(shù)據(jù)共享與交互,實(shí)現(xiàn)畢業(yè)設(shè)計(jì)(論文)管理過(guò)程中的指導(dǎo)教師擬定題目,學(xué)校、院(系)及教研室審核題目,學(xué)生網(wǎng)上選題,學(xué)生畢業(yè)設(shè)計(jì)(論文)文檔提交,指導(dǎo)教師評(píng)閱,院(系)推薦優(yōu)秀論文等一系列工作;在此基礎(chǔ)上還可實(shí)現(xiàn)學(xué)生與指導(dǎo)教師對(duì)同一篇論文的在線編輯與點(diǎn)評(píng),達(dá)到及時(shí)、直接的師生間交互。
圖1 MVC各部分的關(guān)系及功能
1.1 MVC思想的定義
圖2 MVC與傳統(tǒng)三層結(jié)構(gòu)的對(duì)應(yīng)關(guān)系
目前各行各業(yè)幾乎都開(kāi)發(fā)研制了適合各自領(lǐng)域的信息管理系統(tǒng),雖然它們功能不盡相同,但總的說(shuō)來(lái)不外乎有三大功能:輸入、處理和輸出功能,基于這一信息管理系統(tǒng)的共性,MVC應(yīng)運(yùn)而生。MVC(Model View Controller)是一種軟件設(shè)計(jì)典范,它是模型(Model)、視圖(View)和控制(Controller)的縮寫(xiě),其目的是實(shí)現(xiàn)Web系統(tǒng)的數(shù)據(jù)層和表示層(業(yè)務(wù)邏輯)的分離。其中Model層主要負(fù)責(zé)實(shí)現(xiàn)系統(tǒng)中的業(yè)務(wù)邏輯;View層主要負(fù)責(zé)與用戶(hù)交互; 而Controller層則是模型與視圖之間的橋梁,其功能表現(xiàn)為接受用戶(hù)的請(qǐng)求,并將該請(qǐng)求反饋給模型,然后選擇恰當(dāng)?shù)囊晥D將用戶(hù)請(qǐng)求的結(jié)果顯示給用戶(hù),同時(shí)它也可以解釋用戶(hù)的輸入并將它們映射為模型層可執(zhí)行的操作。MVC各部分的關(guān)系和功能如圖1[1]所示。
1.2 MVC與傳統(tǒng)三層結(jié)構(gòu)的比較
傳統(tǒng)的三層結(jié)構(gòu)包括:DAL(數(shù)據(jù)訪問(wèn)層)、BLL(業(yè)務(wù)邏輯層)、UI界面層,它實(shí)際上是一種軟件架構(gòu)體系,是為了解決應(yīng)用程序開(kāi)發(fā)過(guò)程中各個(gè)業(yè)務(wù)操作過(guò)程中不同階段的代碼封裝的問(wèn)題,以便程序員更加專(zhuān)注地處理某階段的業(yè)務(wù)邏輯,因此從這個(gè)角度來(lái)說(shuō),根據(jù)實(shí)際需要,還可以有四層、五層等架構(gòu)。
MVC是一種設(shè)計(jì)模式[2-3],開(kāi)發(fā)人員可以用它來(lái)隔離域?qū)ο蠛途唧w的UI表示。傳統(tǒng)的三層結(jié)構(gòu)與MVC相同的是都有一個(gè)表現(xiàn)層,而不同點(diǎn)主要表現(xiàn)在其他2層。傳統(tǒng)的三層架構(gòu)中沒(méi)有定義控制層(Controller),而MVC也沒(méi)有把業(yè)務(wù)的邏輯訪問(wèn)看成2個(gè)層,這是采用三層架構(gòu)或MVC搭建程序最主要的區(qū)別;傳統(tǒng)的三層結(jié)構(gòu)中也有模型(Model)概念,但它與MVC中模型的概念是不一樣的,前者是以實(shí)體類(lèi)(對(duì)象)構(gòu)成的,而MVC中模型則是由業(yè)務(wù)邏輯與訪問(wèn)數(shù)據(jù)組成的。圖2說(shuō)明了MVC軟件設(shè)計(jì)模式與傳統(tǒng)三層結(jié)構(gòu)的關(guān)系。
圖3 畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)操作流程圖
圖4 畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)體系結(jié)構(gòu)圖
1.3 MVC的相關(guān)技術(shù)
在MVC思想的引領(lǐng)下,出現(xiàn)了很多相關(guān)的開(kāi)發(fā)技術(shù),這些技術(shù)應(yīng)用于不同的開(kāi)發(fā)環(huán)境。其中,在Java環(huán)境下的MVC設(shè)計(jì)模式有:Jsp+Servlet+JavaBean(EJB)、Jsp+JavaBean(Controller)+JavaBean(EJB)(Model)、Jsp+Struts+JavaBean(EJB);在微軟的.NET開(kāi)發(fā)環(huán)境下的MVC設(shè)計(jì)模式有:ASP.NET MVC Framework(ASP.NET MVC)、MonoRail (RC3);在PHP開(kāi)發(fā)環(huán)境下MVC設(shè)計(jì)模式有: Zend framework PHP官方框架、Fleaphp/Qeephp 等國(guó)內(nèi)流行框架、CakePHP 等國(guó)外流行框架。ASP.NET MVC在現(xiàn)有的ASP.NET 3.5運(yùn)行時(shí)的基礎(chǔ)上提供了一個(gè)新的MVC框架,可以在構(gòu)建Web應(yīng)用時(shí),做到UI或者視圖與業(yè)務(wù)應(yīng)用邏輯清晰分離,應(yīng)用邏輯和后端數(shù)據(jù)的清晰分離,同時(shí)還兼有測(cè)試驅(qū)動(dòng)開(kāi)發(fā)模式。ASP.NET MVC框架為Web應(yīng)用的目錄結(jié)構(gòu)定義了一個(gè)專(zhuān)用的模式,還提供了一個(gè)Controller基類(lèi),用來(lái)處理發(fā)送到實(shí)體的請(qǐng)求。目前在微軟的Visual Studio 2010 開(kāi)發(fā)平臺(tái)中提供了專(zhuān)用的MVC模板,利用該模板提供的輔助功能,開(kāi)發(fā)人員可以迅速完成Web應(yīng)用開(kāi)發(fā)。
本系統(tǒng)采用.NET框架,利用ASP.NET+C#技術(shù),并結(jié)合MVC設(shè)計(jì)模式來(lái)設(shè)計(jì)完成系統(tǒng)的主要功能,系統(tǒng)開(kāi)發(fā)平臺(tái)采用微軟的Visual Studio 2010。
2.1 系統(tǒng)功能模塊設(shè)計(jì)
畢業(yè)設(shè)計(jì)(論文)是對(duì)學(xué)生掌握知識(shí)和運(yùn)用知識(shí)能力的綜合檢查?;贛VC的高校畢業(yè)論文管理系統(tǒng)實(shí)現(xiàn)了畢業(yè)設(shè)計(jì)課題的申報(bào)、審核、學(xué)生選題等環(huán)節(jié)的科學(xué)高效管理,實(shí)現(xiàn)了學(xué)生自主選題和教師自主選擇學(xué)生的網(wǎng)上雙向選擇,并且可以對(duì)畢業(yè)設(shè)計(jì)課題的難度、工作量等進(jìn)行監(jiān)控;同時(shí),系統(tǒng)還可對(duì)畢業(yè)設(shè)計(jì)進(jìn)程進(jìn)行控制,確保指導(dǎo)教師與畢業(yè)設(shè)計(jì)學(xué)生實(shí)時(shí)、高效、通暢地互動(dòng),在一定程度上保障了畢業(yè)設(shè)計(jì)的質(zhì)量。本系統(tǒng)采用B/S模式,并結(jié)合先進(jìn)且較成熟的ASP.NET MVC技術(shù),采用統(tǒng)一的用戶(hù)認(rèn)證方式,對(duì)不同用戶(hù)的操作和數(shù)據(jù)安全進(jìn)行有效控制,圖3為畢業(yè)論文管理系統(tǒng)的工作流程[4]。
2.2 系統(tǒng)體系結(jié)構(gòu)
由于畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)中涉及到的用戶(hù)權(quán)限和業(yè)務(wù)相對(duì)復(fù)雜,為了降低層與層之間的耦合度,提高代碼復(fù)用率,本系統(tǒng)采用MVC模式和基于.NET的B/S架構(gòu)相結(jié)合的體系,系統(tǒng)實(shí)現(xiàn)的體系結(jié)構(gòu)如圖4所示。
視圖層為學(xué)生、指導(dǎo)教師、院(系)管理員等相關(guān)人員提供對(duì)應(yīng)用程序的訪問(wèn)服務(wù),這層主要是用戶(hù)通過(guò)瀏覽器向各類(lèi)用戶(hù)提供界面上的操作??刂茖邮墙邮諒囊晥D層傳來(lái)的用戶(hù)請(qǐng)求,并且依據(jù)不同的請(qǐng)求,調(diào)用與之相對(duì)應(yīng)的業(yè)務(wù)處理對(duì)象來(lái)執(zhí)行業(yè)務(wù)邏輯,獲取執(zhí)行結(jié)果,并選擇適合的視圖組件返回給用戶(hù),實(shí)現(xiàn)了MVC模式中控制器的功能。模型層主要由業(yè)務(wù)外觀層、業(yè)務(wù)規(guī)則層和數(shù)據(jù)庫(kù)訪問(wèn)層組成,其中業(yè)務(wù)邏輯層由純業(yè)務(wù)邏輯類(lèi)facade類(lèi)組成;業(yè)務(wù)外觀層負(fù)責(zé)處理畢業(yè)設(shè)計(jì)(論文)管理過(guò)程中具體的業(yè)務(wù)邏輯;業(yè)務(wù)規(guī)則層主要處理畢業(yè)設(shè)計(jì)(論文)管理過(guò)程中的用戶(hù)權(quán)限管理、畢業(yè)論文題目審核規(guī)則管理、學(xué)生選題規(guī)則管理等規(guī)則。數(shù)據(jù)訪問(wèn)層為業(yè)務(wù)邏輯層提供統(tǒng)一的數(shù)據(jù)服務(wù),主要實(shí)現(xiàn)訪問(wèn)數(shù)據(jù)庫(kù)中表對(duì)象的一些基本操作,可以返回?cái)?shù)據(jù)集,完成從關(guān)系數(shù)據(jù)庫(kù)表到實(shí)際應(yīng)用類(lèi)的映射。
本系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server 2005搭建,利用支持MVC設(shè)計(jì)模式的Microsoft Visual Studio 2010作為開(kāi)發(fā)工具。
3.1 系統(tǒng)實(shí)現(xiàn)
筆者以本系統(tǒng)中位于Model層中的數(shù)據(jù)訪問(wèn)類(lèi)的實(shí)現(xiàn)和View層功能的實(shí)現(xiàn)為例,簡(jiǎn)要敘述基于MVC的畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)的實(shí)現(xiàn)過(guò)程。由于篇幅有限,在此只羅列部分關(guān)鍵代碼。
using System.Data;
using System.Data.SqlClient;
namespace biyeshej.commonclass
{ public class datalink
{public static string strconn = ConfigurationSettings.AppSettings["connectionString"];
//數(shù)據(jù)庫(kù)連接
public static SqlConnection linkdb()
{ SqlConnection cn = new SqlConnection(strconn);
return cn; }
//數(shù)據(jù)綁定
public void BindDG(GridView dg, string id, string strSQL, string Tname)
{SqlConnection conn = linkdb();
SqlDataAdapter sda = new SqlDataAdapter(strSQL, conn);
conn.Open();
DataSet ds = new DataSet();
sda.Fill(ds, Tname);
dg.DataSource = ds.Tables[Tname];
dg.DataKeyNames = new string[] { id };
dg.DataBind();
conn.Close();}
//修改數(shù)據(jù)
public void operateData(string strsql)
{ …………. }
//查詢(xún)數(shù)據(jù)庫(kù)表并返回結(jié)果表
public DataTable selectDataBaseTb(string tempStrlSQL)
{ …………… }
//判斷是否空表
public bool is_emptytable(string tablename)
{ ...... }
//生成用戶(hù)登錄時(shí)的隨機(jī)驗(yàn)證碼
public string yanzhenma()
{ ………………. }
//判斷某表數(shù)據(jù)是否可修改
public bool non_edittable(string tbname)
{ ............. }
// 判斷是否選題滿(mǎn)員(初選時(shí))
public bool is_full(int tmbh)
{ ....................... }
// 判斷是否選題滿(mǎn)員(教師選學(xué)生時(shí)、或系部調(diào)配時(shí))
public bool is_full_jieguo(string kid)
{ ....................... }}}
系統(tǒng)中的用戶(hù)登錄模型負(fù)責(zé)接收來(lái)自UI層的用戶(hù)號(hào)、用戶(hù)密碼、用戶(hù)身份等數(shù)據(jù),并將這些數(shù)據(jù)傳送到控制層??刂茖痈鶕?jù)不同用戶(hù)身份數(shù)據(jù),返回相應(yīng)的不同數(shù)據(jù)給用戶(hù),從而在View層中顯示不同的內(nèi)容,圖5和圖6展示了根據(jù)不同用戶(hù)身份返回不同的View內(nèi)容。
圖5 系統(tǒng)用戶(hù)登錄界面
圖6 系統(tǒng)的View層
3.2 系統(tǒng)性能分析
國(guó)內(nèi)外研究表明:以ASP.NET MVC技術(shù)為代表的軟件設(shè)計(jì)框架在Web應(yīng)用系統(tǒng)中得到廣泛的應(yīng)用。近年來(lái),基于ASP.NET MVC框架結(jié)構(gòu)的Web開(kāi)發(fā)模式由于能夠降低耦合度、提高代碼的可重用性、減少維護(hù)的成本、增強(qiáng)系統(tǒng)的可擴(kuò)展性,并且能夠應(yīng)用到大型項(xiàng)目的開(kāi)發(fā)之中,因此越來(lái)越受到軟件開(kāi)發(fā)人員的追捧。同時(shí)為方便管理、整合各種數(shù)據(jù),便于用戶(hù)檢索數(shù)據(jù)信息,在設(shè)計(jì)本系統(tǒng)后臺(tái)數(shù)據(jù)庫(kù)時(shí),筆者采用了大容量存儲(chǔ)技術(shù),合理地利用了數(shù)據(jù)庫(kù)系統(tǒng)的事務(wù)、存儲(chǔ)過(guò)程、和觸發(fā)器等技術(shù),優(yōu)化服務(wù)器配置,保證了數(shù)據(jù)的安全性和一致性,使其滿(mǎn)足海量數(shù)據(jù)的并發(fā)訪問(wèn)和存儲(chǔ)的需要。
本文闡述了MVC設(shè)計(jì)模式的概念,并應(yīng)用到高校畢業(yè)論文管理系統(tǒng)的設(shè)計(jì)中,對(duì)基于MVC的Web應(yīng)用程序進(jìn)行了分析。基于MVC的畢業(yè)論文管理系統(tǒng)滿(mǎn)足了高校信息化網(wǎng)絡(luò)平臺(tái)發(fā)展的進(jìn)一步需求,該設(shè)計(jì)模式不僅大大縮短了項(xiàng)目開(kāi)發(fā)周期、降低了軟件設(shè)計(jì)難度、節(jié)約了成本,而且實(shí)踐證明該產(chǎn)品具有部署快、后期維護(hù)容易、用戶(hù)使用門(mén)檻低等特點(diǎn),實(shí)現(xiàn)了為學(xué)生、指導(dǎo)教師提供人性化、一站式的服務(wù),提高了高校畢業(yè)設(shè)計(jì)(論文)管理工作的效率。
[1] 徐朝輝,樊銀亭.MVC設(shè)計(jì)模式在.NET三層結(jié)構(gòu)開(kāi)發(fā)中的研究和實(shí)現(xiàn)[J].北京電子科技學(xué)院學(xué)報(bào),2007(6):70-73.
[2] 段升杰.淺談軟件三層架構(gòu)開(kāi)發(fā)[J].信息與電腦:理論版,2010(5):44.
[3] 百度百科.MVC設(shè)計(jì)模式[EB/OL].(2012-09-14)[2013-02-01].http://baike.baidu.com/view/8927765.html.
[4] 曾俊國(guó).基于web2.0的畢業(yè)論文管理系統(tǒng)的研究[J].價(jià)值工程,2012(11):211-212.
[5] 李可勝.畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與研究[J].數(shù)字技術(shù)與應(yīng)用,2011(8):84-84,87.
[6] 趙偉,王志華.基于.NET和MVC的CMS設(shè)計(jì)及優(yōu)化[J].科學(xué)技術(shù)與工程,2013(1):772-773.
AStudyofGraduate-thesisManagementSystemforUniversitiesBasedonMVC
ZENGJunguo,LUOGang
(Deans Office,Chengdu Technological University, Chengdu 610031, China)
In order to vercome the drawbacks in traditional graduation project management system which has high coupling, low reusability, and difficulties for deployment and post-maintenance, more popular MVC-based web software development program is proposed in this paper .The first part describes the connection and difference between MVC and traditional three-layer architecture; and then analyzes graduation project function and work flow management system to determine the system architecture based on MVC; finally, the realization of some parts of the system function is given. According to the test, the system runs in good condition, is easy for maintenance and function expansion, high reusability, software deployment convenience,and meets the university educational administration information management needs.
MVC;university; educational administration management; informationization; graduation project
2013-02-05
成都工業(yè)學(xué)院青年基金項(xiàng)目“CEC畢業(yè)設(shè)計(jì)(論文)管理系統(tǒng)”(KY0911023B)
曾俊國(guó)(1977- ),男(漢族),四川鄰水人,講師,碩士,研究方向:軟件工程、數(shù)據(jù)挖掘、計(jì)算機(jī)網(wǎng)絡(luò)。
TP391
A
2095-5383(2013)02-0018-04