摘 要ASP.NET是軟件設(shè)計架構(gòu),主要通過業(yè)務(wù)層、數(shù)據(jù)層及表示層等符合架構(gòu)實現(xiàn)計算機控制器及視圖的功能。隨著我國科學(xué)技術(shù)的不斷發(fā)展,MVC設(shè)計模式也越來越成熟,其逐漸被廣泛應(yīng)用到ASP.NET平臺中?;诖?,本文就簡單闡述了MVC設(shè)計模式的概念,并且研究了其在ASP.NET平臺中的應(yīng)用。
【關(guān)鍵詞】ASP.NET MVC設(shè)計模式 應(yīng)用研究
ASP.NET是一種計算機的體系平臺框架,也是.NET框架的重要組成部分。ASP.NET體系結(jié)構(gòu)支持目前網(wǎng)絡(luò)分布式的應(yīng)用,傳統(tǒng)Web開發(fā)模型中具有復(fù)雜性,并且管理的安全性較差,其就對這些缺點進(jìn)行了完善,并且有效實現(xiàn)了面向?qū)ο蟮募夹g(shù)。從全面分析,ASP.NET還有多處不足,包括其要在傳統(tǒng)Web頁面中現(xiàn)實信息,流程控制及業(yè)務(wù)邏輯存在耦合性等等。所以,本文就將MVC設(shè)計模式應(yīng)用到ASP.NET平臺中,以此完善上述的問題。
1 MVC設(shè)計模式的概念
1.1 MVC設(shè)計模式的內(nèi)涵
MVC(model-view-controller)即模型-視圖-控制器,其在20世紀(jì)70年代初被提及,是第一代基于視窗的計算機圖像用戶交互平臺與界面。MVC架構(gòu)將程序分為3個部分:模型、視圖、控制器。
視圖指的是用戶交互界面,在MVC設(shè)計模式中,分別處理業(yè)務(wù)流程及程序界面顯示,視圖負(fù)責(zé)采集界面數(shù)據(jù)及用戶請求,并且將其精心處理,處理業(yè)務(wù)流程由模型部分完成。模型指的是業(yè)務(wù)流程的處理,它是MVC設(shè)計模式的重要內(nèi)容,具有系統(tǒng)的業(yè)務(wù)規(guī)則及核心流程。模型能夠接受視圖用戶數(shù)據(jù)及請求,并且對其進(jìn)行處理,將處理之后的結(jié)果交給視圖,業(yè)務(wù)流程的處理對其他模塊是封裝,只是提供模塊間的訪問接口,使模塊之間具有獨立性,便于維護(hù)的系統(tǒng)。在用戶對界面顯示有其它新的要求時,不需要對后臺業(yè)務(wù)邏輯進(jìn)行修改,而在業(yè)務(wù)邏輯發(fā)生變化的時候,能使用戶界面保持不變??刂破魇侵皋D(zhuǎn)發(fā)和接收用戶的請求,它從視圖接收用戶請求,并不處理用戶的業(yè)務(wù)數(shù)據(jù),而是根據(jù)用戶提供的業(yè)務(wù)信息傳遞給其相對的模型進(jìn)行處理,之后選擇對應(yīng)的視圖展示給用戶。
MVC設(shè)計模式把業(yè)務(wù)處理,程序輸入輸出控制及數(shù)據(jù)顯示分離開來,并且描述了不同對象間的通信方式,為系統(tǒng)開發(fā)提供了清晰的設(shè)計框架及方法,使得系統(tǒng)的可維護(hù)性,可擴展性,靈活性以及封裝性大大提高。在Web應(yīng)用中使用MVC模式,能夠限制模塊的功能范圍,有效降低系統(tǒng)耦合度,提高軟件代碼的復(fù)用率、性能及可用戶型,以此提高軟件的質(zhì)量。
2 ASP.NET平臺中MVC設(shè)計模式的應(yīng)用優(yōu)勢
2.1 使ASP.NET平臺設(shè)計更加清晰
MVC設(shè)計模式最重要的優(yōu)點就是能夠使一個模型在同一時間創(chuàng)建多個視圖并使用,改變模型傳播機制及數(shù)據(jù),同步所有的控制器及關(guān)聯(lián)視圖的行為,這種同步性充分發(fā)揮了其的可擴展性,使ASP.NET平臺在實現(xiàn)某些功能的過程中更加協(xié)調(diào)。在此種傳播機制中,有效提高了控制器的獨立工作能力。
2.2 可移植性
MVC模型都是相互獨立的,將他們?nèi)谌階SP.NET另外平臺中的操作方法就是修改另外平臺中的控制器及視圖數(shù)據(jù)。那么以此就可以看出來,MVC設(shè)計模式為ASP.NET提供了多個平臺結(jié)構(gòu),并不只是在基本的設(shè)計界面中。
3 ASP.NET平臺中MVC設(shè)計模式的應(yīng)用
3.1 系統(tǒng)的架構(gòu)
以某公司的績效平臺為例,共分為16個子系統(tǒng),每個子系統(tǒng)中具有6個功能模塊,根據(jù)用戶的使用需求,共分為4級登錄,每級用戶具有不同的權(quán)限及頁面視圖。全面考慮用戶的需求,用戶界面具有I/O交互、用戶操作及顯示問題的功能,不僅要求用戶界面穩(wěn)定,并且還要求其能夠根據(jù)用戶的不同需求調(diào)整顯示的形式和內(nèi)容,MVC設(shè)計模式就能夠很好的實現(xiàn)這些要求。此績效平臺根據(jù)Web三層結(jié)構(gòu)分為業(yè)務(wù)層、數(shù)據(jù)層及表示層,表示層實現(xiàn)了MVC設(shè)計模式的控制器及視圖功能,業(yè)務(wù)層及數(shù)據(jù)層中包含了模型。
3.2 模型的設(shè)計與實現(xiàn)
模型的主要目的就是對程序域中的數(shù)據(jù)和行為進(jìn)行管理,主要分為數(shù)據(jù)訪問層及業(yè)務(wù)邏輯層。數(shù)據(jù)訪問層對數(shù)據(jù)庫交互和操作進(jìn)行連接,處理與數(shù)據(jù)庫有關(guān)的操作;業(yè)務(wù)邏輯層通過控制器解決用戶的請求,之后處理業(yè)務(wù)邏輯,將處理之后的數(shù)據(jù)返到控制器中,便于控制器選擇視圖顯示。
3.2.1 業(yè)務(wù)邏輯層
在此績效平臺設(shè)計的過程中,首先定義業(yè)務(wù)處理對象及實體對象。業(yè)務(wù)處理對象對處理邏輯進(jìn)行封裝,并且調(diào)用邏輯模型,響應(yīng)反饋提交給對應(yīng)的視圖組件;業(yè)務(wù)實體對象使模型和視圖實現(xiàn)交互,通過屬性的定義對客戶端數(shù)據(jù)進(jìn)行描述及讀寫。以此實現(xiàn)了業(yè)務(wù)邏輯的重用。
此績效平臺主要是針對業(yè)務(wù)流程的,在整個過程中涉及了用戶、負(fù)責(zé)人及測量員三方面內(nèi)容,用戶能夠?qū)崿F(xiàn)數(shù)據(jù)的查詢、瀏覽及比較;負(fù)責(zé)人能夠?qū)崿F(xiàn)過程及指標(biāo)的評價和分析;測量員能夠?qū)y量參數(shù)輸入到系統(tǒng)中,并且將指標(biāo)的實際測量數(shù)據(jù)進(jìn)行計算。業(yè)務(wù)流程對象主要是根據(jù)業(yè)務(wù)的流程進(jìn)行抽取的,根據(jù)系統(tǒng)責(zé)任及問題域,使系統(tǒng)實體變?yōu)楦拍铑?,通過類之間的關(guān)聯(lián)抽取類,類方法為系統(tǒng)事件的識別及操作。由于考慮到系統(tǒng)的可擴展性,抽象出指標(biāo)目錄、過程對象、參數(shù)對象、指標(biāo)說明、明細(xì)表對象等業(yè)務(wù)實體對象,根據(jù)業(yè)務(wù)流程及對象,抽象出測量對象、過程分析評價對象、指標(biāo)分析評價對象等業(yè)務(wù)處理對象。
3.2.2 數(shù)據(jù)訪問層
此績效平臺訪問數(shù)據(jù)中具有數(shù)據(jù)庫交互與連接的基本操作,對公共基本類進(jìn)行了定義,其它訪問類繼承與公共基本類。測量員每個月都要提供實測值,這些數(shù)據(jù)都在臨時表中存放,在一定時間內(nèi)能夠?qū)ζ溥M(jìn)行多次的提交和修改。在提交完數(shù)據(jù)之后,責(zé)任人要對其進(jìn)行評價和分析,將分析評價之后的數(shù)據(jù)存入到數(shù)據(jù)庫表中,任何人都不能對其進(jìn)行修改。應(yīng)用程序在數(shù)據(jù)訪問層訪問層數(shù)據(jù)庫時是通過DataProvider實現(xiàn)的。
3.2.3 視圖的設(shè)計和實現(xiàn)
ASP.NET開發(fā)平臺中的視圖設(shè)計是通過aspx頁面實現(xiàn)的,.NET視圖設(shè)計中不僅有Web窗體、HTML、數(shù)據(jù)等控件,并且還具有用戶控件,通過此控件人們能夠?qū)崿F(xiàn)設(shè)計的可視化,另外,頁面設(shè)計的編寫還可以通過HTML設(shè)計工具進(jìn)行。
此績效平臺中,視圖對應(yīng)著各模塊中的.aspx設(shè)計工具,.aspx文件對應(yīng)著系統(tǒng)的各用戶界面。在本系統(tǒng)的設(shè)計過程中,根據(jù)用戶、管理人員、測量員及負(fù)責(zé)人的需求,定義多種界面,包括指標(biāo)管理、查詢分析、測量、用戶管理、分析評價等。系統(tǒng)通過過程選擇接口,測量員通過權(quán)限選擇考核過程,通過時間選擇接口,過程的測量界面顯示此過程中的指標(biāo)信息和選定時間實測值。提供指標(biāo)及參數(shù)的輸入相互關(guān)聯(lián),每個指標(biāo)對應(yīng)不同的輸入界面。
3.2.4 控制器的設(shè)計和實現(xiàn)
ASP.NET使用的是分散控制的形式,能夠分離視圖中的模型、代碼及控制器,每個aspx文件都對應(yīng)著一個后臺代碼,通過后臺代碼實現(xiàn)控制器功能。.aspx頁面會將控件調(diào)用的方法在分離類中實現(xiàn),.cs文件代碼能夠?qū)崿F(xiàn)控制器的功能。在此績效平臺中,控制器是模型和視圖的協(xié)調(diào)者,主要功能是接受并且處理用戶的請求,還能夠通過模型中業(yè)務(wù)邏輯的調(diào)用組件獲取數(shù)據(jù)對象,根據(jù)目前的狀態(tài)及業(yè)務(wù)操作結(jié)果選擇面向客戶的視圖,對顯示瀏覽頁面進(jìn)行控制。控制器與視圖和模型的交互為:測量員通過視圖將過程選擇的請求發(fā)出去,通過控制器讀取數(shù)據(jù)字典,之后提取過程信息,從而判斷用戶的身份是否與過程相匹配。
在加載.aspx頁面的時候,系統(tǒng)會調(diào)用控制器的Page-Load事件,通過讀取數(shù)據(jù)字典綁定指標(biāo)信息及每個月實測值,在綁定過數(shù)據(jù)之后,用戶界面呈現(xiàn)出這個月的指標(biāo)績效考核數(shù)據(jù)。
4 結(jié)束語
本文首先介紹了MVC設(shè)計模式的內(nèi)涵,并且闡述了ASP.NET平臺中MVC設(shè)計模式的優(yōu)勢,之后通過以某公司的績效平臺為例,闡述了ASP.NET平臺中MVC設(shè)計模式的應(yīng)用,通過此可以看出來,兩者相互結(jié)合具有較好的可擴展性,并且能夠?qū)崿F(xiàn)一個模型的多個視圖,也可以使用多個控制器相互獨立工作,并且模型發(fā)生改變的時候視圖會自動刷新。本文設(shè)計的績效平臺具有系統(tǒng)性,提高了代碼的復(fù)用率,并且降低了成本,不僅滿足了用戶的需求,還具有較好的安全性及維護(hù)性。
參考文獻(xiàn)
[1]張梅.淺析MVC設(shè)計模式在ASP.NET平臺中的應(yīng)用[J].移動信息,2015(09):00048-00048.
[2]滿高媛.MVC設(shè)計模式在ASP.NET框架中的應(yīng)用研究[J].軟件導(dǎo)刊,2016,15(04):149-151.
[3]姜翠.MVC設(shè)計模式在ASP.NET平臺中的應(yīng)用探究[J].太原城市職業(yè)技術(shù)學(xué)院學(xué)報,2016(04):183-185.
[4]肖洋.基于ASP.NET的MVC框架的應(yīng)用開發(fā)模式研究[J].電子技術(shù)與軟件工程,2016(02):63-63.
[5]李園,陳世平.MVC設(shè)計模式在ASP.NET平臺中的應(yīng)用[J].計算機工程與設(shè)計,2009,30(13):3180-3184.
[6]徐朝暉,樊銀亭.MVC設(shè)計模式在ASP.NET應(yīng)用開發(fā)中的研究和實現(xiàn)[J].微型電腦應(yīng)用,2007,23(10):4-6.
作者簡介
劉紅霞(1981-),女,山西省汾陽市人。碩士學(xué)位。助理講師。研究方向為計算機應(yīng)用技術(shù)。
作者單位
呂梁學(xué)院汾陽師范分校 山西省汾陽市 032200