提 要:網(wǎng)站應用開發(fā)技術中最常用的技術是MVC,Microsoft公司的ASP.NET平臺上推出MVC框架技術,大大提高了網(wǎng)站程序開發(fā)的速度,目前ASP.NET MVC框架已經(jīng)成為網(wǎng)站開發(fā)重要的工具。
關鍵詞:MVC;網(wǎng)站開發(fā);ASP.NET
中圖分類號:TP311.52
1 ASP.NET MVC發(fā)展
早期提出的MVC是一種架構模式,MVC并不是指設計模式,MVC主要用來描述應用程序的整體結構及MVC各部分信息交互的方式。早期提出MVC模式的是Trygve Reenskaug,主要為程序語言Smalltalk發(fā)明的一種軟件設計的模式。MVC主要用來實現(xiàn)動態(tài)程序設計,從而簡化日后的程序修改和升級操作,同時可以將程序中部分功能重復使用。MVC可以將復雜的程序簡化,程序結構更加直觀,現(xiàn)在MVC框架模式有很多版本,最常見的框架模式有Struts,Spring,Hibernate,ASP.NET MVC等。
Microsoft公司的ASP.NET MVC框架是以MVC模式為基礎的網(wǎng)站應用程序框架,它為程序開發(fā)人員提供了一項快速開發(fā)網(wǎng)站框架設計模式,MVC可以實現(xiàn)程序和界面分離,主要體現(xiàn)在分離任務,主要包括輸入邏輯,業(yè)務邏輯,顯示邏輯分開,這樣設計易于測試,并支持測試驅動開發(fā)。它是可以擴展簡便的框架,程序員可以自定義視圖引擎,UrlRouting規(guī)則和重載Action方法等。程序開發(fā)人員可使用ASP.NET所提供的頁面標記,模板頁和用戶控件等開發(fā)網(wǎng)站程序。
在ASP.NET1中使用的codebehind技術,實現(xiàn)了界面aspx文件和代碼cs文件分離,也就是一種MVC設計。而ASP.NET2.0中使用codebeside技術,主要實現(xiàn)一個視圖aspx文件可以關聯(lián)多個cs文件。在ASP.NET3.5中MVC框架功能進一步增強。程序員可以使用UrlRouting技術實現(xiàn)網(wǎng)站程序url指向某個controller等。ASP.NET3.5需要安裝ASP.NET MVC 2后,才能實現(xiàn)ASP.NET MVC應用程序開發(fā)。在ASP.NET4中自帶ASP.NET MVC 2,在ASP.NET4之后的ASP.NET版本中不需要安裝ASP.NET MVC 2,它是ASP.NET的一個內(nèi)置組件,這樣設計可以方便程序開發(fā),提高程序開發(fā)的效率。
2 ASP.NET MVC框架
2.1 MVC框架由模型,視圖,控制器組成,是網(wǎng)站開發(fā)程序員非常熟悉的一種開發(fā)設計框架,將業(yè)務邏輯,數(shù)據(jù)和界面顯示分離,使程序開發(fā)和維護更加方便快捷,可以提高程序開發(fā)效率。
模型是對數(shù)據(jù)的加工,業(yè)務流程的處理,所有的網(wǎng)站程序都顯示數(shù)據(jù),數(shù)據(jù)存放的位置可以是磁盤文件,也可以存放在數(shù)據(jù)中,還可以存放在內(nèi)存中,模型是相對數(shù)據(jù)的一個抽象概念,網(wǎng)站中數(shù)據(jù)不管是以哪種形式存放,網(wǎng)站都可以通過模型來操作數(shù)據(jù)。在網(wǎng)站程序設計時通常把數(shù)據(jù)的實體類看做一個模型,比如新聞發(fā)布系統(tǒng)中,新聞信息通常是存儲在數(shù)據(jù)庫中的,在數(shù)據(jù)庫中用一個新聞表new來存放信息,在網(wǎng)站程序中會創(chuàng)建一個數(shù)據(jù)類new來與數(shù)據(jù)庫中新聞表相對應,這個類就是新聞表的模型。模型是一個獨立的功能模塊,通過一個模型程序模塊可以為多個視圖提供數(shù)據(jù),設計完成的模型可以被多個視圖復用,從而提高了代碼的重用性。
視圖是顯示給用戶的界面,視圖界面中數(shù)據(jù)來自于模型,視圖數(shù)據(jù)更新由控制器來實現(xiàn),視圖只顯示數(shù)據(jù)不提供業(yè)務邏輯處理功能。例如用戶可以通過視圖來查看模型中定義的數(shù)據(jù),用戶還可以通過視圖來操作數(shù)據(jù)信息,使用模型將數(shù)據(jù)信息操作的結果顯示給用戶。在windows桌面系統(tǒng)中,視圖可以是一個或多個窗體。在網(wǎng)站程序中的視圖是aspx文件,每個aspx文件是一個網(wǎng)頁的視圖界面。
控制器接受用戶的輸入信息并調(diào)用模型和視圖完成用戶的需求,當用戶單擊網(wǎng)頁超級鏈接或發(fā)送HTML表單時,控制器不會輸入任何信息,控制器只接收請求,決定調(diào)用哪個模型處理請求,最后再確定用哪個視圖返回數(shù)據(jù)信息。例如用戶通過視圖發(fā)布一個新聞信息命令給控制器,控制器將按程序的設計更新模型中定義的數(shù)據(jù)信息,最后將結果以視圖的形式顯示給用戶。
2.2 ASP.NET MVC框架提供了一個可以代替WebForm的框架模式。WebForm主要是由aspx文件和aspx.cs文件組成,WebForm可以將HTML接口與業(yè)務邏輯分開,它具有豐富的服務器控件可供程序員使用,加快了程序的開發(fā)速度,它提供數(shù)據(jù)做定技術,簡化了程序與數(shù)據(jù)庫之間的操作,它還可以使用用戶控件和第三方控件技術,提高了程序的可擴展性。但WebForm頁面生命周期比較復雜,增加了程序調(diào)試復雜程度,在程序開發(fā)過程中可能存在過度封裝,從而影響程序的運行速度。
ASP.NET MVC優(yōu)點是將復雜的網(wǎng)站程序分為模型,視圖和控制器,這樣就使復雜程序開發(fā)更加容易維護,減少了程序之間的耦合。不使用ViewState和服務器表單控件,可以完成控制網(wǎng)站程序。它可以更加方便的與Jquery整合,實現(xiàn)Ajax技術,實現(xiàn)無刷新更新頁頁比較容易,從而及大的提高了程序的開發(fā)進程。
2.3 ASP.NET MVC網(wǎng)站程序設計目錄結構。使用asp.net新建MVC Web Application應用程序,在目錄結構中文件夾Models,Views,Controllers分別對應MVC中模型,視圖,控制器。Models文件夾存放業(yè)務邏輯的類文件。Views文件夾存放.aspx頁面,為用戶提供視圖顯示。Controllers文件夾存放處理客戶請求類文件。
3 ASP.NET MVC實例設計
通過信息發(fā)布系統(tǒng)網(wǎng)站應用程序設計來展示ASP.NET MVC框架設計方法,信息發(fā)布系統(tǒng)主要包括三項功能分別是信息查看,信息修改,信息添加,數(shù)據(jù)庫設計使用的是SQL Server,先建立news數(shù)據(jù)庫用來存儲信息id,信息標題,信息內(nèi)容,信息發(fā)布時間。
3.1 模型的設計。在asp.net網(wǎng)站項目中的model文件夾中定義一個關系對象類LINQ TO SQL,類文件名稱為news.dbml,然后將數(shù)據(jù)這庫中的表news映射為news 類,這樣使用LINQ TO SQL類就可以完成對數(shù)據(jù)庫中信息的操作了,再定義一個newsReposit類,主要功能實現(xiàn)信息的添加,查詢,刪除和修改等操作。操作過程如下,先添加news表的O/R映射生成對應的實體類,打開asp.net在“解決方案管理器”中找到項目內(nèi)的model文件夾,在model上“右鍵”,選擇“添加”中的“新建項”,在彈出窗口中選擇“LINQ TO SQL類”,名稱“news.dbml”,選擇“添加”按鈕。然后建立類和數(shù)據(jù)庫的映射,在服務器資料管理器上“右鍵”點“數(shù)據(jù)連接”,選擇“添加連接”,選擇對應的“數(shù)據(jù)庫服務器”和“數(shù)據(jù)庫”,再選擇“確定”按鈕。在打開的數(shù)據(jù)庫中找到news表,按“左鍵”將表移動到右側窗口中,“保存”完成映射。
3.2 控制器的設計。在asp.net網(wǎng)站項目中的controllers文件夾中定義newsContro類,主要功能實現(xiàn)對用戶發(fā)出的請求進行處理,再將處理完成的信息選擇相應的視圖顯示給用戶。
3.3 視圖的設計。在asp.net網(wǎng)站項目中的views文件夾中建立new文件夾,將視圖文件存放在new文件夾中,主要視圖文件有add.aspx添加信息視圖,edit.aspx修改信息視圖,default.aspx顯示信息視圖,error.aspx操作錯誤提示信息視圖,del.aspx刪除信息視圖。
4 結束語
ASP.NET MVC框架在.NET平臺下使用,實現(xiàn)軟件開發(fā)的代碼和界面分離設計,界面設計員完成視圖開發(fā),程序設計員完成模型開發(fā),從而提高了網(wǎng)站開發(fā)效率。
參考文獻:
[1]董寧.ASP.NET MVC程序開發(fā)[M].北京:人民郵電出版社,2014.
[2]黃保翕.ASP.NET MVC 4開發(fā)指南[M].北京:清華大學出版社,2013.
[3]巴勒莫(美).ASP.NET MVC 4實戰(zhàn)[M].北京:水利水電出版社,2014.
作者簡介:張志剛(1978-),男,吉林人,教師,助教,碩士,研究方向:軟件工程。
作者單位:長春大學旅游學院,長春 130607