ASP.NET MVC 框架-簡介

作者: 來源:Scott Guthrie 博客中文版 日期:2009-4-2

(前不久,微軟發布了 ASP.NET MVC 1.0,本連載是 1.0 版本之前的,但在 MVC 教程還很稀缺的今天,本連載還是具有非常高的參考價值的。千一網絡編輯注)

過去的幾年里,很多人要求 ASP.NET 的一件事情就是對使用基于 model-view-controller(模型-視圖-控制器,簡稱MVC)架構來開發 web 應用的內置支持。

上個周末在 Austin 舉行的 Alt.NET 大會上,我首次對我的團隊正在開發的新 ASP.NET MVC 框架作了一個公開的演示。你可以在 Scott Hanselman 這里的博客上觀看我的講座的錄像。

我們將在今年稍后發布該框架的一個公開預覽版,然后在明年的上半年將它作為完全支持的 ASP.NET 特性推出。

模型-視圖-控制器(MVC)框架是什么東西?

MVC 是個將一個應用的實現分成三個組件角色的框架技術:模型,視圖和控制器。

  • 在基于 MVC 的應用里,Model(模型)是負責保持狀態的應用組件。這個狀態通常都持久于數據庫之中(譬如,我們也許會有一個Product(產品)類用來代表SQL中的Products數據表中的訂單數據)。
  • 在基于MVC的應用里,View(視圖)是負責顯示用戶界面的組件。這個UI通常是使用模型數據來創建的(譬如,我們也許會生成一個Product"編輯"視圖,根據當前Product對象的狀態,顯示文本框,下拉框和復選框等)。
  • 在基于MVC的應用里,Controller(控制器)是處理用戶交互,操作模型和最終選擇用哪個視圖來顯示UI的組件。在MVC應用中,視圖只是用來顯示信息而已,是控制器來處理和回應用戶的輸入和交互的。

使用MVC方法的一個好處是,它有助于促進應用中模型,視圖,控制器間的關注的清晰分離。保持關注的清晰分離使得對應用的測試極其容易,因為不同應用組件間的契約的定義和表達是更明確的。

MVC模式也有利于促進紅/綠式測試驅動的開發 (TDD),通過它,你可以在你實際編寫應用代碼本身之前首先實現自動化的單元測試,這些單元測試定義和核實了新代碼的需求。

ASP.NET MVC 框架的一些簡要細節

在幾個星期后,相關代碼可以下載之后,我將寫一些關于這個新的ASP.NET MVC 框架的深入性的教程貼子(與此同時,想進一步了解它的最佳方式是觀看我的Alt.net講座的錄像):

這里是關于ASP.NET MVC 框架的一些簡要細節:

  • 它將促進清晰的關注分離,可測試性,和TDD。MVC框架中的所以核心契約都是基于接口的,可以輕易地通過mock來模擬(包括基于接口的IHttpRequest/IHttpResponse這些基本的東西)。你可以不用在ASP.NET進程中運行控制器(這使得單元測試很快),就單元測試你的應用。你可以使用你想使用的任何單元測試框架來做單元測試,包括NUnit, MBUnit, MS Test等等。
  • 這個框架具有高度的可擴展性和可插拔性。MVC框架中所有的東西都是這樣設計的,它們可以被輕易地替換掉或者定制(譬如,你可以插入你自己的視圖引擎,路徑轉向策略(routing policy),參數序列化等等)。它還支持使用現有的依賴注入(dependency injection)和控制反轉(IOC)容器模型(Windsor, Spring.Net, NHibernate等等)。
  • 它包括一個非常強大的URL映射組件,允許你使用非常干凈的URL來建造應用。URL不需要擁有文件擴展,是設計來輕松支持SEO和REST友好的命名模式的。譬如,在我上面的項目中,我可以輕松地把/products/edit/4映射到ProductsController類的Edit方法上,或者把 /Blogs/scottgu/10-10-2007/SomeTopic/ 映射到BlogEngineController類的DisplayPost方法上。
  • MVC框架支持將現有的ASP.NET .ASPX, .ASCX,和 .Master 標識文件當作視圖模板(view template)之用(這意味著你可以輕松地使用很多現有的ASP.NET特性,象嵌套的母版頁,<%= %>塊 ,聲明式服務控件,模板,數據綁定,本地化等等)。但是,它不使用現有的將交互返回服務器的postback模型,取而代之的是,你將把用戶的所有交互轉給控制器類來調度,這有助于關注的清晰分離和提高可測試性(這也意味著,在基于MVC的視圖內沒有viewstate或page的生命周期之說)。
  • ASP.NET MVC框架將完全支持象forms/windows認證,URL授權,成員/角色,輸出和數據緩存,session/profile狀態管理,健康監測,配置系統,以及provider架構等等現有的ASP.NET特性。

結語

如果你正在想使用MVC方式建造你的web應用的話,我認為你會發現這個新的 ASP.NET MVC 框架選項非常干凈,而且容易使用。它將允許你在你的應用中很輕易地保持關注分離,而且有助于進行干凈的測試和TDD。

幾個星期之后,我將撰文說明新的MVC特性的工作原理,以及如何利用它們。

希望本文對你有所幫助,

Scott

你前面那位網友看了:C# dynamic

▲▲▲嘿,歡迎轉載傳播本站原創文章,盡量保留來源噢。▲▲▲

文章評論
  • 1 樓:評論
    寫得好!
標題:必填
內容:
最新22选5开奖公告