微軟發(fā)布ASP.NET MVC 2預(yù)覽版 多項功能更新
51CTO推薦:ASP.NET MVC框架跟我學(xué)
ASP.NET MVC是既ASP.NET WebForms之后,微軟推出的Front Controller式的Web開發(fā)模型,它彌補了前者對HTML控制能力不足,單元測試較為困難等缺點。更重要的是,ASP.NET MVC基于MS-PL發(fā)布,是一個真正的開源框架——且沒有任何平臺限制,也就是說,您可以在mono下使用或開發(fā)ASP.NET MVC的相關(guān)項目。
其實微軟在今年3月的MIX大會上發(fā)布ASP.NET MVC RTM的時候,就已經(jīng)公布了部分ASP.NET MVC 2的計劃,并且在官方代碼源中包含的MvcFutures項目中實現(xiàn)了V2的部分功能雛形。在沉寂了4個多月之后,現(xiàn)在微軟終于發(fā)布了ASP.NET MVC 2的Preview 1版本,并在論壇中向社區(qū)征求反饋意見和建議。令人放心的是,ASP.NET MVC 2 Preview 1能夠與ASP.NET MVC 1.0 RTM共存,不會影響后者的正常使用。
Scott Guthrie在自己的博客中詳細而又簡單地介紹了Preview 1中的新特性。ASP.NET MVC 2的“主題”是“提高生產(chǎn)力”,Preview 1的主要功能有:
◆區(qū)域(Area):Area提供了將Controller和View分組的功能,這個特性可以構(gòu)建一個大型應(yīng)用程序中相互獨立的部分。每個Area可以獨立放在不同的ASP.NET MVC項目中,并且由主應(yīng)用程序共同引用。這個特性可用于應(yīng)對大型應(yīng)用程序所帶來的復(fù)雜性,也使多個團隊能夠更方便地同時開發(fā)同一個應(yīng)用程序。
◆數(shù)據(jù)標記驗證(Data Annotation Validation):ASP.NET MVC 2提供了內(nèi)置的數(shù)據(jù)標記驗證功能。這個功能利用了.NET 3.5 SP1中加入的自定義屬性(Required,StringLength,Range,RegularExpression等),并且已經(jīng)運用在ASP.NET Dynamic Data框架與.NET RIA Services中。利用這一功能,開發(fā)人員可以為Model或ViewModel添加驗證規(guī)則,ASP.NET MVC框架則會自動進行數(shù)據(jù)綁定或UI驗證。
◆強類型UI輔助方法:ASP.NET MVC V2包含了新的HTML UI輔助方法,它利用了強類型的Lambda表達式來操作View模板的Model對象。這樣在編寫視圖代碼時便可以充分獲得IDE的智能提示。更重要的是,它為視圖帶來更好的編譯期檢驗?zāi)芰Α?/P>
◆模板化輔助方法(Templated Helper):這一功能可以根據(jù)數(shù)據(jù)類型自動選擇相關(guān)的模板。例如,在視圖中生成一個System.DateTime輸入功能時,將會運用一個日期選擇器模板。這與ASP.NET Dynamic Data框架中的Field Template有些接近,不過Preview 1中的模板化輔助方法是專為ASP.NET MVC框架而設(shè)計的。
此外,微軟還公布了ASP.NET MVC 2的路線圖。除了Preview 1中已經(jīng)公開的內(nèi)容之外,Preview 2中會包括以下功能:
◆客戶端驗證:在Preview 1中模板化輔助方法及數(shù)據(jù)標記驗證功能的基礎(chǔ)上,構(gòu)建一個客戶端驗證功能。
◆強類型輸入(input)輔助方法:使用強類型的表達式構(gòu)建出針對Model的輸入元素。這些輔助方法還會利用數(shù)據(jù)標記驗證功能來減少錯誤(如拼寫錯誤)。
◆強類型鏈接(link)輔助方法:在IDE智能提示的輔助下,使用強類型的表達式來生成面向特定Controller和Action的鏈接。
◆異步Action:提供開發(fā)不阻塞線程的Action的方法,這可以顯著提升站點的伸縮性,尤其是在需要訪問外部資源的情況下。
◆區(qū)域(Area)功能增強:可以在同一個項目中更好地組織應(yīng)用程序,而不必分拆成多個項目。
其他改進:繼續(xù)修復(fù)ASP.NET MVC 1.0及ASP.NET MVC 2 Preview 1中已知的問題,并根據(jù)用戶反饋進行API增強,以及一些細微的新功能。
除了Scott Guthrie之外,Scott Hanselman以及ASP.NET MVC團隊的Phil Haack也在博客中介紹了ASP.NET MVC 2 Preview 1的情況,MSDN和Channel 9還為“模板化輔助方法”這一重要功能提供了進一步的講解和演示。
【編輯推薦】