劉育旺
隨著國家經(jīng)濟(jì)的發(fā)展,計(jì)算機(jī)技術(shù)日益完善,為更好的滿足人們對互聯(lián)網(wǎng)應(yīng)用的需求,基于.NET MVC框架的Web設(shè)計(jì)也在逐漸增多,使得現(xiàn)有Web的層次結(jié)構(gòu)愈加分明,結(jié)構(gòu)更加清晰。本文將從MVC優(yōu)點(diǎn)入手,結(jié)合MVC設(shè)計(jì)思想,重點(diǎn)研究基于.NET MVC框架的Web設(shè)計(jì)。
【關(guān)鍵詞】.NET MVC框架 Web 設(shè)計(jì)
在基于.NET MVC框架的Web出現(xiàn)以前,Web中的主要技術(shù)是ASP、JSP等技術(shù),這些技術(shù)的應(yīng)用很容易將業(yè)務(wù)邏輯與頁面顯示混合起來,并不利于分工與協(xié)作。同時(shí)由于在業(yè)務(wù)邏輯層中含有SQL語句,如果出現(xiàn)數(shù)據(jù)庫變化等,將直接影響到系統(tǒng)修改,其不利于系統(tǒng)維護(hù)。因此,基于.NET MVC框架的Web設(shè)計(jì)成為計(jì)算機(jī)領(lǐng)域研究重點(diǎn)。
1 MVC優(yōu)點(diǎn)
MVC的優(yōu)點(diǎn)主要體現(xiàn)在以下幾點(diǎn):
1.1 共享性
它主要是利用模型完成數(shù)據(jù)返回的,且可以利用視圖實(shí)現(xiàn)數(shù)據(jù)傳達(dá),并實(shí)現(xiàn)格式化,然后再將這些信息傳遞到用戶手中,在數(shù)據(jù)分離形式的作用下,也可以有效提升系統(tǒng)代碼的移植性與重用性。
1.2 控制性
這一點(diǎn)主要表現(xiàn)在控制器對業(yè)務(wù)的控制上,它能夠結(jié)合用戶實(shí)際情況完成控制,然后從模型層中獲得必要的信息,再將這些信息傳遞到視圖層中,并讓這些數(shù)據(jù)顯現(xiàn)出來,這樣也可以有效提升應(yīng)用程序的可配置性與靈活性。
2 MVC設(shè)計(jì)思想
MVC主要由三部分構(gòu)成,分別為模型層、視圖層以及控制器層。為做好NVC設(shè)計(jì),就需要充分了解這三個(gè)層次:
2.1 視圖層
它所代表的是同網(wǎng)頁用戶的應(yīng)用界面,也就是Web中的HTML頁面。一般來講,視圖層主要是將系統(tǒng)中的數(shù)據(jù)呈現(xiàn)出來,且為用戶提供有利于交互的界面,這樣一來也就減少了地其他業(yè)務(wù)的處理。在實(shí)際利用的過程中,視圖通常需要提交數(shù)據(jù)用戶以后再接受其他數(shù)據(jù),然后再將這些數(shù)據(jù)以用戶需求的方式體現(xiàn)出來,同時(shí),用戶也會利用視圖層將自己的請求傳送到模型中。
2.2 模型層
它是MVC框架中最重要的組成部分,是實(shí)現(xiàn)系統(tǒng)邏輯處理的重要組成部分。在模型接收來自視圖層的請求以后,就會自動處理,然后再將處理結(jié)果在控制器的作用下回饋給視圖層。在這一過程中,控制器與視圖層均是通過操作的方式進(jìn)行工作的。
2.3 控制層
對于控制器來說,其功能是將用戶發(fā)出的請求反映給模型,然后再將模型所給出的結(jié)果反映給用戶,可以說控制層是視圖層與模型之間的中轉(zhuǎn)環(huán)節(jié),是反饋用戶請求的重要力量,但它并不參與數(shù)據(jù)處理工作。
3 基于.NET MVC框架的Web設(shè)計(jì)
對于常規(guī)Web應(yīng)用系統(tǒng)來說,主要分為表示層、業(yè)務(wù)層以及數(shù)據(jù)庫層幾個(gè)部分,在表示層中,只有視圖與控制器兩部分;在業(yè)務(wù)層中有業(yè)務(wù)邏輯層、實(shí)體層、數(shù)據(jù)訪問及其接口層;在數(shù)據(jù)層中僅有數(shù)據(jù)庫。要做好基于.NET MVC框架的Web設(shè)計(jì),應(yīng)從以下幾方面入手:
3.1 表示層
對于.NET MVC框架來說,在ASP.NET的作用下能夠獲得良好且有利于MVC設(shè)計(jì)實(shí)現(xiàn)的環(huán)境。開發(fā)人員只要利用.aspx頁面中的開發(fā)用戶接口就可以將視圖展示出來,同時(shí)也可以將控制器中的功能體現(xiàn)出來。模型主要對應(yīng)的則是業(yè)務(wù)應(yīng)用部分。為做好基于.NET MVC框架的Web設(shè)計(jì),可以在頁面控制器的作用下優(yōu)化MVC,然后在應(yīng)用程序各個(gè)頁面的公用方法中編入基類,這樣一來,所有頁面中都存在基類,它們不僅可以將自己原有的內(nèi)容體現(xiàn)出來,還具有其他作用。
3.2 業(yè)務(wù)層
對于業(yè)務(wù)層來說,它是MVC設(shè)計(jì)中十分重要的一部分,也是基于.NET MVC框架的Web設(shè)計(jì)基礎(chǔ),在這一部分的設(shè)計(jì)中應(yīng)從以下幾方面入手:
(1)保證業(yè)務(wù)邏輯與數(shù)據(jù)實(shí)體相分離,兩者屬于不同的組成部分,對于業(yè)務(wù)邏輯類來說,主要是利用實(shí)體對象完成業(yè)務(wù)規(guī)則與邏輯實(shí)現(xiàn)的,而實(shí)體層則有自己的實(shí)體對象,一般來講只有屬性,不存在方法,所以主要用于數(shù)據(jù)實(shí)體展現(xiàn)。
(2)分離數(shù)據(jù)訪問與業(yè)務(wù)。在這一部分中主要涵蓋了數(shù)據(jù)訪問層及其接口層,它的主要作用是讓業(yè)務(wù)邏輯層可以全面的描述業(yè)務(wù)規(guī)則,這樣一來就可以用數(shù)據(jù)訪問層完成實(shí)體對象與數(shù)據(jù)庫交互。為做好基于.NET MVC框架的Web設(shè)計(jì),應(yīng)將數(shù)據(jù)訪問接口層加入到訪問層與業(yè)務(wù)邏輯層之間,這樣不僅可以起到工廠模式的作用還能讓數(shù)據(jù)訪問方法構(gòu)成抽象接口,這樣就可以將業(yè)務(wù)邏輯層與數(shù)據(jù)訪問層分離開來,同時(shí)也便于配置文件的修改。
(3)為做好基于.NET MVC框架的Web設(shè)計(jì),還要在訪問層中應(yīng)用NHibernate工具,它是以.NET為基礎(chǔ)建立起來的關(guān)系型數(shù)據(jù)庫,屬于對象持久化類庫的一種。在NHibernate中不必編寫SQL語句,它可以將相關(guān)的映射信息保留下來,并存儲到原數(shù)據(jù)中,這樣就可以讓代碼與對象之間存在一定的關(guān)聯(lián)性,并自動生成SQL語句,這樣也可以讓對象存儲到表與字段中。
3.3 模型層
由于模型是應(yīng)用程序的中心,其中涵蓋了很多與應(yīng)用程序相關(guān)的內(nèi)容,所以,在實(shí)際設(shè)計(jì)中,應(yīng)進(jìn)一步強(qiáng)化應(yīng)用程序的持久化。對于基于.NET MVC框架的Web設(shè)計(jì)來說,可以將LINQ-TO-SQL應(yīng)用其中,原因在于這種設(shè)計(jì)方式不僅有利于發(fā)布,還可以將.NET平臺與LINQ機(jī)制結(jié)合在一起,這也是有效提升數(shù)據(jù)庫處理能力的有效方式。在設(shè)計(jì)中,可以先為應(yīng)用程序創(chuàng)建DAL,但不需要編寫代碼,然后再做進(jìn)一步細(xì)分,并用LINQ完成語句查詢,且從數(shù)據(jù)庫中找出所需的實(shí)體對象。在設(shè)計(jì)完成以后,LINQ-TO-SQL就可以將不必要的細(xì)節(jié)忽略,這樣既能有效提升數(shù)據(jù)庫操作的便利性,也能進(jìn)一步強(qiáng)化業(yè)務(wù)邏輯開發(fā),更可以加快數(shù)據(jù)應(yīng)用程序開發(fā)速度。
3.4 控制層
由于控制層主要用于用戶請求與輸入處理,然后再將結(jié)果反饋給客戶端,同時(shí)完成數(shù)據(jù)集合與處理,并為其呈現(xiàn)合適的視圖,這樣就可以將隱藏其中的視圖代碼消除。為做好設(shè)計(jì)首先應(yīng)創(chuàng)建合適的模型,并全面檢查數(shù)據(jù)訪問與執(zhí)行狀態(tài),且提供一定的面向?qū)ο髷?shù)據(jù),這樣就可以讓數(shù)據(jù)與方法結(jié)合在一起,且構(gòu)成一定的視圖。在.NET MVC框架完成以后,也可以更好的完成各個(gè)元素之間的協(xié)調(diào)與組織,這也是有效強(qiáng)化程序元素交互的有效方式。為進(jìn)一步做好應(yīng)用程序測試,還要做好類顯示輸出,以便為用戶輸入奠定基礎(chǔ),盡管編寫程序相對復(fù)雜,但且會因.NET MVC框架的不同,將業(yè)務(wù)邏輯分離開,這樣也可以有效提升單元測試效率。
3.5 視圖層
在基于.NET MVC框架的Web設(shè)計(jì)中,視圖層主要用于模型展示,在視圖層的作用下可以將瀏覽器中的HTML頁面展示出來,所以,在實(shí)際時(shí)可以利用微軟控件實(shí)現(xiàn)控制,這樣也可以讓HTML更加簡潔與高效。然后通過.NET MVC提供的相關(guān)說明了解各個(gè)控件的作用,這樣就可以順利完成視圖層設(shè)計(jì)與開發(fā),相關(guān)開發(fā)也可以有效提升工作效率。在視圖層設(shè)計(jì)完成以后,還可以順利完成視圖檢查等,尤其是在編譯階段,可以隨時(shí)發(fā)現(xiàn)隱藏在其中的錯(cuò)誤與缺陷,視圖模板也將變得更加清晰。
3.6 框架特點(diǎn)
之所以要重視基于.NET MVC框架的Web設(shè)計(jì),主要是由于在基于.NET MVC框架的Web設(shè)計(jì)中,Web中的三層框架帶有一定的細(xì)分性,不僅可以讓結(jié)構(gòu)更加清晰,還能進(jìn)一步完備相關(guān)功能,進(jìn)而讓系統(tǒng)變得更具有條理性與便捷性。其次,做好.NET MVC框架設(shè)計(jì),可以讓顯示層與應(yīng)用層相互分離,也可以進(jìn)一步做好頁面修改,這也是實(shí)現(xiàn)單元測試,強(qiáng)化系統(tǒng)靈活性的有效方式。再者,在基于.NET MVC框架的Web設(shè)計(jì)實(shí)現(xiàn)以后,還可以最大程度的減少依懶性,由于前端頁面過于復(fù)雜,需要共享的代碼也很多,這就需要利用MVC模式完成分離等,這也是有效強(qiáng)化管理,做好修改的有效措施。最后,在基于.NET MVC框架的Web設(shè)計(jì)中,不僅可以讓數(shù)據(jù)訪問與業(yè)務(wù)邏輯區(qū)分開來,還可以強(qiáng)化系統(tǒng)的可移植性與持久性,尤其是在工廠模式的作用下,也可以進(jìn)一步突出依賴倒置原則,且最大程度的減少數(shù)據(jù)訪問層給系統(tǒng)帶來的變化。
4 結(jié)束語
之所以要做好Web設(shè)計(jì),主要是為了更好彌補(bǔ)原有設(shè)計(jì)中的不足,為實(shí)現(xiàn)這一目標(biāo),基于.NET MVC框架的Web設(shè)計(jì)成為重點(diǎn),在這樣的Web設(shè)計(jì)完成以后,不僅有效提升了系統(tǒng)靈活性,還進(jìn)一步提升了可維護(hù)性,同時(shí)也有效降低了代碼編寫量與復(fù)雜性,促進(jìn)了開發(fā)效率早日完成,因此,應(yīng)重視基于.NET MVC框架的Web設(shè)計(jì)。
參考文獻(xiàn)
[1]周文紅.基于ASP.NET MVC框架的Web應(yīng)用開發(fā)[J].計(jì)算機(jī)與現(xiàn)代化,2013(10):197-199.
[2]黃勝根,陳蜀宇.基于ASP.NET MVC框架的干教系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010(02):190-193.
[3]劉亞鵬,張征,俞婷.基于MVC多層架構(gòu)的Web應(yīng)用框架設(shè)計(jì)[J].微計(jì)算機(jī)信息,2011(07):169-171.
[4]許輝.基于ASP.NET MVC框架的Web設(shè)計(jì)[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(16):266-267.
[5]黃東連.基于ASP.NET MVC框架的Web開發(fā)研究[J].河南科技,2015(13):26-27.
[6]肖洋.基于ASP.NET的MVC框架的應(yīng)用開發(fā)模式研究[J].電子技術(shù)與軟件工程,2016(02):63.
[7]滿高媛.MVC設(shè)計(jì)模式在ASP.NET框架中的應(yīng)用研究[J].軟件導(dǎo)刊,2016(04):149-151.
作者單位
廣州工商學(xué)院 廣東省廣州市 510850