姜 翠
(咸寧職業(yè)技術(shù)學(xué)院,湖北咸寧437100)
?
MVC設(shè)計模式在ASP.NET平臺中的應(yīng)用探究
姜翠
(咸寧職業(yè)技術(shù)學(xué)院,湖北咸寧437100)
[摘要]近些年來,隨著MVC(Model- View- Controller)設(shè)計模式的日趨成熟化,它在ASP.NET平臺上的應(yīng)用也越來越廣泛。作為軟件設(shè)計的經(jīng)典框架,它通過表示層、數(shù)據(jù)層與業(yè)務(wù)層等復(fù)合型結(jié)構(gòu)促成了對計算機視圖與控制器功能的實現(xiàn),提升了軟件開發(fā)的系統(tǒng)性與安全性。本文對MVC設(shè)計模式的基本功能及其在ASP.NET平臺中的應(yīng)用特點進行了解析,同時在用戶信息查詢的基礎(chǔ)上,對ASP.NET平臺當中MVC設(shè)計模式的具體應(yīng)用進行具體的探討。
[關(guān)鍵詞]ASP.NET;MVC設(shè)計模式;視圖;控制器;模型
ASP.NET來自于微軟公司的新計算體系平臺框架,是.NET框架的基本組成部分。該體系結(jié)構(gòu)在很大程度上支持了當前的網(wǎng)絡(luò)分布式應(yīng)用,對傳統(tǒng)的Web開發(fā)模型當中存在的復(fù)雜繁瑣性以及管理安全性差的缺陷進行了有效的改善,并且實現(xiàn)了比Web頁面技術(shù)更優(yōu)越的面向?qū)ο蠹夹g(shù)。但從全局來看,ASP.NET還有不足之處,比如它還依然要在傳統(tǒng)的Web頁面中顯示信息,且業(yè)務(wù)邏輯與流程控制之間的耦合性依然很高,不利于其工程性應(yīng)用的發(fā)展,同時也影響了用戶顯示問題模型與用戶操作I/O交互作用在主操作界面中的相對穩(wěn)定性。因此,本文采用了MVC設(shè)計模式結(jié)合ASP.NET框架,根據(jù)現(xiàn)實系統(tǒng)需求改變和調(diào)整所顯示的內(nèi)容及形式,希望妥善解決上述問題。
(一)MVC的基本理論
MVC的基本設(shè)計模式包括了模型(Model)、視圖(View)、控制器(Controller)三大組成部分。它誕生于20世紀70年代初期,是第一代基于視窗的計算機圖形用戶界面與用戶交互平臺。目前,ASP.NET技術(shù)在計算機的大型Web方面具有廣泛應(yīng)用,這也為MVC模式融入平臺提供了可能??梢哉f,MVC提升了Web應(yīng)用的可重用性與可擴展性,將數(shù)據(jù)訪問、業(yè)務(wù)邏輯和用戶接口完全隔離,并進一步強化了計算機項目的可擴展性、可維護性以及代碼復(fù)用功能,成為了當代設(shè)計交互式應(yīng)用中的基本標準。
如圖1中所展示,組成MVC設(shè)計模式的三部分為模型、視圖與控制器。它們彼此之間存在一定的松散耦合性,提高了程序的開發(fā)靈活性,避免重復(fù)性代碼的高出現(xiàn)率,達成了代碼重用功能。
視圖通過模型展示相關(guān)數(shù)據(jù)和邏輯關(guān)系,凸顯MVC設(shè)計模式在ASP.NET平臺中的重要性,也就是對不同形式的視圖進行有效顯示;控制器對軟件以及用戶之間的相關(guān)交互操作進行有效處理、控制,同時傳達模型的任何變化形式,保證用戶與模型之間時刻保持聯(lián)動性,同時也接收來自于用戶的所有信息,最后凸顯模型的計算控制能力,所以控制器從整體來看就是模型與視圖之間的協(xié)調(diào)組件;最后是模型,視圖實現(xiàn)了模型的存儲功能,而控制器則負責管理模型數(shù)據(jù),生成基于核心數(shù)據(jù)的計算關(guān)系和邏輯功能,使得模型更具獨立性。
從整體來看,視圖、控制器與模型三者之間是完全分離的,它們?yōu)槟P蛯崿F(xiàn)了多視圖顯示功能。但是它們之間又存在聯(lián)系,如果用戶改變了某個視圖控制器中有關(guān)模型的數(shù)據(jù),那么這個視圖的數(shù)據(jù)也會發(fā)生改變,牽動控制器中所有視圖的變化與更新。可以說,它反映了基于模型數(shù)據(jù)變化的一種信息傳播機制,也體現(xiàn)了MVC設(shè)計模式中三者之間的相互關(guān)系與各自功能關(guān)聯(lián)。
(二)MVC設(shè)計模式在ASP.NET平臺建設(shè)中所體現(xiàn)的優(yōu)勢
對ASP.NET平臺的建設(shè)可以在一定程度上強化MVC設(shè)計模式的開發(fā)及運用,凸顯MVC在平臺建設(shè)中的優(yōu)勢。
1.降低Web頁面依賴性
如前文所說,新的MVC設(shè)計模式減少了計算機系統(tǒng)對Web主頁面的依賴性,提升了對代碼的重用功能,這是因為MVC特別強調(diào)了ASP.NET平臺在建設(shè)過程中的頁面設(shè)計代碼分離。
2.ASP.NET平臺設(shè)計清晰化
MVC的加入讓模型能夠在同一時間內(nèi)建立并使用多個視圖,使得模型數(shù)據(jù)變化與傳播機制都發(fā)生改變,實現(xiàn)了所有關(guān)聯(lián)視圖與控制器之間的行為同步。正是這種同步性激發(fā)了MVC設(shè)計模式在運用程序中可拓展性的發(fā)揮,使得平臺在實現(xiàn)某些功能時更加輕松協(xié)調(diào),允許了多控制器的使用。在這種傳播機制下,模型的改變也提升了控制器獨立工作的能力。
3.MVC設(shè)計模式中模型的可移植性
MVC中的模型全部獨立于視圖之外,將它們單獨移植到某個ASP.NET之外的新平臺上,其操作方法就是在新平臺上對視圖與控制器數(shù)據(jù)進行全面修改。由此可見,MVC設(shè)計模式能夠為ASP.NET創(chuàng)造更多全新的平臺結(jié)構(gòu),讓MVC設(shè)計模式不僅局限于設(shè)計基本的系統(tǒng)界面。
(一)MVC的應(yīng)用模型分析
ASP.NET為MVC設(shè)計模式提供了直接可用的應(yīng)用環(huán)境,利用code- behind代碼對顯示頁面中用戶交互功能的處理。在這里,code- behind源代碼文件與.aspx文件之間相互對應(yīng),腳本語言、HTML代碼以及邏輯控制代碼之間的分離依靠源代碼文件得到最終的實現(xiàn)。此外,ASP. NET這一系統(tǒng)也通過表示層、數(shù)據(jù)層與業(yè)務(wù)層三層Web結(jié)構(gòu)劃實現(xiàn)了視圖與控制器功能,并將MVC中的三大部分映射回ASP.NET的平臺結(jié)構(gòu)里面,并基于MVC模式下對ASP.NET平臺系統(tǒng)的應(yīng)用模型進行進一步的構(gòu)建。以Web系統(tǒng)當中的“用戶信息查詢模塊”為例,應(yīng)用模型的建立基本實現(xiàn)了MVC在ASP.NET平臺中的應(yīng)用機制。如圖2。
(二)視圖實現(xiàn)
ASP.NET平臺的開發(fā)環(huán)境當中,視圖的設(shè)計更加地便捷。利用Visual Studio.NET便可獲得視圖設(shè)計所需的Web窗體、HTML控件以及各種各樣的組件。這些控件都鑲嵌于Web自定義系統(tǒng)之中,它們幫助計算機的Windows界面實現(xiàn)了對視圖的可視化設(shè)計,并且讓視圖與各個模塊中的.aspx文件也實現(xiàn)了一一對應(yīng),優(yōu)化了各個用戶界面的操作性。
圖1 MVC設(shè)計模式中各組件類型之間的功能關(guān)系示意圖
以XX企業(yè)的績效信息平臺為例,各個模塊與視圖當中的.aspx文件一一對應(yīng),系統(tǒng)當中的用戶界面都有與之相互對應(yīng)的.aspx文件進行匹配。在XX企業(yè)的績效信息平臺系統(tǒng)的設(shè)計過程中,通過對責任人、績效測量員、系統(tǒng)管理人員、企業(yè)員工用戶的需要進行分析,對測量、分析、修改、評價、查詢、指標管理等相關(guān)界面進行合理、科學(xué)的定義。這其中,“測量”這一核心業(yè)務(wù)流程最能說明視圖設(shè)計的實現(xiàn):系統(tǒng)為視圖的設(shè)計提供一定的過程選擇接口,依照相關(guān)的權(quán)限,企業(yè)測量人員對企業(yè)的績效考核過程進行選擇。在測量的過程中,系統(tǒng)提供了一定的時間選擇接口,視圖當中可以對每一個過程進行測量界面的顯示,相關(guān)的指標以及時間均為實測值。
(三)控制器實現(xiàn)
MVC設(shè)計模式的加入使得ASP.NET平臺在代碼分離功能機制方面得到了強化,它可以簡化視圖中的各個代碼,使控制器、模型之間的代碼分離,使每個.aspx文件都對應(yīng)一個后端代碼.cs,實現(xiàn)控制器功能,使Controller能夠更好地接收、截獲和處理來自于用戶的各種請求與突發(fā)事件。就以用戶數(shù)據(jù)查詢模塊視圖UserInfo.aspx所對應(yīng)的Controller為例,根據(jù)用戶所輸入的個人ID來查詢出他的基本信息,所以控制器的具體實現(xiàn)流程為:
Public class UserInfo:System.Web.UI.Page
{Protected System.Web.UI.WebControls.DataGrid dgU-serInfo;//聲明DataGrid控件}
Protected System.Web.UI.WebControls.Button btnSubm it;//聲明Button控件,提交按鈕
Protected System.Web.UI.WebControls.TextBox tbID;//聲明TextBox控件,用戶填寫ID數(shù)據(jù)
UserInfoBiz useInofo=new UserInfoBiz();//實例化對應(yīng)業(yè)務(wù)邏輯類
{Stringid=tbID.Text;//用戶輸入于textbox中的數(shù)據(jù)
dgUserIofo.DataSource=ds.Tables[0].DefaultView;//截取數(shù)據(jù)源
dgUserIofo.DataBind();//綁定控件,聯(lián)系到指定數(shù)據(jù)源}
void btnSubmit_Click(Object sender,EventArgs)//提交按鈕事件
(四)模型實現(xiàn)
模型在ASP.NET平臺的作用就是管理應(yīng)用程序域中的各種數(shù)據(jù)和行為,它銜接了數(shù)據(jù)庫與業(yè)務(wù)邏輯數(shù)據(jù),提升了系統(tǒng)的公共交互操作性。在基本類庫中定義DataBase類,將其變成能夠在系統(tǒng)平臺的公共數(shù)據(jù)庫中操作使用的基本類,做到基本類與數(shù)據(jù)庫之間的連接和交互。在此過程中,控制器以后端代碼.cs文件來組成新的Biz層,達到完善模型的目的。
圖2 在ASP.NET平臺中MVC設(shè)計模式的應(yīng)用
參考文獻:
[1]庫爾班江·托乎提.MVC設(shè)計模式在ASP.NET平臺中的應(yīng)用[J].信息系統(tǒng)工程,2015(2)∶14.
[2]陳佳.ASP.NET系統(tǒng)開發(fā)中MVC設(shè)計模式的應(yīng)用研究[J].計算機與網(wǎng)絡(luò),2009(7)∶46- 52.
[3]徐朝輝,樊銀亭.MVC設(shè)計模式在ASP.NET應(yīng)用開發(fā)中的研究和實現(xiàn)[J].電腦知識與技術(shù)(學(xué)術(shù)交流),2007,1 (6)∶1536- 1537.
[4]張原,張昭,劉蕊.基于MVC設(shè)計模式的虛擬實驗平臺模塊化設(shè)計[J].計算機工程與科學(xué),2013,35(8)∶125- 129.
[5]李園,陳世平.MVC設(shè)計模式在ASP.NET平臺中的應(yīng)用[J].計算機工程與設(shè)計,2009(7):152- 153.
[6]任艷斐.MVC設(shè)計模式在基于ASP.NET系統(tǒng)開發(fā)中的應(yīng)[J].科技廣場,2008(5)∶168- 169.
[中圖分類號]TP308
[文獻標識碼]A
[文章編號]1673- 0046(2016)4- 0183- 03