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

一、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各層次職責分解:

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

2010062414392187.png

模型(Model):

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

視圖(View):

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

控制器(Controller):

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

3、各層間調用關係:

我們先來看一下當用戶訪問mvc框架站點時的序列圖

2010062415001961.jpg

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

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

2010062415085849.png

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

二、WEB Form  VS  ASP.NET MVC

2010062415325218.png 

三、如何下載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


本文轉自 你聽海是不是在笑 博客園博客,原文鏈接:http://www.cnblogs.com/nuaalfm/archive/2010/06/24/1764458.html   ,如需轉載請自行聯繫原作者