2.什麼是ASP.NET MVC?

來源:互聯網
上載者:User

1.2      什麼是ASP.NET MVC?

ASP.NET MVC提供了基於.NET Framework開發Web應用程式另一種選擇。最早發佈於2007年11月份,現在已經發布了4個版本。發佈於2011年1月的ASP.NET
MVC 3.0是第一個基於.NET架構 4.0的版本。ASP.NET MVC 4.0可以運行在.NET 4.0和.NET
4.5之上。

MVC是Model-View-Controller的縮寫,是Web開發領域非常流行的設計模式。

作為Web表單的另一個分支技術,ASP.NET MVC採取了不同的構建Web應用程式的方式。這以為你可以不用處理ASPX頁面、控制項、回傳、檢視狀態(ViewState)和複雜的基於事件的頁面生命週期。你只需要定義控制器(Controller)、活動(Action)和視圖(View),底層的ASP.NET平台保持不變,像Http處理常式(Http
Handler)和Http模組(Http Modules)仍然可用,你甚至可以在一個Web應用程式中混合使用MVC和Web表單兩種技術。ASP.NET
MVC和ASP.NET Web Form將在核心ASP.NET Framework之上並肩前行。

ASP.NET Web Pages

你可能在圖1.2上發現第三種基於ASP.NET
Framework的技術—ASP.NET Web Pages。

ASP.NET Web Pages與ASP.NET MVC3同時發布,作為初學者,如果你想學習ASP.NET的話,可以選擇除了Web
Forms和MVC的ASP.NET
Web Pages技術。它也比較適合開發簡單的網站,它的很多技術是和ASP.NET MVC共用的,如果你學習了ASP.NET
Web Pages,那麼你可以非常輕鬆的遷移到MVC開發。

你可以用Visual Studio開發ASP.NET
Web Pages程式,但微軟發布了專門針對它開發的平台:WebMatrix。他沒有Visual
Studio那些複雜的特性,只提供了Web開發必須的功能。介紹WebMatrix超出了本書的範圍,但本書中的一些例子是牽涉到ASP.NET
Web Pages的內容的。其中就包括Razor模板引擎,它是ASP.NET
MVC中使用C#或VB產生HTML的新方法。

 

                             

圖1.2 不同的ASP.NET技術之間的關係

我們將在本書講解ASP.NET架構的所有核心特性。以下是你想學到的ASP.NET MVC一些優勢:

  • 對HTML代碼完全控制;
  • 對URL完全控制;
  • 更好的關注點分離;
  • 可擴充性;
  • 可測試性;

隨著對本書閱讀的深入,這些優勢將逐個呈現。現在,我們將學習一下ASP.NET MVC架構所依賴的底層模式。為什麼選擇MVC模式?它來自哪裡?

1.2.1 MVC模式

上世紀70年代,MVC模式起源於SmallTalk開發組織,然而卻是隨著Ruby
on Rails(2003年)的出現變得普及開來。

MVC模式有3個組成部分

模型——軟體開發圍繞的領域。如果正在構建Blog系統,涉及的模型可能是Post和Comment。在一些上下文中,術語Model有可能指代視圖特定模型,視圖特定模型指只針對使用者介面顯示目的的領域模型。

視圖——模型的呈現,架構通常用視圖將內容呈現給瀏覽器,呈現結果的形式一般是標記語言。比如通過html顯示一篇部落格的內容。

控制器——是將視圖和模型聯絡在一起,是視圖與模型的協調者,主要負責接收用戶端輸入,操作模型並決定執行哪個Action(是顯示一個視圖還是跳轉到其他頁面),在部落格系統中,可以通過控制器尋找某篇文章的最近回複資訊並調用恰當的視圖,將之呈現出來。

圖1.3展示了視圖、模型和控制器之間是如何關聯到一起的。

圖1.3 MVC組件。

控制器接收使用者輸入,構建恰當的模型傳遞給視圖。控制器和視圖都依賴模型,但模型本身的構建不依賴控制器和視圖。

 

在.NET Framework中,ASP.NET MVC並不是首先實現MVC模式的。受Ruby on Rails的啟發,開源架構MonoRail早在2005年就在Web開發中引入了MVC模式。我們現在在ASP.NET
MVC中仍能看到它的一些理念和影響。

另外,在.NET平台上,除了ASP.NET MVC和MonoRail,還有一些其他的基於MVC的架構。包括:FubuMvc(http://mvc.fubu-project.org,一個開源的基於約定(Convention)的架構;OpenRasta(http://openrasta.org),一個致力於Web應用程式和Web服務開發的,基於資源和HTTP模組概念的開源項目。

通過引入MVC模式,ASP.NET MVC具有ASP.NET Web Form沒有的一些優勢。

1.2.2 ASP.NET MVC的改進

作為在.NET平台開發Web應用程式更好的選擇,ASP.NET MVC解決了ASP.NET Web Form很多不足之處。

更接近協議

HTTP協議是無狀態的,ASP.NET Web Form架構努力隱藏這個HTTP的本質。然而ASP.NET通過引入MVC模式,將一個HTTP請求映射到一個方法調用,具有Web開發背景的程式員通常會非常熟悉這種開發體驗。模型也被徹底簡化了,脫離了Web
Form中基於事件的複雜的頁面生命週期,同時對HTTP的抽象也是最小化的。

關注點分離

ASP.NET Web Form中使用者介面和代碼是緊耦合的。ASP.NET MVC提倡使用者介面和代碼(用於驅動介面顯示)分離的設計。這意味著程式員可以更好的控制和維護應用程式,因為當你改變控制器代碼時,不必必須改變使用者介面。

增強可測試性

通過將應用程式邏輯和介面相分離,ASP.NET MVC使得可以很容易獨立測試各個組件。可以單獨測試控制器類而不必測試實際的使用者介面。不像傳統的Web Forms,MVC控制器並不依賴於臭名昭著的HttpContext類,而是依賴於一個抽象功能約定,所以這很容易做自動化的單元測試。

迄今為止,你已經知道了ASP.NET MVC的一些優勢,接下來我們將簡單學習一下該架構的第3個版本相對於老版本有什麼新的特性。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.