王素芳 胡必波
(1.廣東白云學院,廣東 廣州 510430;2.廣州工商學院,廣東 廣州 510850)
基于多層架構的ASP.NET 4 MVC框架研究
王素芳1胡必波2
(1.廣東白云學院,廣東 廣州 510430;2.廣州工商學院,廣東 廣州 510850)
ASP.NET MVC框架是微軟今后開發Web應用程序的一個主流技術。本文介紹了如何將一個基于多層架構、ASP.NET 4技術的Web Forms應用遷移為多層架構的ASP.NET 4 MVC框架應用。從多層架構的角度出發,深入剖析了MVC模式工作原理,并給出了一個多層架構的ASP.NET 4 MVC客戶關系管理系統實例。
多層架構;MVC模式;ASP.NET MVC;ASP.NET Web Forms
在開發軟件時,需求的不斷變化對軟件質量和可維護性有很強的破壞性。MVC模式就是一種能有效降低變化所帶來的沖擊的可行解決方案。它通過業務邏輯層與數據表現層的分割,把這兩部分數據分離開來,以編寫出更具模塊化、可維護性更高的程序。自引入以來,MVC已經在數十種框架中應用,例如,Java開發Web Application框架有Jsp+Servlet+JavaBean(EJB)等,.NET開發Web Application框架有ASP. NET MVC Framework(ASP.NET MVC)等,PHP開發Web Application框架有ThinkPHP/FleaPHP等。其中ASP.NET MVC是微軟公司在原有的ASP.NET框架基礎上提出的一個新的MVC框架。利用ASP.NET MVC,.NET開發人員可以用MVC模式來構建Web應用,做到清晰的概念分離(UI或視圖與業務應用邏輯分離,應用邏輯和后端數據分離),同時還可以使用測試驅動開發,這些是ASP.NET Web Forms完全無法比擬的。ASP.NET MVC已經成為.NET開發人員必須掌握的關鍵技術之一。
多層系統架構又被稱為N層系統架構,是指將軟件系統的各個功能分開,放在不同的獨立程序集中,形成獨立的“層”,各層之間通過規定的規則進行調用,以完成整個軟件系統。

圖1 多層系統架構圖
如圖1所示為一般設計的通用多層系統架構,其中Client層為用戶的瀏覽器,也即客戶層;UI層為系統開發的用戶界面層,用于向用戶展示系統運行的結果,并接收用戶的數據輸入及操作;BLL層為系統開發的業務邏輯處理層,用于完成功能實現過程中各種業務過程的處理,對于有一定要求的用戶操作或功能實現,在UI層代碼調用BLL層中對應的方法完成;DAL層為專門用于實現數據訪問的層,根據其它層的需要完成數據庫中數據的讀取或更新數據到數據庫;對于UI中需要完成的簡單數據操作功能,沒有業務邏輯操作時,可以由UI層中代碼直接調用DAL層中的類的相應方法完成數據訪問,對于有一定業務邏輯的功能,則由BLL層中的代碼調用此層中的功能,而不直接由UI層訪問DAL層代碼;Entity層則是定義的通用實體類層,其中定義的類用于UI層、BLL層、DAL層進行交互時提供統一的實體類定義,實體類一般根據數據庫結構或業務邏輯的需要而定義。
MVC(Model-View-Controller)不是一種編程語言,嚴格來說也不算是一種技術,而是一種開發架構,一種開發觀念,或者說是一種程序設計模式。MVC設計模式典型地反映了數據與表示的分離,它是一種交互界面的結構組織模式,廣泛用于圖形界面的設計中。MVC強調把用戶輸入、數據模型和圖像顯示以模塊化的方式分開設計,將一個交互式應用程序分成以下3個部件:
(1)模型(Model):也稱作數據模型,是軟件所處理的核心邏輯,包括核心功能和數據。
(2)視圖(View):向用戶顯示信息,對相同的信息可以有不同的顯示。
(3)控制器(Controller):處理用戶的輸入(如:鼠標、鍵盤等),轉化為用戶對模型或視圖的服務請求,并把信息的變化傳遞給視圖。用戶僅通過控制器與系統交互。

圖2 Web應用程序的MVC概念圖
如圖2所示,說明在ASP.NET 4 MVC中,模型、視圖、控制器之間的關系??刂破髟谄渲邪缪葜浅V匾慕巧?,控制器不僅處理用戶的請求,還實現與模型之間的交互,對指定的視圖發送相關的命令,在實際的ASP.NET 4 MVC應用開發中,開發者的主要工作就是實現控制器的編碼。
(1)搭建多層架構的MVC框架
客戶關系管理系統包括:營銷管理、客戶管理、服務管理、統計報表和基礎數據5個功能模塊。另包括用于支持系統的權限管理模塊。該系統采用了多層架構,解決方案為CRM;UI層使用Web應用程序項目類型,項目名稱為Crm;包括BLL(業務邏輯處理層)、DAL(數據訪問的層)、Entity(通用實體類層)等類庫項目。各層之間的關系,通過添加相關的引用來完成。整個網頁主要分為六大部分:根目錄下的瀏覽頁面、“SaleManage”目錄下的營銷管理頁面、“Customer-Management”目錄下的客戶管理頁面、“CustomerServices”目錄下的客戶服務頁面;“EmplyeeManage”目錄下的員工管理頁面;“Statistics”目錄下的統計報表頁面。如圖3所示,可以看出遷移后的MvcCrm.NET項目結構所包括BLL、DAL、Entity等類庫項目代碼與Crm.NET項目結構完全相同。

