任 靖
(運城職業技術學院 山西 運城 044000)
MVC全稱為Model——View——Controller,它是模型-視圖-控制器的簡寫,一種程序設計模式,這種模式將業務邏輯、程序控制、界面顯示進行分離,把業務邏輯和數據處理作為模型獨立出來,在修改界面和用戶交互的過程中,模型部分不需要修改。模型是處理數據邏輯和業務邏輯的組件,模型對象的一個重要任務就是在數據庫中存取數據。視圖是處理數據顯示組件,視圖依據模型對象創建。控制器是處理用戶交互的組件,控制器從視圖中獲取數據,把獲取的數據發送給模型。如圖1所示。

圖1
Asp.net MVC分層設計,有利于開發人員協同開發。比如一個開發團隊,分成4個小組,我們暫時稱其為A、B、C、D組。當一個軟件項目完成分析設計后,項目組拿到詳細設計說明書。此時,四個小組可以同步進行開發工作。A小組根據設計說明書進行html前端頁面的開發(視圖開發設計),腳本的編寫;B小組根據設計說明書進行控制器的開發,控制邏輯;C小組根據設計說明書開發模型,模型部分主要包括數據處理、業務邏輯處理;D小組則根據詳細設計說明書進行數據庫的設計開發。
Asp.net MVC分層設計可以分解軟件的開發過程,可以使不同的開發小組專注與開發摸一個組件。比如:在不依賴業務邏輯的情況下進行視圖的分析設計。程序的各種測試更加容易。Asp.net MVC分層設計簡化了分組開發。幾個開發小組可同時開發視圖組件、控制器組件和業務邏輯組件。
Asp.net MVC分層設計的特性:(1)多個不同的視圖對應一個模型,大大減少了代碼的復制, 易于測試和維護;(2)三層分離設計,只要改變視圖組件,就會滿足系統的改變需求;(3)控制器組件包括了用戶的請求處理,這樣不同的視圖和模型組合,能夠響應不同的用戶請求。
Asp.net MVC分層設計應用于不同開發環境中或用戶有特殊需求時,其有以下幾個方面的不足:(1)對于非常簡單的程序,也被要求遵守Asp.net MVC分層設計原則,會增加結構的復雜度,可能降低程序運行效率;(2)控制器組件與視圖組件之間的密切關系,在一定程度上會妨礙它們的獨立性;(3)模型組件的接口并不完全相同,為了獲取需要的數據,在交互時就會需要進行多次的調用訪問,頻繁的訪問,特別是數據庫訪問對操作性有害,造成程序效率低下。
Asp.net MVC分層設計是以ASP.NET平臺為基礎,它使用了MVC設計模式,具有結構清晰明確,擴展性好等特點。Asp.net MVC分層設計把整個軟件系統分為3個基本部分:模型,視圖和控制器。模型組件主要負責應用程序的業務邏輯;視圖組件定義屏幕上的顯示,以及用戶的數據流向;控制器組件定義對用戶請求的響應,進而把用戶的請求變成對模型組件的命令,最后來更新視圖組件的數據,反映系統的信息變化。
模型組件。模型組件作為Asp.net MVC分層設計的重要組成部分,包括系統的邏輯業務和數據庫操作。模型組件不僅能對系統中的數據和業務邏輯部分進行顯示,而且提供了處理各種問題的操作流程。模型組件與視圖組件間保持著一對多的關系,一個模型組件可以對應多個視圖組件,并且能為視圖組件提供訪問數據的操作過程,獲取視圖顯示所需要的數據。
視圖組件。視圖組件是用戶與系統間的交互界面,主要負責數據顯示,即由控制器組件將用戶或者系統的請求發送給模型組件進行處理,模型組件再結合用戶的請求完成相應的操作,再由控制器傳遞給視圖組件進行顯示。視圖組件中不存在任何業務邏輯代碼,視圖組件在本質上可以看做是一個可以顯示數據、用戶能夠進行輸入的界面。一個視圖組件只能對應一個控制器組件。
控制器組件。控制器組件作為連接模型組件和試圖組件的橋梁,是Asp.net MVC分層設計的中間組件,它接收用戶的輸入,對用戶的請求進行響應。控制器組件對模型組件、視圖組件的交互進行協調,使模型組件和相應的視圖組件相互配合,向視圖組件輸出數據,視圖組件呈現處理結果,完成用戶請求。在ASP.NET MVC架構中,用戶的請求都會被路由到控制器組件,控制器組件執行請求、操作模型組件,把視圖組件進行傳輸。控制器組件被置于/Controllers目錄中,模型組件放在/Models目錄中,視圖組件放在/Views目錄中。它是默認的目錄結構。控制器組件類的命名一定要以Cont roller結尾,每個控制器組件類在/Views目錄中有一個對應的子目錄,命名要遵循子目錄和控制器組件類一致的原則。
在ASP.NET MVC項目中,應用程序項目通過Global.asax和Controllers進行URL映射。當用戶進行頁面請求時,該請求會被發送到控制器組件中,開發人員在控制器組件中創建相應的方法將請求發送到視圖組件中,視圖組件會使用在控制器組件中創建的相應的變量呈現頁面。用戶在瀏覽器中進行不同的頁面請求時,該運行過程將會再次執行。對于模型組件來說,控制器組件通常情況下使用模型組件操作數據庫。在模型組件中,模型組件能夠將傳統的關系型數據庫映射成面向對象的開發模型,開發人員能夠使用面向對象的思想進行數據庫的數據存取。
ASP.NET MVC框架的推出,使程序結構更加清晰、靈活,提高了程序的可測試性和代碼的可重用性。由此可見ASP.NET MVC在Web應用程序開發中專業性強,優勢明顯,利用它能夠很好的解決Web開發中遇到的各種問題。在項目開發的過程中,只要能解除對象之間的耦合性就可以采用,框架作為實現模式的一種載體,同一模式可適用于各種不同框架。由此可見,框架既能有效的約束開發人員的開發方式,也能強迫開發人員按照一種更優架構的方式來設計和開發應用程序。
[1] 許輝.基于ASP.NETMVC框架的Web設計[D].計算機光盤軟件與應用,2014(06)。
[2] 況蔚林.ASP.NETMVC開發模式研究.黑龍江科技信息,2015(21)。