蘇揚
摘要:隨著互聯(lián)網(wǎng)的快速發(fā)展,軟件產業(yè)也在蓬勃發(fā)展。與此同時,軟件系統(tǒng)的構架方法也多種多樣,而MVC則是目前發(fā)展最好的軟件構架方法。與其他的軟件構架方法相比,MVC則是運用了表示層、業(yè)務層和數(shù)據(jù)層等所形成的復合型結構實現(xiàn)了計算機的控制器以及視圖功能,更為系統(tǒng)安全。該文將介紹ASP.NET MVC架構,分析了解MVC架構與Web的開發(fā)設計,并就MVC架構在ASP.Net站點開發(fā)所具有的意義進行探討。
關鍵詞:ASP.NET站點;MVC架構;Web開發(fā);開發(fā)效率
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)33-0053-02
開放科學(資源服務)標識碼(OSID):
1 前言
MVC架構是三個英文單詞的首字母縮寫,譯為模型、視圖、控制器,是近年來十分流行的一種軟件架構方式,也可以稱為模式。MVC架構同時也是一種開發(fā)的概念,大大提高了軟件的開發(fā)速度和質量,也提高了軟件的可維護性。而ASP.NET作為NET Framework的重要組成,實際上是微軟公司新開發(fā)的用以開發(fā)Web的平臺,能夠滿足企業(yè)級Web的應用程序的需求。因為ASP.NET是運用通用語言來進行編譯運行的,所以它可以支持面向對象的編程語言的操作。MVC的設計模式將前端視圖顯示、業(yè)務和控制邏輯進行了分離,使得對于應用程序的控制更為方便,又保證了系統(tǒng)能夠平穩(wěn)運行,提高了可拓展性。
2 ASP.NET MVC架構
2.1 MVC架構的相關介紹
MVC架構的主要內容如其名字所示,分為三個組成部分:Model(模型)、View(視圖)、Controller(控制器)。這三個組件之間都有給彼此提供的接口,用以實現(xiàn)這三個組件的通信與同步。
2.1.1模型(MODEL)
模型的范圍太廣,不夠準確,用“數(shù)據(jù)模型”來闡述MVC架構的這一組件則更為貼切。正如Model本身所具有的含義所示,它主管的部分也是與數(shù)據(jù)有關。具體來說,Model可以定義數(shù)據(jù)的結構,與數(shù)據(jù)庫進行交互,判斷數(shù)據(jù)的信息格式正誤以及對數(shù)據(jù)信息進行加工處理等與數(shù)據(jù)相關的操作任務。那么,什么是數(shù)據(jù)庫呢?就是指保存在磁盤中的關于程序的數(shù)據(jù)文件。而Model就是數(shù)據(jù)庫中數(shù)據(jù)的抽象。還有查詢信息、添加數(shù)據(jù)信息、更新數(shù)據(jù)以及刪除數(shù)據(jù)信息等有關操作也都需要在Model層進行操作。形象地介紹一下就是Model相當于ASP.NET的命名空間。
2.1.2視圖(VIEW)
視圖,具體來說就是頁面視圖,是ASP.NET程序的交互界面,主要提供與用戶輸入信息和輸出信息給用戶的相關服務。一個Web頁面可以由一個或多個視圖所組成,而一個復雜的Web頁面內容可能會來自多個數(shù)據(jù)源。與此同時,.aspx頁面是視圖在ASP.NET站點中的保存。這樣,相關編輯人員和美工人員就可以在設計時僅處理相應的.aspx頁面。
2.1.3控制器(CONTROLLER)
控制器的作用除了可以與用戶交互以外,還具有處理業(yè)務邏輯的功能,在軟件操作中發(fā)揮著重要的作用。它既能夠在Model層讀取所需的數(shù)據(jù),又能夠控制信息在頁面視圖中的顯示。與此同時,在發(fā)生異常的情況時,控制器可以在相關的界面進行響應。
2.2 MVC所具有的相關優(yōu)勢
MVC架構相比于其他的架構方式所獨具有的優(yōu)勢分主要為三個方面。
2.2.1良好的拓展性
因為MVC是基于管道所進行設計的,因而具有良好的拓展性。它可以實現(xiàn)通過路徑引導、處理HTTP請求以及URL解析返回瀏覽器等一系列措施進行運行。
2.2.2定義攔截器
通過HttpModule類的形式來定義的攔截器可以通過解析目標Controller類型和Action名稱,明確具體位置,激活目標控制器,執(zhí)行相應的Action方法一系列操作定義HttpHandler。還同時激活控制器以及運行Action方法。
2.2.3功能模塊分層
從Action方法的執(zhí)行到最后頁面視圖的顯示這個過程不會直接進行,而是通過將其轉換為HTML的形式進行,并且最終會以HTTP響應的方式返回到客戶端的瀏覽器。而這個過程中,MVC架構將復雜的邏輯進行分離。然后,再對分離出的相對更簡單、也更單一的邏輯進行逐層關注,也就是分層處理相應的流程。將系統(tǒng)依據(jù)不同的運行功能分層,劃入三層類庫中去。這種方法在大型架構的開發(fā)方面具有的優(yōu)勢更為明顯,大大促進了團隊分工,降低了開發(fā)的難度,與此同時,也使得系統(tǒng)更為可靠安全。
3 ASP.NET MVC架構與Web的相關設計
3.1系統(tǒng)設計
MVC架構在系統(tǒng)設計方面涵蓋廣泛。其中,辦公系統(tǒng)更是涉及方方面面。
我們可以先對系統(tǒng)設計的背景先進行一定的了解。系統(tǒng)的開發(fā)環(huán)境是Visual Studio 2010,運用的是SQLSERVER2008R2的數(shù)據(jù)庫,ASP.NET MVC架構,在.aspx的文件中得到視圖部分,JS框架,CSS框架,客戶端驗證,動態(tài)頁簽,數(shù)據(jù)表格等相關技術應用于視圖的前端。其中,aspx.cs的后臺代碼文件也可以在頁面控制器中進行應用。而Framework則用來提供和業(yè)務沒有關系的底層通用機制以及相關功能。而Model基類則可以提供傳輸數(shù)據(jù)以及底層的最基本的基類以及接口。HttpModule則可以應用于管道模塊中去。其中,將各個應用以及網(wǎng)站系統(tǒng)分為三個層次:表示層、業(yè)務層以及數(shù)據(jù)訪問層。與此同時,將管道模塊的通用功能應用到這三個層次當中去。其中,需要業(yè)務層以及數(shù)據(jù)層的共同作用來實現(xiàn)Model的功能。
個人方面的辦公管理,審批流程的建立,收發(fā)公文告示等,下屬任務的發(fā)布,相關知識文檔的建立,應用的拓展,客戶關系的需要,進賬、銷賬、存賬之類的管理,還有項目、人力、生產、信息、組織、系統(tǒng)方面的管理以及附件程序等多個功能都可以通過MVC架構來實現(xiàn)。從一定程度上來說,這種辦公系統(tǒng)將辦公系統(tǒng),客戶關系管理系統(tǒng)以及人力資源管理系統(tǒng)都融入了進來,使MVC架構用以系統(tǒng)的設計十分全面,滿足了系統(tǒng)設計的需求。
3.2 MVC架構的具體設計
在控制器方面,為了快速完成對客戶端請求的處理,控制器就相應地定義了許多個控制器類來進行。其中,對于控制權限的請求,可以通過控制器中的RoleController來實現(xiàn)管理。這樣,系統(tǒng)中的每一個用戶的控制權限的請求都對應一個command。與此同時,每一個command都對應一個控制器類,因而Controller類就能夠實現(xiàn)對客戶端的總控功能。
在頁面視圖方面,控制器在對調用模型方面的業(yè)務進行處理后會將結果展現(xiàn)在頁面視圖上,而與此同時,在權限管理方面的相關功能則會最終顯示在Role視圖下的Edit.aspx當中。
4 MVC架構在ASP.NET站點開發(fā)所具有的意義
起初,創(chuàng)建MVC模式主要就是為了簡化軟件的開發(fā)過程。1979年提出的MVC架構,在Smalltalk程序設計語言中進行相關的應用。而且,在當時的時代發(fā)展背景下,Smalltalk也是十分熱門的程序設計語言。MVC架構將業(yè)務邏輯和數(shù)據(jù)表示進行了分離,這就使得程序的編寫過程具有了模塊化的特點,而與此同時,程序的可維護性也隨之大大提高。
4.1降低開發(fā)的復雜程度
通過將業(yè)務邏輯層以及數(shù)據(jù)顯示層進行分離,將站點開發(fā)中的復雜難度降低。在設計基于Web的應用程序時,一般情況下對于用戶界面邏輯需求的相關修改要遠多于業(yè)務邏輯層方面的修改。也就是說,當基于Web的應用程序寫好以后,用戶很可能對用戶界面提出一些修改要求。當然,這些要求可能會影響已經(jīng)做好的頁面布局。但是,如果利用MVC架構,就可以減少因改動而引起的其他層次的結構內容也要進行的修改。可以做到在修改頁面視圖的同時不影響數(shù)據(jù)和業(yè)務邏輯,這樣既解決了問題,也將代碼的編寫難度簡單化了。
4.2提高代碼的可維護性
因為模型、視圖和控制器都是相互獨立、相對分離的,當改動數(shù)據(jù)層或者業(yè)務規(guī)則時其他方面也不會受影響。例如,原來系統(tǒng)的數(shù)據(jù)庫使用的是MySQL,現(xiàn)在需要變更了,那么只要將模型Model進行更改就可以將數(shù)據(jù)庫遷移到SQL Server的數(shù)據(jù)庫中去。這樣,只要Model模型中的設置是正確的,那么視圖就不會受到數(shù)據(jù)源指向的影響,從而將結果正確地顯示出來。
4.3提高代碼的重用率
如果將多個視圖共用一個數(shù)據(jù)模型,那么程序代碼的重用率就會得到很大的提高。而MVC架構就實現(xiàn)了這一點。例如,需要用到業(yè)務邏輯層的用戶信息查詢地址,那么就可以通過直接調用Model中的方法來實現(xiàn)。
4.4方便團隊的分工合作
MVC架構可以讓團隊的分工合作更容易,從而有效地提高了軟件的質量和開發(fā)速度。其中,很大一部分的數(shù)據(jù)模型和存儲過程等都可以通過使用相關的工具自動完成。而在控制器方面,因為控制器系統(tǒng)的業(yè)務邏輯關系,要求控制器的性能要比較穩(wěn)定。所以,控制器這部分一般要交給有經(jīng)驗的編程技術人員來完成,而與此同時,視圖部分一般也要交給系統(tǒng)分析人員以及站點的美工人員來完成。
4.5提高了開發(fā)的效率
ASP.NET MVC架構可以使用Visual Studio進行軟件的開發(fā),與此同時,ASP.NET也支持加載插件功能的使用,因而大大提高了開發(fā)人員的編碼效率。并且,可以采用MVC結構+代碼自動生成器的技術架構,從而減少了編碼的程序員的工作量。
5 小結
其實,MVC架構顛覆了傳統(tǒng)的ASP程序開發(fā)的模式,不僅廣泛應用于ASE.NET的開發(fā),在PHP、Java等的程序語言在用來開發(fā)軟件系統(tǒng)時也會首先選用MVC架構。本文也從MVC架構的三個方面進行介紹,并簡單地介紹了MVC架構中的一些相關技術。不難看出,MVC架構在軟件開發(fā)方面所具有的優(yōu)勢。MVC架構的使用可以大大地提高程序員的編碼效率,減少編碼工作量,并提高程序軟件的質量以及可維護性,提高開發(fā)的效率。同時,也可以增強程序軟件開發(fā)中團隊分工,團隊合作的能力。
參考文獻:
[1] 韓瀟影,劉峰民.基于ASP.NET MVC架構的省級氣象預警信息平臺[J].軟件,2020,41(9):112-114.
[2] 孫濤.基于ASP.NET MVC架構的病例管理系統(tǒng)的設計與實現(xiàn)[D].沈陽:東北大學,2017.
[3] 王勃.基于ASP.NET中MVC三層架構結合的Web設計[J].智能城市,2016,2(12):225.
[4] 王素芳,胡必波.基于多層架構的ASP.NET 4 MVC框架研究[J].電腦與電信,2015(10):64-66.
[5] 向寧.基于ASP.NET MVC架構模式的迎新系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代商業(yè),2015(17):63-64.
[6] 何銀川,朱勝利.基于ASP.NET MVC的多層架構的OA系統(tǒng)的設計與實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2013(11):58-64.
【通聯(lián)編輯:唐一東】