揭秘MVC4新的特性


MVC 4 概述

MVC4版是一個相當成熟的基礎上,能夠把重點放在一些更高級的場景。一些高級的功能包括:

  • ASP.NET Web API
  • Enhancements to default project templates(增強了默認的項目模板)
  • Mobile project template using jQuery Mobile(使用jQuery Mobile的移動項目模板)
  • Display Modes(顯示模式)
  • Task support for Asynchronous Controllers(任務支持異步控制器)
  • Bundling and minifi cation(捆綁和微小)

ASP.NET Web API

ASP.NET MVC的目的是為創建網站。整個平台是明顯的設計的決定,表示假設的用法:響應瀏覽器請求並返回HTML。

MVC4包括一個更好的解決方案:ASP.NET Web API的(稱為作為Web API),該框架提供ASP.NET MVC的開發風格,是專為編寫HTTP服務。這包括修改一些ASP.NET MVC的概念來的HTTP服務領域,並提供一些新的面向服務的功能。

這里有一些類似MVC的Web API功能,只適用於HTTP服務域:

  1. 路由:ASP.NET的Web API使用相同的路由系統,將URL映射到控制器行動。它的背景路由到HTTP服務的HTTP動詞映射到行動按照慣例,使代碼更容易閱讀和鼓勵以下的RESTful設計服務。
  2. 模型綁定和驗證:正如MVC簡化的過程中,映射輸入值(表單域,cookies,URL參數等),模型值,Web API的自動映射HTTP請求值模型。可擴展性和約束力的制度包括弼基於相同attri-bute-based驗證中使用MVC模型綁定。
  3. 過濾器:MVC使用過濾器來允許添加行為的行動通過屬性。例如,添加[Authorize]屬性的MVC行動將禁止匿名訪問,自動重定向到登錄頁面。網絡API也支持一些lters標准的MVC網絡連接(如服務的優化[Authorize]屬性)和自定義過濾器。
  4. (Scaffolding)腳手架:添加新的Web API控制器使用相同的對話框,用於添加一個MVC控制器。您可以選擇使用“添加控制器直徑日志來快速支架,一個Web API控制器的基礎上的實體框架為基礎的模式類型。
  5. 簡易裝置可測性:就像MVC Web API是建立在依賴的概念注射,避免使用全局狀態。

網絡API還增加了一些新的概念和功能明確HTTP服務的發展:

  • HTTP的Web編程模型:API開發工作的經驗進行了優化HTTP請求和響應。有一個強類型的HTTP對象模型,HTTP狀態碼和頭方便等.
  • 方法是基於HTTP:MVC派遣的操作方法是根據他們的名字。在Web API的方法可以自動調度的基礎上HTTP.
  • 內容協商:HTTP長期以來一直支持系統的內容協商,在瀏覽器(和其他HTTP客戶端)表示他們的反應的格式喜好,和服務器響應最高的首選,它可以支持的格式。這意味着,您的控制器可以提供XML,JSON和其他格式(你可以添加你自己的),響應任何客戶端最喜歡的格式。這使您可以添加對新格式的支持,而不不必改變任何的控制器代碼.
  • 基於代碼的組態:組態服務可能會很復雜。不像WCF的詳細復雜的組態文件的方法,Web API是完全通過代碼配置。

雖然ASP.NET的Web API包含與MVC4,它可以被單獨使用。事實上,它沒有依賴於ASP.NET所有,並且可以自托管的,那就是外托管ASP.NET 和IIS。這意味着您可以運行Web API。NET應用程序,包括Windows服務或甚至一個簡單的控制台應用程序。

Enhancements to Default Project Templates

默認的模板的可視化設計MVC的1個項目已經基本保持不變通過MVC 3當您創建了一個新的MVC項目,並運行它,你有一個白色方形藍色背景,如在圖1中示出。 在MVC中,無論是HTML和CSS的默認模板已經完全重新設計。一新的MVC應用程序出現如圖1所示。在MVC4中,無論是HTML和CSS的默認模板已經完全重新設計。一新的MVC應用程序出現如圖2所示.

圖1.圖2.

您的網站應該擁有自己的定制設計,這是很好的,在底層的HTML和CSS,MVC4個項目都可以通過現代化的標記和CSS,能夠很好地響應不斷增長的移動瀏覽器的收視率。

Mobile Project Template Using jQuery Mobile

如果你將要創建的網站,將被視為在移動瀏覽器,你可以使用新的移動項目模板。此模板預配置您的網站使用流行的jQuery手機庫,它提供了風格,看起來不錯,在移動設備上,如下圖所示圖3,4所示。 jQuery Mobile的觸摸優化,支持Ajax導航,采用逐行支持移動設備的功能增強。

