ASP.NET MVC 4 浮出水面
最近,ASP.NET MVC 4的第一個beta版發布了,并且還含有“可以上線”的許可。這意味著即使最終正式版本還沒有完成,但微軟相信ASP.NET MVC 4目前已經可以在生產環境中使用了。這次的發布包含了對Razon視圖引擎的改進、對異步調用的支持,以及WebSockets等功能。
Razor視圖引擎
作為ASP.NET MVC的默認視圖引擎,Razor中增加了一些新的特性,以減少視圖模版的代碼量。以~/開頭的HTML屬性會被自動解析為應用程序的根路徑,而不再需要 使用Url.Content。另一個提升效率的特性是可空屬性(conditional attribute),例如當class="@myClass"中的myClass為null時,這個屬性將不會被渲染到頁面上。
注意:這些新增的特性也會出現在ASP.NET Web Pages 2中。
CSS與JavaScript管理
MVC 4鼓勵開發人員合并和壓縮(CSS與JavaScript)以縮短傳輸時間。開發人員不用詳細列出每一個客戶端需要的文件,只需要使用ResolveBundleUrl函數就可以將某個文件夾中的所有文件包括在內。 Jon Galloway指出,這對于更新某些程序庫—如jQuery—特別有用。
移動開發
jQuery Mobile將會被包含在標準移動模版中。這些模版被用于創建一組視圖,而這些視圖則被Display Modes(譯者注:根據用戶所使用的設備,如桌面系統或移動設備,選擇不同的視圖文件進行渲染)子系統所使用。除了默認模式和移動模式,可發人員還可以根據需要添加其他模式。一般系統會根據瀏覽器發送的user agent來決定使用那種模式,但理論上你可以獲得更大的靈活性。
Controller中的異步任務處理
在MVC 4和C# 5中使用異步模型非常簡單,難以想象還會有人繼續用阻塞的方式編寫Controller中的方法。你只需要使用“async Task<ActionResult>”代替ActionResult作為返回值就可以了。當然底層的代碼也需要支持異步調用,但基本上只需要做機械的代碼轉換,任何實習生或初級開發人員都可以處理。
異步Controller還支持cancellation token,Cancellation Token的實例由框架創建,開發人員只需在調用異步方法時,將之作為參數傳遞即可。這樣整個調用棧都可以被取消,而不是簡單的終止線程。
via InfoQ