【摘要】隨著社會信息化水平的不斷提高,社會中的各個領(lǐng)域?qū)τ谛畔⑾到y(tǒng)的需求增加。各種開發(fā)框架也不斷涌現(xiàn)。ASP.NETMVC框架是微軟的MVC模式的ASP.NETWeb應(yīng)用程序(WebApplication)框架,它易于開發(fā),使得測試更加速和簡捷。本文就ASP.NETMVC框架開發(fā)特性進(jìn)行一定的分析與探討.
【關(guān)鍵詞】ASP.NET;MVC;框架特性
MVC全稱為Mode1——VieW_—-Controller,它是模型一視圖一控制器的簡寫,一種程序設(shè)計模式,這種模式將業(yè)務(wù)邏輯、程序控制、界面顯示進(jìn)行分離,把業(yè)務(wù)邏輯和數(shù)據(jù)處理作為模型獨立出來,在修改界面和用戶交互的過程中,模型部分不需要修改。模型是處理數(shù)據(jù)邏輯和業(yè)務(wù)邏輯的組件,模型對象的一個重要任務(wù)就是在數(shù)據(jù)庫中存取數(shù)據(jù)。視圖是處理數(shù)據(jù)顯示組件,視圖依據(jù)模型對象創(chuàng)建。控制器是處理用戶交互的組件,控制器從視圖中獲取數(shù)據(jù),把獲取的數(shù)據(jù)發(fā)送給模型。如圖1所示。
Asp.netMVC分層設(shè)計,有利于開發(fā)人員協(xié)同開發(fā)。比如一個開發(fā)團(tuán)隊,分成4個小組,我們暫時稱其為A、B、C、D組。當(dāng)一個軟件項目完成分析設(shè)計后,項目組拿到詳細(xì)設(shè)計說明書。此時,四個小組可以同步進(jìn)行開發(fā)工作。A小組根據(jù)設(shè)計說明書進(jìn)行html前端頁面的開發(fā)(視圖開發(fā)設(shè)計),腳本的編寫;B小組根據(jù)設(shè)計說明書進(jìn)行控制器的開發(fā),控制邏輯C小組根據(jù)設(shè)計說明書開發(fā)模型,模型部分主要包括數(shù)據(jù)處理、業(yè)務(wù)邏輯處理;D小組則根據(jù)詳細(xì)設(shè)計說明書進(jìn)行數(shù)據(jù)庫的設(shè)計開發(fā)。
Asp.netMVC分層設(shè)計可以分解軟件的開發(fā)過程,可以使不同的開發(fā)小組專注與開發(fā)摸一個組件。比如:在不依賴業(yè)務(wù)邏輯的情況下進(jìn)行視圖的分析設(shè)計。程序的各種測試更加容易。Asp.netMVC分層設(shè)計簡化了分組開發(fā)。幾.個開發(fā)小組可同時開發(fā)視圖組件、控制器組件和業(yè)務(wù)邏輯組件。
Asp.netMVC分層設(shè)計的特性:(1)多個不同的視圖對應(yīng)一個模型,大大減少了代碼的復(fù)制,易于測試和維護(hù);(2)三層分離設(shè)計,只要改變視圖組件,就會滿足系統(tǒng)的改變需求;(3)控制器組件包括了用戶的請求處理,這樣不同的視圖和模型組合,能夠響應(yīng)不同的用戶請求。
Asp.netMVC分層設(shè)計應(yīng)用于不同開發(fā)環(huán)境中或用戶有特殊需求時,其有以下幾個方面的不足:(1)對于非常簡單的程序,也被要求遵守Asp.netMVC分層設(shè)計原則,會增加結(jié)構(gòu)的復(fù)雜度,可能降低程序運行效率;(2)控制器組件與視圖組件之間的密切關(guān)系,在一定程度上會妨礙它們的獨立性;(3)模型組件的接口并不完全相同,為了獲取需要的數(shù)據(jù),在交互時就會需要進(jìn)行多次的調(diào)用訪問,頻繁的訪問,特別是數(shù)據(jù)庫訪問對操作性有害,造成程序效率低下。
Asp。netMFC分層設(shè)計是以ASP.NET平臺為基礎(chǔ),它使用了MVC設(shè)計模式,具有結(jié)構(gòu)清晰明確,擴(kuò)展性好等特點。Asp.netMVC分層設(shè)計把整個軟件系統(tǒng)分為3個基本部分:模型,視圖和控制器。模型組件主要負(fù)責(zé)應(yīng)用程序的業(yè)務(wù)邏輯:視圖組件定義屏幕上的顯示,以及用戶的數(shù)據(jù)流向;控制器組件定義對用戶請求的響應(yīng),進(jìn)而把用戶的請求變成對模型組件的命令,最后來更新視圖組件的數(shù)據(jù),反映系統(tǒng)的信息變化。
模型組件。模型組件作為Asp.netMvC分層設(shè)計的重要組成部分,包括系統(tǒng)的邏輯業(yè)務(wù)和數(shù)據(jù)庫操作。模型組件不僅能對系統(tǒng)中的數(shù)據(jù)和業(yè)務(wù)邏輯部分進(jìn)行顯示,而且提供了處理各種問題的操作流程。模型組件與視圖組件間保持著一對多的關(guān)系,一個模型組件可以對應(yīng)多個視圖組件,并且能為視圖組件提供訪問數(shù)據(jù)的操作過程,獲取視圖顯示所需要的數(shù)據(jù)。視圖組件。
視圖組件是用戶與系統(tǒng)間的交互界面,主要負(fù)責(zé)數(shù)據(jù)顯示,即由控制器組件將用戶或者系統(tǒng)的請求發(fā)送給模型組件進(jìn)行處理,模型組件再結(jié)合用戶的請求完成相應(yīng)的操作,再由控制器傳遞給視圖組件進(jìn)行顯示。視圖組件中不存在任何業(yè)務(wù)邏輯代碼,視圖組件在本質(zhì)上可以看做是一個可以顯示數(shù)據(jù)、用戶能夠進(jìn)行輸入的界面。一個視圖組件只能對應(yīng)一個控制器組件。
控制器組件?刂破鹘M件作為連接模型組件和試圖組件的橋梁,是Asp.netMVC分層設(shè)計的中間組件,它接收用戶的輸入,對用戶的請求進(jìn)行響應(yīng)?刂破鹘M件對模型組件、視圖組件的交互進(jìn)行協(xié)調(diào),使模型組件和相應(yīng)的視圖組件相互配合,向視圖組件輸出數(shù)據(jù),視圖組件呈現(xiàn)處理結(jié)果,完成用戶請求。在ASP.NETMVC架構(gòu)中,用戶的請求都會被路由到控制器組件,控制器組件執(zhí)行請求、操作模型組件,把視圖組件進(jìn)行傳輸。控制器組件被置于/Controllers目錄中,模型組件放在/Models目錄中,視圖組件放在/views目錄中。它是默認(rèn)的目錄結(jié)構(gòu)?刂破鹘M件類的命名一定要以Controller結(jié)尾,每個控制器組件類在/views目錄中有一個對應(yīng)的子目錄,命名要遵循子目錄和控制器組件類一致的原則。
在ASP.NETMVC項目中,應(yīng)用程序項目通過Globa1.asax和Controllers進(jìn)行URL映射。當(dāng)用戶進(jìn)行頁面請求時,該請求會被發(fā)送到控制器組件中,開發(fā)人員在控制器組件中創(chuàng)建相應(yīng)的方法將請求發(fā)送到視圖組件中,視圖組件會使用在控制器組件中創(chuàng)建的相應(yīng)的變量呈現(xiàn)頁面。用戶在瀏覽器中進(jìn)行不同的頁面請求時,該運行過程將會再次執(zhí)行。對于模型組件來說,控制器組件通常情況下使用模型組件操作數(shù)據(jù)庫。在模型組件中,模型組件能夠?qū)鹘y(tǒng)的關(guān)系型數(shù)據(jù)庫映射成面向?qū)ο蟮拈_發(fā)模型,開發(fā)人員能夠使用面向?qū)ο蟮乃枷脒M(jìn)行數(shù)據(jù)庫的數(shù)據(jù)存取。
結(jié)語
ASP.NETMVC框架的推出,使程序結(jié)構(gòu)更加清晰、靈活,提高了程序的可測試性和代碼的可重用性。由此可見ASP.NETMVC在Web應(yīng)用程序開發(fā)中專業(yè)性強(qiáng),優(yōu)勢明顯,利用它能夠很好的解決Web開發(fā)中遇到的各種問題。在項目開發(fā)的過程中,只要能解除對象之間的耦合性就可以采用,框架作為實現(xiàn)模式的一種載體,同一模式可適用于各種不同框架。由此可見,框架既能有效的約束開發(fā)人員的開發(fā)方式,也能強(qiáng)迫開發(fā)人員按照一種更優(yōu)架構(gòu)的方式來設(shè)計和開發(fā)應(yīng)用程序。
【參考文獻(xiàn)】
[1】許輝.基于ASP.NETMVC框架的Web設(shè)計[D】.計算機(jī)光盤軟件與應(yīng)用,2014(06)。
[2]況蔚林.ASP.NETMVC開發(fā)模式研究.黑龍江科技信息,2015(21)。
轉(zhuǎn)載請注明來自:http://www.jinnzone.com/dianzijishulw/67418.html