圖3.圖4.

Display Modes

顯示模式使用一個基於約定的方法允許選擇不同的觀點的基礎上瀏覽器發出請求。默認視圖引擎將首先查找與名稱以.Mobile.cshtml瀏覽器的用戶代理時,表示已知的移動設備。此外,您還可以注冊自己的自定義設備模式,將根據自己的定制標准 - 所有的只是一個代碼語句。例如,要注冊一個WinPhone設備模式,將有助於視圖結束。.WinPhone.cshtmlto的Windows Phone設備,你會用下面的代碼,在您的global.asax Application_Startmethod:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("WinPhone") 
{ 
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf 
("Windows Phone OS", StringComparison.OrdinalIgnoreCase) >= 0) 
});

Bundling and Minification

ASP.NET 4支持相同的捆綁和微小的框架中包含ASP.NET4.5。該系統減少了通過結合幾個單獨的腳本引用到您的網站的請求一個單一的請求。它還“更少”的要求,通過一些技術,如縮短變量名和刪除空白符和注釋。該系統的工作原理,以及對CSS,CSS請求捆綁成一個單一的請求,和壓縮的CSS請求的大小,以產生使用最少的字節,包括語義分析等先進技術的同等規則關閉CSS選擇器。

是高度可配置的捆綁系統,使您可以創建自定義捆綁包含特定的腳本,並引用它們與一個單一的URL。你可以看到一些例子參照在/ App_Start/ BundleConfig.cs在一個新的MVC應用程序使用的默認列出的軟件包互聯網的模板。

一個不錯的副產品利用捆綁和縮小,你可以刪除文件引用你的視圖代碼這意味着,你可以添加或升級腳本庫和CSS網絡連接文件有不同的文件名,而無需以更新您的視圖布局,因為引用腳本和CSS束,而不是單個文件。例如,MVC的互聯網應用溫度板包括一個jQuery包,不依賴於版本號:

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));

 這是束URL中引用的站點布局(_Layout.cshtml),如下:

@Scripts.Render("~/bundles/jquery")

由於這些引用不依賴jQuery的版本號,更新了jQuery庫(無論是手動或通過的NuGet)將被自動拿起的捆綁和微小系統無需進行任何代碼更改.

Miscellaneous Features(其他特性)

MVC包括了很多以前沒有列出的功能的完整列表是在發行說明,可在 http://www.asp.net/whitepapers/mvc4-release-notes 看到。

  • 配置的邏輯搬到App_Start:新功能都不錯,但額外的邏輯通過代碼配置的功能,真的開始變得混亂起來的Global.asax的Application_Start方法。這些配置已經移動到靜態類的App_Start目錄.
  1. AuthConfig.cs:配置安全設置,包括網站的OAuth登錄。
  2. BundleConfig.cs:用於注冊所使用的捆綁和微小的束系統。幾束被添加默認情況下,包括jQuery和jQuery驗證,jQueryUI,Modernizr,默認的CSS引用。
  3. FilterConfig.cs:毫無疑問,這是用來,注冊全球MVC濾波器。唯一的網絡連接默認情況下,濾波器注冊的HandleErrorAttribute,但這個是一個偉大的地方,把
    其他的網絡連接濾波器注冊。
  4. RouteConfig.cs:持有的原始MVC的配置語句,配置路由。
  5. WebApiConfig.cs:用於注冊Web API的路線,以及任何其他WebAPI的配置設置。
  • 空的MVC項目模板:MVC包含一個空的項目模板,因為MVC2,但它是不是真的空,它仍然包含一個CSS文件,文件夾結構,並超過打Javascript的網絡連接文件。該模板由於受歡迎的請求,已更名為“基本”,和新的空項目模板,真的是空的。
  • 任何地方添加控制器:在此之前,在Visual Studio添加控制器“菜單項,僅顯示播放時,右鍵單擊控制器文件夾。然而,使用的控制器文件夾是純粹的組織。 (MVC將識別任何類,它實現IController接口作為控制器,無論它的位置在您的應用程序。)MVC4 Visual Studio工具已被修改以顯示“添加控制器”菜單項的任何你的MVC項目的文件夾中。這允許你組織你的控制器,但你會想,也許把它們分開成邏輯組或分離的MVC和Web API控制器。

OK!關於MVC4的特性就先介紹到這里,后續的話,看能不能整一些系統的東西出來,和大家學習!非常感謝各位前輩的指導,讓醬油學到不少的東西,非常謝謝!希望大家多多指點,胡想學習!文章要是有什么描述錯誤或者不對的地方,還強大家指點一二!期待啊!怎么還不放假,呵呵!快過年了,祝各位朋友,天天快樂!期待回老家。。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM