1.3 ASP.NET MVC 3.0/4.0新特性
除了依賴於.NET Framework 4.0之外,MVC 3.0/4.0還做了很多改進並引入了許多新的特性。包括:
- Razor視圖引擎;
- NuGet包管理工具;
- 改善的可擴充性;
- 全域活動篩選器(Global Action Filter);
- 動態語言支援;
- 局部網頁輸出快取;
- 改進的ajax;
- 改善的驗證機制;
- 移動項目開發模板;
- Web API;
在本節接下來,我們將簡單介紹每一個新特性,後面再逐一深入講解。我們將在第23和24章介紹移動項目開發模板、Web API和其他只有MVC
4.0才有的特性。
1.3.1 Razor視圖引擎
Razor視圖引擎是ASP.NET Web Pages技術幾個核心組件之一。Razor提供了將代碼和標記語言混寫更簡潔的方式。在ASP.NET
MVC 1.0和2.0中只有一個視圖引擎——WebForm視圖引擎,但現在除了Web Form視圖引擎,你還可以選擇razor視圖引擎開發應用程式。
例如,下面的代碼示範了使用傳統的Web Form引擎,在頁面顯示產品列表。
<%@ PageLanguage="C#" Inherits="System.Web.MVC.ViewPage<Product[]>"%>
<ul>
<% foreach(varproduct in Model) { %>
<li><%:product.Name %></li>
<% } %>
</ul>
這是非常雜亂的。頂端的page指令和用於在代碼和標記語言之間切換的<% %>符號,向頁面標記中添加了很多多餘的字元。相反,Razor提供了一種非常簡潔的方式實現相同的功能:
@model Product[]
<ul>
@foreach(var productin Model) {
<li>@product.Name</li>
}
</ul>
可以看到,Razor不需要任何的代碼起始和結束標記,就能在代碼和標記之間切換,這使得頁面可以只關注於頁面呈現的標記,我們將會在第1部分大量使用Razor視圖引擎,第17章將會深入講解Razor視圖引擎。
1.3.2 NuGet包管理器
NuGet包管理器與ASP.NET MVC一起發布。NuGet簡化了對相依元件的管理,它可以直接將需要的組件、庫檔案和一些其他的工具包安裝到你的項目中,不用像以前那樣,當需要第三方組件時,要手動在網上下載。一旦安裝成功,在Visual Studio中,這些組件可以很容易更新到最新版本。
你可以通過NuGet提供的命令列方式或者GUI介面,在大量的線上提供的包中下載你需要的組件和庫。我們將在第14章詳細介紹NuGet。
1.3.3 改善的可擴充性
ASP.NET MVC公開的額外的可擴充性進入點,使得你可以將自己的組件掛鈎到架構中,從而取代架構預設提供的功能。MVC中的依賴解析(Dependency Resolver)可以用來執行個體化對象,並將它們提供給架構。這個方法可以被整合到不同的依賴反轉容器中,減少了必須手動初始化對象的次數。
我們將在第18章學習如何使用依賴解析器和依賴反轉容器提供者的可擴充性。
1.3.4 全域活動過濾器
MVC中的全域活動過濾器特性構建在MVC 1.0和2.0的過濾器機制之上,目的是為了在應用程式中向所有的控制器活動提供通用行為(Cross-cutting behavior)。雖然這看起來是一個不起眼的特性,但它可以巨幅減少應用程式中篩選器聲明的次數。我們將在第16章深入學習全域篩選器。
1.3.5 動態語言支援
由於運行在.NET4.0之上,ASP.NET MVC利用了一些DLR中的特性,其中包括通過動態模型(Dynamic Model)向視圖傳遞資料。我們將在第3章繼續學習該特性。
1.3.6 部分網頁輸出快取
自ASP.NET MVC誕生之初,就支援在一段時間內緩衝整個頁面。現在它也開始支援只快取頁面面中特定的部分。我們將在第17章學習這種新的緩衝機制。
1.3.7 改善的ajax
MVC通過整合jQuery以及其他的Javascript庫,將繼續支援豐富的ajax功能。同時支援將json資料還原序列化後作為活動方法的參數的功能。我們將在第7章學習這些ajax改進功能。
1.3.8 改善的驗證機制
MVC支援使用資料註解(data annotation)特性驗證模型對象。這些特性在.NET 4.0和ASP.NET MVC中顯著增強。另外,對用戶端驗證的支援也被大大改善了。我們將在第6章學習這些驗證特性。
現在你已經大體瞭解了ASP.NET MVC的一些顯著特性,接下來我們將通過一個案例項目深入研究這些特性。這個例子將會貫穿本書的整個第1部分。
1.4 小結
本章中,你瞭解了ASP.NETMVC的曆史,看到了ASP.NET平台的發展曆程,以及微軟構建在核心ASP.NET之上的3個開發架構:ASP.NET Web Form,ASP.NET MVC和ASP.NET Web Pages。你同時學到了MVC 3.0和4.0中的一些新特性,我們整本書都會用來介紹這些新特性。
下一章,我們將會引入GuestBook項目,該項目會一直作為例子貫穿本書的第一部分。藉助於GuestBook這個樣本,我們將開始ASP.NET MVC的學習,並逐步深入。
請繼續閱讀,接下來我們將介紹如何使用ASP.NET MVC開始建立一個新的項目。