首頁 後端開發 C#.Net教程 [ASP.NET MVC 小牛之路]01 - 理解MVC模式

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

Dec 30, 2016 pm 01:42 PM

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

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

本文目錄


理解一般意義上的MVC模式

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

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

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

[ASP.NET MVC 小牛之路]01 - 理解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 小牛之路]01 - 理解MVC模式

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

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

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

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


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP開發:使用 CodeIgniter 實作 MVC 模式和 RESTful API PHP開發:使用 CodeIgniter 實作 MVC 模式和 RESTful API Jun 16, 2023 am 08:09 AM

隨著Web應用程式的不斷發展,更加快速和有效率地開發應用程式變得非常重要。並且,隨著RESTfulAPI在網路應用程式中的廣泛應用,對於開發人員來說,必須理解如何建立和實作RESTfulAPI。在本文中,我們將討論如何使用CodeIgniter框架實現MVC模式和RESTfulAPI。 MVC模式簡介MVC(Model-Vie

了解Laravel能實現的功能與特點 了解Laravel能實現的功能與特點 Mar 07, 2024 am 08:06 AM

Laravel是一款流行的PHP框架,廣泛應用於Web開發領域。它提供了許多強大的功能和特點,使得開發人員可以快速建立高品質、可維護的網路應用程式。在本文中,我們將深入探討Laravel能實現的功能和特點,並提供具體的程式碼範例說明。 1.MVC架構Laravel採用了基於MVC(Model-View-Controller)設計模式的架構,使程式碼的組織和管

如何在PHP框架中實作MVC架構模式? 如何在PHP框架中實作MVC架構模式? Jun 05, 2023 pm 03:31 PM

隨著網路科技的快速發展,各種程式語言和框架也不斷湧現,PHP作為一種全球流行的程式語言,被廣泛應用於Web開發領域。隨著Web應用的不斷增加和複雜化,為了更好的組織和管理程式碼,開發人員採用了MVC(Model-View-Controller)架構模式。 MVC模式是一種軟體設計模式,將應用程式分成三個部分:資料(Model)、使用者介面(View)和控制器(C

在ThinkPHP6中使用MVC模式 在ThinkPHP6中使用MVC模式 Jun 20, 2023 am 11:06 AM

ThinkPHP6是一個流行的PHP框架,它使用MVC(Model-View-Controller)模式來組織應用程式的邏輯結構。 MVC模式是一種用於物件導向程式設計的設計模式,它將應用程式分為三個部分:模型(Model)、視圖(View)和控制器(Controller)。每個部分都有其獨立的職責,使得應用程式易於維護和擴展。本文將介紹如何在ThinkPHP6中

為什麼選擇CodeIgniter框架? 為什麼選擇CodeIgniter框架? Jun 03, 2023 am 08:21 AM

CodeIgniter是一個簡單、輕量級的PHP框架,被廣泛用於快速開發Web應用程式。自2006年問世以來,CodeIgniter一直是許多開發者的首選框架。在這篇文章中,我們將探討為何選擇CodeIgniter框架,並討論其主要優點。輕量級CodeIgniter是一個輕量級框架,框架核心檔案只有2MB左右,這讓它在運行速度和效能方面表現出色。與其他龐

PHP中的請求回應設計 PHP中的請求回應設計 May 23, 2023 am 08:22 AM

在Web開發中,請求回應是非常重要的概念。對於PHP開發者來說,了解請求回應的設計是十分必要的。在PHP中,請求指客戶端傳送給伺服器的資料。一般而言,這些資料是由表單提交或AJAX請求所發出的。請求的內容可以包含HTTP請求方法、請求頭部、請求參數、請求體等資訊。而回應則代表伺服器對客戶端請求的回傳結果。一般而言,響應的內容可能包括H

PHP8框架開發MVC模式:解決挑戰的實用建議 PHP8框架開發MVC模式:解決挑戰的實用建議 Sep 11, 2023 pm 01:25 PM

【導言】MVC(Model-View-Controller)模式在Web應用程式開發中被廣泛應用。 PHP是一種非常流行的程式語言,也擁有許多優秀的開發框架,如Laravel和Symfony等。隨著PHP8的發布,開發者對於如何在PHP8中合理地開發MVC模式的應用程式提出了一些挑戰。本文將為大家提供一些實用的建議,以幫助開發者克服這些挑戰。 【一、PHP8的新

PHP8框架開發MVC模式:提升程式碼可維護性的最佳實踐 PHP8框架開發MVC模式:提升程式碼可維護性的最佳實踐 Sep 11, 2023 pm 08:12 PM

PHP8框架開發MVC模式:提高程式碼可維護性的最佳實踐引言:隨著互聯網的快速發展,網站和Web應用程式的需求越來越多樣化和複雜化。為了滿足這種需求,開發人員需要使用高效可靠的框架來簡化開發流程。在眾多的PHP框架中,MVC(Model-View-Controller)模式是最常見且功能最強大的架構之一。本文將介紹PHP8框架開發MVC模式的最佳實踐,以提高世代

See all articles