[ASP.NET MVC 小牛之路]01 - 理解MVC模式

來源:互聯網
上載者:User

ASP.NET
MVC 小牛之路]01 - 理解MVC模式

PS:MVC出來很久了,工作上一直沒機會用。出於興趣,工作之餘我將展開對MVC的深入學習,通過博文來記錄所學所得,並希望能得到各位園友的斧正。

本文目錄


理解一般意義上的MVC模式

MVC模式(Model-View-Controller)是軟體工程中的一種軟體架構模式,把軟體系統分為以下三個基本部分:

模型(Model):模型用於封裝與應用程式的商務邏輯相關的資料以及對資料的處理方法。“模型”有對資料直接存取的權力,例如對資料庫的訪問。“模型”不依賴“視圖”和“控制器”,也就是說,模型不關心它會被如何顯示或是如何被操作。
視圖(View):視圖能夠實現資料有目的的顯示。在視圖中一般沒有程式上的邏輯。
控制器(Controller) :控制器起到不同層面間的組織作用,用於控制應用程式的流程。它處理事件並作出響應。“事件”包括使用者的行為和資料模型上的改變。

上面的定文來自維基百科。根據上面的定文和我個人的理解,我畫了下面這樣一張表示MVC各部分關係的圖:

注意,不同的平台和不同的語言架構對MVC的定義各有不同,並沒有一個明確的定義。但大體上,MVC模式中的每個部分是分工明確、界定清晰的。操作資料的邏輯只存在於模型中,呈現資料的邏輯只存在於視圖中,處理使用者的請求和輸入只存在於控制器中。不管應用程式有多大、處於哪段生命週期,這種清晰的關注點分離(separation of concerns)的MVC模式讓我們的應用程式更容易維護和擴充。

理解領域模型

領域模型(Domain Model) 是對領域內的概念類或現實世界中對象的可視化表示。又稱概念性模型、領域物件模型、業務物件模型。它專註於分析問題領域本身,發掘重要的業務領域概念,並建立業務領域概念之間的關係。 領域模型是描述業務用例實現的物件模型,它是對業務角色和業務實體之間應該如何聯絡和協作以執行業務的一種抽象。

對於MVC應用程式,領域模型是一個非常重要的部分。在某種行業內,我們根據現實世界的實體、相關的操作和規則來建立模型(Model)。對於C#程式來說,領域模型就是一組封裝現實世界對象的C#類型(類、結構等);領域內對對象的一些操作(或者叫處理),則是定義在C#類型中的方法(Method);而領域內對對象操作的一些規則就是方法內部的邏輯處理,比如C#中的屬性讀寫器的get和set方法對讀寫類成員的控制。舉個例子:

比如銀行這個領域,個人的“銀行帳戶”可以建成一個模型。每個賬戶都有“銀行卡消費”這項操作,即銀行賬戶模型下的一個方法。“不能透支消費”是對這個帳戶使用銀行卡的約束規則,這個規則就是定義在銀行卡消費方法內部的邏輯處理。

上面說的雖然有點抽象,但還是很容易理解的。而我對領域模型的理解只能到這裡了,朋友們好好體會吧。總之,在MVC應用程式中,我們要有這樣一個概念:要通過Model操作資料,或添加一項操作,或給某項操作添加、改變一個規則,這些都是在改變應用程式的領域模型。

理解ASP.NET中的MVC

概括的講ASP.NET MVC有如下特點:

通過把項目分成model view和controller,這種任務分離(亦稱關注點分離),使得複雜項目更加容易維護,另外測試驅動組件使得應用程式也更加容易測試。
可擴充的簡便的架構。mvc架構被設計用來更輕鬆的移植和定製功能。你可以加入自己的視圖引擎,url重寫策略,重載action方法等。mvc也支援Dependency Injection (DI) 和 Inversion of Control (IOC)。強大的url重寫機制讓你更方便的建立容易理解和可搜尋的url。url可以不包含任何副檔名,並且可以重寫url使其對搜尋引擎更加友好。
對現有的asp.net程式的支援,可以使用asp.net現有的頁面標記、使用者控制項、模板頁、資料繫結等等。
……

在ASP.NET MVC中,控制器通常是繼承System.Web.Mvc.Controller的類。控制器中類的每個公用方法被稱為Action方法。ASP.NET路由系統內部根據請求的URL和路由配置調用對應的Action方法,完成領域模型的操作後,再選擇一個視圖呈現給用戶端。顯示了ASP.NET MVC中Controller、Model和View之間的關係:

另外,ASP.NET MVC架構可以使用任何被.NET支援的資料庫、ORM架構和其他工具。

對於初學者,我覺得對ASP.NET MVC的概念瞭解到這就差不多了。如果想更好的理解ASP.NET中 MVC的概念建議訪問MSDN文檔。

如果你是新手,為了協助你理解,建議自己做幾個簡單的Demo,可參考另一位園友的無廢話MVC入門教程系列博文。

以上就是[ASP.NET MVC 小牛之路]01 - 理解MVC模式的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

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