什么是ASP.NET MVC
1. asp.net mvc 是微軟官方提供的mvc模式編寫asp.net web應用程序的框架。
2. 是微軟既asp.net webForm 后的又一種開放方式,而非替代方式。假如有一個需求只在內網中使用,那么毫無疑問用web form 很快就好開放 出一個非常好的系統,而且不用考慮運行效率的問題。
在MVC模式中,模型(Modul)表示軟件處理的數據描述,視圖(View)表示軟件的交互界面,控制器(Controller)用來控制軟件的處理邏輯。MVC將軟件的這三個方面明顯的進行了划分,以便於復雜軟件的組織。而經典的webForm就相當於將控制器和模型合並在一起(在經典的webForm模式中,頁面的顯示效果通過.aspx模板進行描述,請求的處理邏輯和頁面顯示所需要的數據在后台代碼(.aspx.cs)文件中處理)。
下面就具體說一下這三個模塊具體是干嘛的:
1. Modul(模型)是負責保持狀態的角色。這個狀態在數據庫中通常是持久的(所以有時也叫持久層),例如student類用來代表關系數據庫中的學生數據。
2. View(視圖)是負責顯示用戶界面的組件。這個界面通常是使用模型數據來創建的,例如,學生的編輯視圖,根據當前student對象的狀態,顯示一個用戶的編輯界面。
3. Controller(控制器)是處理用戶交互、操作模型和最終選擇用哪個視圖來顯示處理結果的組件。
三個組件之間通過契約進行協作,這使得針對界面層的測試可以方便地進行。
ASP.NET MVC的特點
1.分離任務(前面已經提到過)
2. 可擴展
因為mvc把整個軟件分成了三個模塊,而並非傳統webForm中的三層(傳統的webForm三層只是模擬的分成了三層,比如模擬poskback機制,而並不能把.aspx和.aspx.cs兩個文件分開)。
3. 強大的URL重寫(路由機制)
例如下面兩個URL地址:
3.1 http://www.cnblogs.com/wlitsoft/blogs.aspx?Id=123 (傳統的url地址服務器硬盤中肯定存在一個wlitsoft文件夾並且在這個文件夾中肯定存在一個叫blogs.aspx的文件)。
3.2 http://www.cnblogs.com/wlitsoft/blogs/123(這是mvc模式普遍的url地址,此url地址的含義以后的博文將會講到)
了解過seo的都知道,上面兩個url地址哪個更容易被搜索引擎爬蟲發現。傳統的webForm要重寫url的話必須需要組件的支持(URLRewrite)。而mvc對於url的重寫是先天性的並且比使用組件靈活的多。
4. 兼容ASP.NET現有的技術(比如master(模板頁)......)
5. 開源--這個微軟在開源領域最好的項目了,微軟開源的項目比如還有個比較出名的CMS項目叫DNN現在出到6.1.x版本了並且6.0以后的版本支持C#,感興趣的可以學一下。
下面看下ASP.NET MVC3有什么新技術吧!
1. 增加Razor視圖引擎;支持多視圖引擎。mvc1 2 版本中在view層中充斥着大量的<%...%>和jsp、asp非常類似。閱讀性非常差。
1.1 使用@替代<%%>
-語法簡單清晰、容易學習、VS 2010 提供了智能提示和語法着色......
1.2 全局的Action過濾器
1.3 新的ViewBag 屬性
1.4 新的ActionResult
- HttpNotFoundResult -> 404
- RedirectResult - > 302\301
- HttpStatusCodeResult-> 自定義http狀態碼
1.5 Modul Validation
自驗證、客戶端驗證(默認啟用客戶端驗證)、遠程驗證
JSON綁定支持、HTML5 CSS3 、 部分頁面的輸出緩存、HtmlHelper的增強 、 NuGet .......