李翠松 常淑華 候睿崢
摘 要:本文分析了ASP.NET的特點,提出了采用MVC+HTML技術搭建基于ASP平臺的在線考試系統,實現了業務邏輯和數據表示分離的模式,同時針對asp中的mvc設計模式做出詳細的說明
關鍵詞:MVC;WEB;ASP
引 言
傳統的網站一般是采用靜態網頁技術制作的靜態網頁網站,但是為了越來越大以及繁雜的需求。目前,絕大部分網站為了更好的實現用戶與網站的互動性,一部分已經實現靜態網站動態化,或者說是動態網站也不為過。因此大大提高了用戶的互動能力。其次,網站的功能也豐富起來。然而,建設一個動態網站,ASP.NET是非常有效的利器。
一、靜態網站的優缺點
就靜態網站本身而言,它能沿用如此之久,必然是有可取之處的。例如,加載的時候不需要調動數據庫,響應速度快,減少了服務器對數據響應的負荷,從安全角度講,靜態網頁不易遭受黑客攻擊,從網站穩定性來講,如果程序、數據庫出了問題,會直接影響網站的訪問,而靜態網頁就避免了如此情況,不會因為程序等,而損失網站數據,影響正常打開,損失用戶體驗,影響網站信任度。
同時它也有不可否認的缺點,就像一把雙刃劍,生成大量文件的時候,服務器對html文件的響應負擔也較重,還有,維護極其不方便,每次都要手動生成網頁,當網站龐大的時候會苦不堪言。3、空間占用大(多占用近一倍的空間)對于站長來說沒有必要浪費空間的成本,舉個例子:如果是一個大型的網站,特別是資訊類網站來說,如果每個頁面都變成靜態頁面,那工作量肯定非常大,同時也非常不利于網站的維護,因為靜態網站是沒有數據庫的,每個頁面都需要人工檢查,如果網站的鏈接出現錯誤,想要糾正,往往就需要花費很長的時間來逐個排查!
二、MVC設計模式分析
(1)MVC設計模式
首先說說它的定義,MVC 設計模型是一種使用 Model View Controller(模型-視圖-控制器)設計創建 Web 應用程序的模式,通常為了實現程序的“高內聚,低耦合”我們主要把應用程序分成了三層。其中視圖層主要是為了實現與用戶進行交流操作的界面,通常是由前端開發人員來完成;模型又是核心,它是網站處理程序執行順序與邏輯,完成對數據在數據庫中的各種操作;控制主要處理人機交互的部分,負責讀取視圖中存儲的數據,控制用戶輸入;完成用戶請求的邏輯在模型(Model)中實現,然后處理的結果會反饋回視圖(View)中顯示。控制器則充當中間控制功能,根據用戶的的請求調用相關的模型,然后把瀏覽器的處理結果傳遞給視圖,最后視圖展示最后的處理結果。MVC模式的目的就是實現Web系統的分布分工,對程序動態的程序設計,使后續對程序代碼的修改和系統擴展簡化并且使程序某部分能夠重復利用。總的來說MVC設計模式可以方便開發人員分工協作,提高開發效率,增強程序的可維護性和拓展性而且還利用Controller將Model與View分離,降低它們之間的耦合度。
(2)MVC特點
①一個模型提供不同的多個視圖表現形式,也能夠為一個模型創建新的視圖而無須重寫模型。一旦模型的數據發生變化,模型將通知有關的視圖,每個視圖相應地刷新自己。
②模型可復用。因為模型是獨立于視圖的,所以可以把一個模型獨立地移植到新的平臺工作
③較低的開發周期成本。MVC能夠有效降低降低開發和維護用戶接口的費用。
④可維護性。分離視圖層和業務邏輯層也使得WEB應用更易于維護和修改。將邏輯層和表示層相分離使開發人員節省了大量的后期維護時間。
三、WEB架構
基于“WEB頁面/文件”架構,例如CGI和PHP/ASP程序。程序的文件分別存儲在不同的目錄里,與URL相對應。當HTTP請求提交至服務器時,URL直接指向某個文件,然后由該文件來處理請求,并返回響應結果。可以想像,我們在站點根目錄的news目錄下放置一個readnews.php文件。這種開發方式最自然,最易理解,也是PHP最常用的方式。要注意產生的URL對搜索引擎不友好,不過你可以用服務器提供的URL重寫方案來處理,例如Apache的mod_rewrite。
基于“動作”(Action)架構,這是MVC架構的WEB程序所采用的最常見的方式。目前主流的WEB框架像Struts、Webwork(Java),Ruby on Rails(Ruby),Zend Framework(PHP)等都采用這種設計。URL映射到控制器(controller)和控制器中的動作(action),由action來處理請 求并輸出響應結果。可 以想像在實際代碼中,我們會有一個控制器newsController,其中有一個readAction。不同框架可能默認實現方式稍有不同,有的是一個 Controller一個文件,其中有多個Action,有的是每個Action一個文件。當然這些你都可以自己控制,使用MVC體系結構,能夠使業務邏輯、數據、界面顯示分離。江浙兩種技術一起使用可以使程序更精簡,耦合性更少。
基于“組件”(Component,GUI設計也常稱控件)、事件驅動的架構,最常見的是微軟的.NET。基本思想是把程序分成很多組件,每個組件都可以觸發事件,調用特定的事件處理器來處理(比如在一個HTML按鈕上設置onClick事件鏈接到一個PHP函數)。這種設計遠離HTTP,HTTP請求完全抽象,映射到一個事件。事實上這種設計原本最常應用于傳統桌面GUI程序的開發,例如Delphi,Java Swing等。所有表現層的組件比如窗口,或者HTML表單都可以由IDE來提供,我們只需要在IDE里點擊或拖動鼠標就能夠自動添加一個組件,并且添加一個相應的事件處理器。
四、基于ASP三層架構的網站建設
ASP具有良好的擴充性,我們訪問數據庫時,采用的時ADO對象,訪問文件時,采用的是文件系統對象(FSO),其實這時程序已經是三層結構的應用程序了,只不過由于是利用內置的對象而為意識到罷了。這些對象都遵循COM/ActiveX接口,因此我們自己開發的對象也要遵循這個接口。
對于三層架構來說,就是使用類,把我們在做項目的過程中,可能需要反復操作數據庫,反復的使用某個方法等等,可能就是操作的參數不同。如果我們如果在每次使用的時候,都去編寫相應的代碼,無疑會增加程序員的負擔。所以,為了增加方法的重用,就把這些能夠重用的方法抽象成類,以供程序員在其它地方可以調用。
建設一個網站,我們首先要明晰需求,在確定需求后,采用model/view/controller的三層體系結構。view接受用戶通過瀏覽器發送的請求并做出相應。controller作為系統中的控制器,它能根據用戶的不同請求,相應的調用不同的ASP頁面。
系統的關鍵板塊有:
(1)主界面模板
將在線考試網站按照需求分成用戶登錄,考試通知,成績查詢,用戶查詢等板塊,通過CSS和JavaScript技術實現樣式和動畫效果,使各種信息使用結構和樣式統一的Web頁面,適應各種課程內容的管理。
(2)菜單管理
確定在線考試網的目錄結構。不同菜單的結構一般不同,其展開列表也不同。因此,在網站開發的過程中,我們可以使用數據庫的無限分級技術,有效利用數據庫的性能,實現各級列表的動態管理可以有效的避免欄目和其列表之間的復雜的嵌套關系,同時還可以在數據庫中清除的查詢,不會導致多菜單造成的管理混亂。
(3)后臺管理
網站結構確定后,可以搭建后臺管理員界面,將需要管理的模塊與數據庫相連,比如試卷題目上傳修改,試卷批改,簡單的選擇填空自動批卷所需要的答案庫,還有某些用戶的權限管理。
(4)整合部署Web項目
根據需要的功能,做出相應模塊后,因為asp的可混編性可以高效的與后臺通訊,在已經搭建好環境的windowserver服務器上部署項目,將網站源碼部署到iis的默認網站根目錄下,配置域名,進行測試。
五、結束語
本文介紹了MVC結構和三種WEB架構,對三種架構做了詳細的分析。同時也說明了基于ASP使用MVC模式設計網站的方式,提出了基于MVC模式和B/S結構使用ASP技術制作動態網站的方案。
2017大學生創新項目《吉林農業科技學院學生在線考試系統》 項目編號:2017133
通訊作者:常淑華
參考文獻
[1]何成萬等.基于MVC模式的科研成果管理系統開發[J].武漢工程大學學報,2009,31(1):79~82.
[2]薛德樞.通用精品課程網站開發系統的設計與實現[D].大連理工大學,2008.
[3]陽西述等.基于UML和MVC的精品課程網站設計[J].現代計算機,2011(9):59~62.
[4]王明等.基于MVC科研管理系統的研究與實現[J].微計算機應用,2009,30(1):77~80.
[5]王立明.基于 MVC 架構的網絡教學管理系統的設計與開發[D].甘肅:蘭州大學,
2012:14-16
(作者單位:吉林農業科技學院)