圖3 MvcCrm.NET的項目結構
MVC模式通過對多層架構的BLL層與UI層的分割,把這兩部分數據分離開來,以編寫出更具模塊化、可維護性更高的程序。MVC模式是把多層架構中的UI層進行了分化,分成了M、V、C三個部分,其中C完成頁面邏輯,可直接與BLL層進行對話,通過V來與UI層完成通話??梢哉f,MVC模式是屬于多層架構中的表現層,多層和MVC模式可以共存,多層架構是基于業務邏輯來分的,而MVC模式是基于頁面來分的。多層架構和MVC模式之間的關系,如圖4所示。

圖4 多層架構和MVC模式之間的關系
(2)模型開發
在MvcCrm.NET系統中,模型的開發通過多層架構來實現。Entity層定義了6個實體類,這些類分別是Customer-Leve類、CustomerLostStatus類、CustomerStatus類、ORDERSTATUS類、SaleChanceStatus類、ServiceType類。實體類對象并不是與數據表一一對應的。比如在數據庫DsCrmSecond中有Order表,但是并不需要構建相關的業務邏輯;反過來說,Entity層有CustomerLeve類,在數據庫中并不存在相關的數據表。一句話,要根據應用程序的需要構建合適的業務對象。DAL層定義了4個類,分別是UsersInfoRepository類、SaleChanceRepository類、ApplicationRepository類、Repository類。BLL層定義了SalePlanService類、OrderService類、CustomerService類、CustomerServicesService類、Application-InfoService等11個類。在MvcCrm.NET系統中的控制器中,就是使用這些業務邏輯類來查詢、添加、修改、刪除相關的實體類對象的。工具類“Utils”項目,則定義了讀、寫配置文件Web.config的一些ConfigurationTool類。
(3)控制器開發
位于目錄“Controllers”,主要是CustomerController控制器、SaleController控制器的實現。CustomerController控制器用于處理系統中客戶頁面的請求,SaleController控制器則主要處理營銷頁面的請求。由于MvcCrm.NET系統使用了母版頁技術,因此在控制器的開發中,需要開發一個控制器基類——ApplicationController。
(4)視圖開發
在實現了MvcCrm.NET系統中的模型、控制器之后,就可以比較容易地實現該網站中各種頁面的視圖開發。根據ASP.NET 4 MVC框架的默認約定,需要主要開發兩大類的視圖頁面,分別位于目錄“Views”中的“CustomerManag”文件夾和“SaleManage”文件夾中。
多層架構和MVC模式是有明顯區別的,MVC模式可以是屬于多層架構中的表現層。多層架構的實現,可以非常方便地來構建ASP.NET 4 MVC項目中的模型。值得一提的是ASP.NET MVC框架與Web Forms技術是建立在ASP.NET基礎上的兩種平行技術,是微軟今后同時發展的兩種Web開發技術。它只是給開發者提供了開發Web應用程序的一種選擇,而絕不是替代傳統的Web Forms技術,這兩種技術在不同的應用場景中,具有不同的優、缺點,開發者需要根據實際情況,選擇對應的技術,甚至在同一個項目中混合使用這兩種技術。
[1]董寧.ASP.NET MVC程序開發[M].北京:人民郵電出版社,2014.
[2]張家浩.現代軟件工程[M].北京:機械工業出版社,2009.
[3]林慶,朱翠苗,鄭廣成,等.基于ASP.NET的MVC設計模式的研究[J].計算機工程與設計,2008,(1):167-169.
[4]黃勝根,陳蜀宇.基于ASP.NET MVC框架的干教系統的設計與實現[J].計算機技術與發展,2010,(2):191-193.
Research on ASP.NET 4 MVC Framework Based on Multi-tiers Architecture
Wang Sufang1Hu Bibo2
(1.Guangdong Baiyun University,Guangzhou 510430,Guangdong; 2.Guangzhou industrial and Commercial College,Guangzhou 510850,Guangdong)
ASP.NET MVC framework is a mainstream technology for developing Web applications in the future.This paper describes how to transfer a Web Forms application based on multi-tiers architecture and ASP.NET 4 technology to a ASP.NET 4 MVC framework for multi-tiers architecture.From the perspective of multi-tiers architecture,the working principle of MVC mode is analyzed,and a MVC 4ASP.NET customer relationship management system is given.
multi-tiers architecture;MVC model;ASP.NET MVC;ASP.NET Web Forms
TP311.52
A
1008-6609(2015)10-0064-03
王素芳,女,江西人,碩士,講師,研究方向:數據庫,人工智能,多媒體技術等。