張治平
摘 要 MVC架構是目前ASP.NET網站系統開發流程的一種流行的模式,一種開發架構,一種開發的概念,同時也是一種設計樣式。軟件開發人員通過這種模式來提高軟件開發效率,同時提高軟件質量和可維護性。
【關鍵詞】MVC模式 ASP.NET站點 開發效率 MVC應用
1 對MVC架構開發模式的認識
MVC是Model-View-Controller-三個英文字母的縮寫,直譯為“模型-視圖-控制器”,是一種軟件開發架構或者稱模式。在MVC開發模式中,將軟件中交互性的應用分解為Model、View、Controller三個相對獨立的組件,通過彼此之間提供的接口,實現三者之間的通信與同步。
(1)Model直譯為模型,更加準確表述可稱為“數據模型”,Model主要負責所有與數據有關的操作任務。具體有定義數據結構,負責與數據庫進行交互,從數據庫中獲取信息記錄,將信息保存到數據庫里面,數據信息格式是否合法進行判斷,數據信息加工、處理等,基本上所有與數據有關的任務,都應該在Model層進行定義或者編寫代碼,比如:數據添加、更新、查詢、刪除等。
在ASP.NET中,Model可看作成一個命名空間(Namespace),它定義了一些類型(Type)或(Class)來負責所有與數據有關的操作,在Visual Studio提供了常見的相關技術包括ADO.NET實體數據類型、LINQ to SQL類等。
(2)VIEW是頁面視圖,主要提供跟用戶交互有關的接口或者界面,即用戶輸入輸出相關操作的界面。輸入操作是提供界面將用戶輸入的數據傳回服務器,輸出操作是將數據顯示界面上呈現給用戶。
(3)Controller是控制器,實現用戶交互與輸入,也是業務邏輯的處理。具體作用有控制程序與用戶交互的渠道,控制軟件系統執行的流程,實現從Model層中讀取數據,控制將輸出信息在哪個View上呈現,并在發生異常錯誤時選擇相關的界面進行響應,總的來說在軟件中起到至關重要的作用。
2 利用MVC架構進行ASP.Net站點開發的意義
在1979年MVC被提出,并應用于當時熱門的Smalltalk程序設計語言,它的產生主要目的是為了使得軟件開發過程更加簡單,這種MVC模式將業務邏輯層與數據表示層分離出來,使得程序編寫模塊化,也將提高程序的可維護性。
2.1 將業務邏輯與用戶界面邏輯分離,降低了站點開發的復雜度
基于Web的應用程序中,一般用戶界面邏輯需求的修改比業務邏輯頻繁。當用戶界面做好之后,用戶可能會提出一些新的修改要求,這些新的需求可能導致修改現有的頁面布局。利用MVC架構,可以做到對界面修改(View更改),可達到基本不會影響數據和業務邏輯,簡化代碼編寫難度。
2.2 大大提高了程序代碼可維護性
因為模型Model是獨立的,并且與控制器Controller、視圖View相對分離,當數據層和業務規則有變動時修改起來也很容易。比如原來系統使用的是MySQL,現在需要將數據庫從MySQL遷移到到SQL Server數據庫中,只需改變數據模型Model即可。只要Model模型配置正確,無論數據源指向哪里,視圖都能正確地顯示結果。
2.3 提高代碼重用率
多個視圖可共享一個數據模型,比如業務邏輯層需要用到用戶信息查詢的地址,直接調用Model中的方法即可。
2.4 提高開發效率
正所謂“工欲善其事,比先利其器”,在ASP.NET MVC的最大優點是可以通過Visual Studio進行軟件開發,而且ASP.NET MVC也支持加載插件功能,通過引用插件可以大幅度提高開發人員的編碼效率。采用MVC結構+代碼自動生成器的技術架構,可大大減少程序員編碼工作量。
2.5 讓團隊開發更加分工、更加好合作,有利于開發出高質量的軟件
大部分數據模型(Model)、存儲過程等都通過使用工具自動生成;控制器(Controller)性能要比較穩定,由于它是控制系統業務邏輯關系,一般這個部分由有經驗的編程技術人員完成;視圖(View)一般由系統分析人員、站點美工去設計完成。
3 MVC架構在開發ASP.NET站點開發中的實現方式
Asp.net為Web站點開發人員提供了MVC架構開發架構的平臺,顛覆了傳統ASP程序開發的模式:程序業務邏輯與Web界面的Html元素混雜在一起,提高了程序開發效率和可維護性。
3.1 View是Asp.net程序的交互界面
在Asp.net程序中,用戶借助View來實現對應用程序的操作,一個Web頁面可以由一個或者多個View組成,復雜Web頁面呈現的內容可以來自多個數據源,視圖在ASP.NET站點中對應地保存為相應的.aspx頁面。網頁界面編輯人員、界面美工在設計布局和系統界面時就對應處理相應的.aspx頁面即可。
3.2 Model對象程序的數據模型,也稱作實體或模型
程序的數據一般以文件的形式保存在磁盤中,這樣的數據文件稱為數據庫,Model是數據庫中數據的抽象,Asp.net站點的數據庫無論采用哪種形式存儲,對數據的操作都可以抽象為對Model的操作。在MVC模式中,對數據模型的操作可以借助Asp.net的EntityBase類、Entity類實現對數據庫的抽象,完成對數據庫相關的操縱,并且,數據模型中相應的數據信息操作可以由Visual Studio自動代碼生成工具實現自動生成。
3.3 Controller控制器在Asp.net站點中操作應用系統的業務邏輯,介于Model與View的中間層
用戶借助View(即.aspx頁面)接收請求,將操作指令發送給Controller,在Controller文件中,根據編程人員設計的軟件邏輯以及Model定義的數據執行完畢對應的代碼之后把結果返回給View以呈現。在MVC中,一個Controller對應于保存業務邏輯控制代碼的aspx.cs文件,一個Controller文件中可以包含多個View顯示的控制代碼。
4 結束語
MVC是一種目前流行軟件開發架構,不僅廣泛應用于Asp.net程序開發,并在使用Php、Java等語言開發軟件系統時,程序員也會首選MVC開發模式。
作者單位
順德胡錦超職業技術學校 廣東省佛山市 528305