Asp.net MVC2.0系列1-基礎知識

來源:互聯網
上載者:User

一、MVC基礎介紹

模型-視圖-控制器(MVC)可能是近年來網路編程圈子裡最常被提及的模式之一,微軟推出Asp.net mvc後更是推波助瀾,但由於在.net上MVC起步比較晚所以在.net平台上使用MVC架構做項目的並不是很多,絕大多數項目還是沿用著WebForm方案,當然這裡並不是想說WebForm方案就不好,微軟也一再強調Asp.net mvc並不是用來替代WebForm的,Asp.net mvc只是為開發人員提供了新的選擇,本系列希望可以協助大家快速瞭解Asp.net mvc。

1、曆史

MVC不是一種設計模式(design pattern),它是一種架構模式(Architectural pattern),用以描述應用程式的結構以及結構中各部分的職責和互動方式。最早由Trygve Reenskaug在1974年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程式語言Smalltalk發明的一種軟體設計模式。MVC模式的目的是實現一種動態程式設計,使後續對程式的修改和擴充簡化,並且使程式某一部分的重複利用成為可能。除此之外此模式通過對複雜度的簡化使程式結構更加直觀。軟體系統通過對自身基本部份分離的同時也賦予了各個基本部分應有的功能。目前我們在網路開發中所採用的這種模式實際上是原版模式的一個改編版。這種改編版架構模式的瘋狂流行是由於兩個極其流行的開發架構將這種模式包含了進來,它們是:Struts 和 Ruby on Rails。這兩個開發架構給稍後誕生的數百架構打上了深深的烙印。Asp.net mvc也深受其影響。

2、MVC各層次職責分解:

模型-視圖-控制器架構模式背後的思想非常簡單:我們的應用程式中必須區分下面這些職責:

模型(Model):

模型是指運用於資料之上的資料規則和資料內容,它一般對應於應用程式所要管理的對象。在軟體系統中,任何事物都可以被抽象成可以對其以某種方式進行處理的資料模型。應用程式中的使用者,資訊以及圖書是什嗎?它們只是一堆必須按照對應規則處理的資料(日期不能是未來的日期,電子郵件有特定的格式,名字的長度不能超過多少字元等等)模型給控制器提供了一個使用者請求內容對應的資料表達(比如資訊,書,相簿)。不管我們如何向使用者展示,這個資料模型都不會變。這也是我們為什麼可以隨意選擇使用哪個視圖來展示資料的原因。模型包含我們應用程式邏輯中最重要的組成部分,這些邏輯運用於我們要處理的問題過程中。控制器更多的是包含應用程式自身的內部組織邏輯(更像管家)。

視圖(View):

視圖提供了展示模型資料的不同方式。它可能是資料填充的模板。視圖可以有多個,而控制器則決定使用哪個視圖。一個網路應用通常由許多控制器,模型和視圖組成。控制器可以被看成是一個主控制器,用於接收使用者的所有請求,然後在調用特定的控制器來處理不同的情況。

控制器(Controller):

控制器掌管著使用者的請求(當使用者點擊圖形化使用者介面(GUI)上的元素執行操作時,控制器會收到HTTP GET或者POST請求)。它的主要功能就是調用並協調需要的資源/對象來執行使用者請求。通常控制器會為任務調用合適的模型,以及選擇合適的視圖。

3、各層間調用關係:

我們先來看一下當使用者訪問mvc架構網站時的順序圖表

現在我們假設正在開發一個人事系統的員工展示業務,首先Controller收集使用者提交過來的條件資訊,根據條件資訊調用Model,在Model中會把條件傳給商務邏輯層,商務邏輯層會根據條件從資料庫中獲得相應的資料,然後將資料返回給Model,在Model中會將資料進行封裝後傳給Controller,然後Controller再根據需要顯示的格式將相應的資料傳給View,在View中執行顯示邏輯,最後Controller將所要的View傳給使用者。

這裡還要注意mvc各層的依賴關係:

Controller可以直接控制View和Model,View中可以直接控制Model,但Model中不要強依賴View中的內容只能通過弱依賴,比方說可以有些Model是專門為某些View而設計的,但不能在Model中直接調用View邏輯,從Model中應該看不到任何Controller的邏輯。

二、WEB Form  VS  ASP.NET MVC

 

三、如何下載ASP.NET MVC 2

ASP.NET MVC 2是設計來可在VS 2008 / .NET 3.5,以及VS 2010 / .NET 4下工作的。同時支援2個版本意味著你今天就可以開始使用,而不必等著升級到VS2010 / .NET 4才用。

點擊這裡下載針對 .NET 3.5 和 VS 2008的 ASP.NET MVC 2,可在同個機器上與ASP.NET MVC 1.0並列安裝。

ASP.NET MVC 2是 VS 2010 / .NET 4的內建群組件,這意味著,在你安裝Visual Studio 2010的任意一個版本之後,你不用下載或安裝別的就可以得到ASP.NET MVC 2。

四、參考:

http://www.cnbeta.com/articles/107924.htm

http://www.cnblogs.com/ywqu/archive/2010/06/21/1762264.html

http://blog.joycode.com/scottgu/archive/2010/01/17/115853.joy

相關文章

聯繫我們

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