簡介 – ASP.NET MVC 4 系列

       正所謂好記性不如爛筆頭,尤爲是技術類書籍在閱讀後,時間久了必定會忘記。而從新翻閱整本書也較爲低效,遂以博客記錄閱讀摘要以供往後查閱。本系列文章均摘要自 Wrox 紅皮書【ASP.NET MVC 4 高級編程(第4版)】,喜歡詳細瞭解的碼農兄弟也能夠自行購買編程

MVC 模式簡介

        MVC 將應用程序的用戶界面(User Interface,UI)分爲三個主要部分:瀏覽器

  1. 模型:描述了要處理的數據以及修改和操做數據的業務規則。
  2. 視圖:應用程序用戶界面的呈現方式。
  3. 控制器:一組類,處理來自用戶、整個應用程序流的通訊。

       MVC 是一種結構模式,ASP.NET MVC 採用了大部分基於 MVC 的 Web 框架所使用的一些基本規則:安全

  1. 約定優於配置
  2. 不重複(DRY原則,Don't Repeat Yourself)
  3. 儘可能保持可插拔性(pluggability) 

Razor 視圖引擎

      Razor 簡潔、富有表現力、靈活。書中有一句總結較爲經典:我一直在尋找 Razor 的語法規則,直到有人告訴我不要再想了,直接輸入「@」符號就能夠開始編寫代碼了,我才意識到原來 Razor 本無規則服務器

ASP.NET Web API      

       它是一個提供了 ASP.NET MVC 開發風格的框架,專門用來編寫 HTTP 服務。下面是一些相似 MVC 的 Web API 功能,但只適用於 HTTP 服務域cookie

  • 路由:ASP.NET Web API 使用一樣的路由系統,將 URL 映射到控制器操做。它按照約定將 HTTP 動詞映射到操做,從而實現將路由融入 HTTP 服務上下文,使得代碼更易於閱讀,也鼓勵了 RESTful 服務設計
  • 模型綁定和驗證:和 MVC 簡化映射輸入值(表單域、cookies、URL參數等)到模型值的過程同樣,ASP.NET Web API 自動把 HTTP請求值映射到模型。
  • 過濾器:MVC 使用過濾器以便經過特性向操做添加行爲。例如,向某個 MVC 操做添加 [Authorize] 特性會阻止匿名用戶訪問,匿名用戶將被重定向到 Login 頁面。
  • 基架:也擁有 ASP.NET MVC 基架。
  • 簡易的單元測試:和 MVC 很像,ASP.NET Web API 創建在依賴注入和避免全局狀態使用的概念之上。

      

       此外,ASP.NET Web API 專門爲 HTTP 服務的開發,添加了一些新的概念和功能框架

  • HTTP 編程模型:爲了更好的處理 HTTP 請求和響應,Web API 開發經驗獲得優化,提供了一個強類型的 HTTP 對象模型、HTTP 狀態碼和容易訪問的 headers等。
  • 基於 HTTP 動詞的動做調度:MVC 根據操做方法的名稱來調度,而 Web API 則根據 HTTP 動詞自動調度操做方法。例如,一個 GET 請求會被自動調度到一個名爲 GetItem 的控制器操做。
  • 內容協商:瀏覽器或其餘 HTTP 客戶端給出它們的響應格式優先級,而服務器用它支持的首選格式作出響應。這樣,咱們的控制器就能提供 XML、JSON 或其它內容來響應客戶端最想要的格式。
  • 基於代碼的配置:服務配置是複雜的。WCF 採用冗長複雜的配置文件來完成配置,而 Web API 徹底經過代碼配置。 

其餘功能      

       經過代碼進行的額外功能邏輯配置正開始集中到 Global.asax 中的 Application_Start 方法中,慶幸的是 ASP.NET MVC 中,這些配置已經轉移到 App_Start 目錄下的靜態類中:單元測試

  • AythConfig.cs:配置安全設置,其中包括站點的 OAuth 登陸。
  • BundleConfig.cs:註冊捆綁微小系統。默認添加一些捆綁,包括 jQuery、jQueryUI、jQuery 驗證、Mondernizr 和默認的 CSS 引用。
  • FilterConfig.cs:用來註冊全局 MVC 過濾器!儘管只默認註冊了一個 HandleErrorAttribute,但這裏絕對是註冊其它過濾器的好地方
  • RouteConfig.cs:存放 MVC 配置語句、路由配置的鼻祖。
  • WebApiConfig.cs:用來註冊 Web API 路由,以及設置任何其餘 Web API 配置設置。
相關文章
相關標籤/搜索