Microsoft已經發布了ASP.NET Model-View-Controller (MVC) web架構1.0版,這是微軟採用開源協議發布,並且同開發社區充分互動的一個產品,和ASP.NET Webform 1.0的發布完全不同,ASP.NET MVC自從RC版本開始就進入了穩定版本 。
在官方下載頁面上對ASP.NET MVC這樣描述道:
ASP.NET MVC在現有的ASP.NET 3.5運行時的基礎上提供了一個新的MVC架構。開發人員可以用MVC設計模式來構建Web應用,做到清晰的概念分離(UI或者視圖與業務應用邏輯分離, 應用邏輯和後端資料分離),同時還可以使用測試驅動開發。ASP.NET MVC架構為Web應用的目錄結構定義了一個專用的模式,還提供了一個controller基類,用來處理髮動到“action”的請求。開發人員還可以 用上這個版本中所特有的Visual Studio 2008 MVC模板,利用模板所提供的單元測試結構來輔助Web應用開發。
微軟的產品在坊間流傳一種說法是“微軟的產品一般要到3.0版本才比較穩定,成熟,可以放心使用”,但是這次發布的ASP.NET MVC 1.0可以打破這種宿命了,ASP.NET MVC 經過2年多的開發,有一堆的微軟專家和社區精英共同研發出來。
而且我們小組最近在兩個項目中完全使用 ASP.NET MVC 開發了。學習ASP.NET MVC 的過程中,有很多開發觀念、開發技巧需要學習,而且學習 ASP.NET MVC 幾乎等於放棄服務端控制項的使用 (因為沒有ViewState可用),有些服務端控制項還是可以用的,例如ASP.NET圖表控制項參看在asp.net mvc上應用新ASP.NET圖表控制項,在codeplex上有一個ASP.NET MVC Friendly HttpModule,通過這個HttpModule可以在你的項目中使用服務端控制項,不過除此之外,之前所積累的開發經驗還是有用的,例如: MasterPage, UserControl, Membership, Role, Session, HttpModule, HttpHandler, Web Service, Configuration, LINQ, LINQ to SQL, ... 而且 ASP.NET MVC 跟傳統的 ASP.NET 的webform可以並存在同一個網站中,彼此也不會打架,所以大型網站可以逐步轉換為 ASP.NET MVC,具體可參看CMS項目Cuyahoga:http://www.cuyahoga-project.org/。
要讓一個懂 ASP.NET 的人主動學習 ASP.NET MVC還真的不是一件容易的事,畢竟這兩者之間還是有一些鴻溝的,而且還要放棄掉一些曾經擁有(可能還是引以為豪)的知識,例如:服務端控制項(Server Control)開發。但是讓一個懂 Java 或 PHP/Ruby的人進入 ASP.NET MVC 的世界應該是比進入Webform的世界容易多了 。
ASP.NET MVC 1.0:http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en
ASP.NET MVC: 構建不帶 Web Form的 Web 應用程式:http://msdn.microsoft.com/zh-cn/magazine/cc337884.aspx