[ASP.NET MVC2 系列] ASP.Net MVC教程之《ASP.NET MVC 概述》

來源:互聯網
上載者:User

 [ASP.NET MVC2 系列] 
     [ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分鐘內用ASP.Net MVC建立一個電影資料庫應用程式》 
     [ASP.NET MVC2 系列] ASP.Net MVC教程之《ASP.NET MVC 概述》
     [ASP.NET MVC2 系列] 理解MVC應用程式的執行過程
     [ASP.NET MVC2 系列] ASP.NET MVC Routing概述 
     [ASP.NET MVC2 系列] ASP.NET MVC 之如何建立自訂路由約束 
     [ASP.NET MVC2 系列] Action要求與View本質
     [ASP.NET MVC2 系列] Action Filters以及自訂OutputCache ActionFilterAttribute事件發生次序

 

ASP.NET MVC 概述

     

         瞭解關於 ASP.NET MVC 應用程式與ASP.NET Web Forms 應用程式兩者之間的不同點. 瞭解怎樣去決定什麼時候建立一個 ASP.NET MVC 應用程式.

ASP.NET MVC 概述(C#)

         模型-視圖-控制 (MVC) 結構模式將一個應用程式分隔成三個主要組成部分:模型層、視圖層、控制器。ASP.NET MVC架構提供了另一種可以替代ASP.NET Web Forms模式的選擇來創造基於MVC的 web應用程式。ASP.NET MVC 架構是一個輕量級的架構,它與現有的ASP.NET特徵相整合,比如母板頁與基於身份的驗證。MVC架構下定義在System.Web.Mvc命名空間中。

     MVC是許多開發人員都很熟悉的標準設計模式。很多類型的Web應用程式將會受益於MVC架構。一部分將依舊會繼續使用傳統的基於Web Forms和回傳的ASP.NET應用程式模式。其他類型的 Web應用程式將這兩種方法相結合使用:兩者互不排斥。
  
     MVC架構套件含以下組成部分:
  
    •模型層。模型對象是應用程式的一部分,它實現了應用程式的資料定義的邏輯。通常,模型對象檢索和儲了在資料庫中的模型狀態。例如,一個Products對象可以在資料庫檢索資訊,操作它,然後將修改的資訊更新回SQL伺服器中的Products表。

     在小應用程式中,該模型常常是一個概念性的分離而不是物理上的。例如,如果應用程式僅僅讀取資料集和將它發送到視圖上,應用程式將不存存在一個物理模型層及相關的類。在這種情況下,資料集將具有一個模型對象的角色。
  
  
   •視圖層。視圖層是顯示應用程式的使用者介面(UI)的部分。通常,使用者介面UI是由模型資料所建立的。
  
  
   •控制層。控制層是處理使用者互動,對模型層起作用,並最終選擇一個視圖view來呈現那個顯示的使用者介面的部分。在一個MVC應用程式中,視圖層view只顯示資訊,控制層controller處理並響應使用者的輸入和互動。例如,控制層處理查詢字串的值,並將這些值傳遞給模型層model,該模型層就會反過來使用這些值來查詢資料庫。

    MVC模式協助你建立應用程式,它將應用程式的不同方面的(輸入邏輯、商務邏輯,和UI邏輯)進行分離,同時在這些元素之間提供一個松耦合關係。這種模式指定了每一種邏輯在應用程式中所處的位置。UI邏輯屬於視圖層。輸入邏輯屬於控制層。商務邏輯屬於模型層。當你建立一個應用程式時,這種分離能協助你處理複雜事務,因為它可以讓您每一次專註於實施的一個方面。例如,你可以專註於視圖層,而不依賴任何商務邏輯。
  
    除了管理複雜的事務,MVC模式比基於Web Forms的ASP.NET Web應用程式更加容易進行測試。例如,在一個基於Web Forms的ASP.NET Web應用程式,一個單一的類被用於顯示輸出和響應使用者的輸入。因為測試單個頁面,你必須執行個體化這個頁面page類,它所有的子控制項以及應用程式中額外的依賴類,所以針對於基於Web Forms的 ASP.NET應用程式寫的自動化的測試將可能很複雜。因為有那麼多類被執行個體化用來運行這個頁面,它可能很難寫出針對於應用程式的單個部分的測試代碼。因此,基於Web Forms的ASP.NET Web應用程式的測試比MVC應用程式更難實現。而且,基於Web Forms的ASP.NET Web應用程式需要一個Web伺服器。MVC架構將這些組成部分進行解耦,大量的使用介面,使它能夠獨立的測試單獨的部分。
   同樣,MVC應用程式中的介於三個主要組成部分的松耦合也促進了平行開發。例如,一個開發人員可以開發視圖層,另一個開發人員可以開發控制邏輯層,第三個開發人員可以專註於模型層中的商業邏輯。

 

決定什麼時候去創造一個MVC應用程式
  你必須仔細考慮是否要通過採用ASP.NET MVC架構和ASP.NET Web Forms模型中任何一種來實施一個Web應用程式。MVC架構取代Web  Forms模型;你能夠為Web應用程式採用任何一種架構。
  在你為一個具體的Web網站決定採用MVC架構還是Web Forms模型之前,權衡一下每一種方法的優勢。

  基於MVC的Web應用程式的優勢
  這個ASP.NET MVC架構提供了以下優點:
  
  它通過將應用程式分解為模型層,視圖層和控制層來使我們更容易管理複雜的事務。
  它不使用檢視狀態或基於伺服器的表單。這使得MVC架構非常適合於那些想完全控制應用程式行為的開發人員。
  它使用一個 Front Controller模式,它通過一個單一的控制器來處理Web應用程式請求。這使你能設計一個支援豐富的路由基礎設施的應用程式。更多資訊,在MSDN網站查詢Front Controller。
  它提供更好的驅動測試開發的支援(TDD)。
  它適用於需要高度控製程序行為的開發人員和網站設計者支援的應用程式的大型團隊。

  

     基於Web Forms的Web應用程式的優點
  基於Web Forms的架構提供以下優點:
  
  它支援一個能夠在HTTP之上保持狀態的事件模型,從而有利於line-of-business網頁應用軟體的開發。基於Web Forms的Web應用程式提供了被數以百計的伺服器控制項支援的許多事件。
  它使用一個能夠增加函數到單個頁面的頁面控制模式,。更多資訊,見MSDN網站中的Page Controller。
  它使用檢視狀態或基於伺服器的表單,它可以使管理狀態資訊更加容易。
  它適用於那些網站開發人員和設計師想利用大量組件來快速應用開發的小團隊。
  總的來說,應用軟體的開發不是那麼複雜,因為組件(頁類、控制項等)是緊密結合在一起,通常比MVC模型需要更少的代碼。

  ASP.NET MVC 架構的特點
  ASP.NET MVC 架構提供了以下特點:
  分離的應用程式任務(輸入邏輯、商務邏輯,和UI邏輯)、可測性、預設的驅動測試開發(TDD)。所有在MVC架構中的核心是interface-based和可以利用類比對象進行測試,類比對象能夠類比實際應用中對象的真實行為。你不一定需要在ASP.NET進程中運行控制層就能夠對應用程式進行單元測試,它使得單元測試更快速和靈活。你可以使用任何相容.net架構的單元測試架構。
  一個可擴充和可插接的架構。這個ASP.NET MVC架構的組件被設計過,這樣它們就能夠方便地更換或自訂。你可以插入你自己的視圖引擎,URL路由策略,action-method參數的序列化以及其他組件。這個 ASP.NET MVC 架構也支援用法相依性注射(DI)和控制反轉(IOC)容器模型。DI允許您注入對象到一個類中,而不是依賴這個類來建立對象本身。IOC規定,如果一個對象需要另一個對象,第一個對象應該得到來自外部源(如一個設定檔)的第二個對象。這使得測試更容易。
  一個強大的URL-mapping組件,它讓你建立擁有可理解並且可搜尋的URL的應用程式。URL並不需要包括副檔名,是設計用來支援URL命名模式, 這種模式對於搜尋引擎最佳化(SEO)和具象狀態傳輸(REST)定址能夠很好的運行。
  支援現有的ASP.NET 功能。ASP.NET MVC讓你使用功能,如表格認證和Windows認證、URL的授權,成員和角色,輸出和資料緩衝,會話和狀態管理等。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.