ASP.NET 之 MVC框架及搭建教程(推薦)
一、MVC簡(jiǎn)介
MVC:Model-View-Controller(模型-視圖-控制器),MVC是一種軟件開發(fā)架構(gòu)模式。
1、模型(Model)
模型對(duì)象是實(shí)現(xiàn)應(yīng)用程序數(shù)據(jù)域邏輯的應(yīng)用程序部件。 通常,模型對(duì)象會(huì)檢索模型狀態(tài)并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中。 例如,Product 對(duì)象可能會(huì)從數(shù)據(jù)庫(kù)中檢索信息,操作該信息,然后將更新的信息寫回到數(shù)據(jù)庫(kù)內(nèi)的 Product 表中。
2、視圖(View)
視圖是顯示應(yīng)用程序用戶界面 (UI) 的組件。通常,此 UI 是用模型數(shù)據(jù)創(chuàng)建的。Product表的編輯視圖便是一個(gè)視圖示例,該視圖基于 Product 對(duì)象的當(dāng)前狀態(tài)顯示文本框、下拉列表和復(fù)選框。
3、控制器(Controller)
控制器是處理用戶交互、使用模型并最終選擇要呈現(xiàn)的視圖來(lái)顯示 UI 的組件。 在MVC 應(yīng)用程序中,視圖僅顯示信息;控制器則用于處理和響應(yīng)用戶輸入和交互。 例如,控制器處理查詢字符串值,并將這些值傳遞給模型,而模型可能會(huì)使用這些值來(lái)查詢數(shù)據(jù)庫(kù)。
4.附上關(guān)系圖:


二、為什么會(huì)有 MVC,有什么優(yōu)點(diǎn),缺點(diǎn)
1、為什么會(huì)有 MVC
Asp.net Web Form 存在的問題:
1. 響應(yīng)時(shí)間:服務(wù)請(qǐng)求的耗時(shí)
2. 帶寬消耗:同時(shí)可傳輸多少數(shù)據(jù):
ASP.NET 開發(fā)人員都非常熟悉 ViewStates,因?yàn)樗軌蜃詣?dòng)保存 post 返回的狀態(tài),減少開發(fā)時(shí)間。但是這種開發(fā)時(shí)間的減少會(huì)帶來(lái)巨大的消耗,Viewstate 增加了頁(yè)面的大小。在做的加載測(cè)試中,與 MVC 對(duì)比,我們發(fā)現(xiàn) Viewstate 增加了兩倍的頁(yè)面存儲(chǔ)。

3. 單元測(cè)試:無(wú)法執(zhí)行自動(dòng)化測(cè)試,必須手動(dòng)測(cè)試:
Asp.net webform 頁(yè)面都繼承了“System.Web.UI.Page”類。但是這些類并不像普通的類一樣能夠到處復(fù)用和實(shí)例化。換句話來(lái)講,在 Weform 類中永遠(yuǎn)都不可能執(zhí)行以下代碼中的操作:
WebForm1 obj = new WebForm1();
obj.Button1_Click();
既然無(wú)法實(shí)例化后臺(tái)代碼類,單元測(cè)試也是非常困難的,也無(wú)法執(zhí)行自動(dòng)化測(cè)試。必須手動(dòng)測(cè)試。
2、MVC 框架的優(yōu)點(diǎn)
• 通過(guò)將應(yīng)用程序分為模型、視圖和控制器,化繁為簡(jiǎn)的工作更加輕松。
• 它不使用視圖狀態(tài)或基于服務(wù)器的窗體。 這使得 MVC 框架特別適合想要完全控制應(yīng)用程序行為的開發(fā)人員。
• 它使用一種通過(guò)單一控制器處理 Web 應(yīng)用程序請(qǐng)求的前端控制器模式。 這使您可以設(shè)計(jì)一個(gè)支持豐富路由基礎(chǔ)結(jié)構(gòu)的應(yīng)用程序。
• 它為測(cè)試驅(qū)動(dòng)的開發(fā) (TDD) 提供了更好的支持。
• 它非常適合大型開發(fā)團(tuán)隊(duì)支持的 Web 應(yīng)用程序,以及需要對(duì)應(yīng)用程序行為進(jìn)行嚴(yán)格控制的 Web 設(shè)計(jì)人員。
3、MVC 框架的缺點(diǎn)
• 視圖(View)與控制器(Controller)之間連接過(guò)于緊密:視圖與控制器是相互分離,卻是聯(lián)系緊密的部件,不能獨(dú)立重用。
• 視圖(View)對(duì)模型(Model)數(shù)據(jù)訪問低效:依據(jù)模型操作接口的不同,視圖可能需要多次調(diào)用才能獲得足夠的顯示數(shù)據(jù)。
三、三層框架搭建
1、概述
a. 數(shù)據(jù)訪問層(EntityFramework):主要負(fù)責(zé)對(duì)數(shù)據(jù)的訪問管理,而不必管其他操作,為業(yè)務(wù)邏輯層提供方法調(diào)用。
b. 業(yè)務(wù)邏輯層:主要負(fù)責(zé)業(yè)務(wù)邏輯的處理,對(duì)數(shù)據(jù)層的操作。也就是說(shuō)把一些數(shù)據(jù)層的操作進(jìn)行組合。
c. 表示層:主要對(duì)用戶的請(qǐng)求接受,以及數(shù)據(jù)的返回,為客戶端提供應(yīng)用程序的訪問。
d. 三層框架引用關(guān)系圖:

2、搭建 MVC三層框架項(xiàng)目
一、創(chuàng)建 ASP.NET MVC項(xiàng)目
a. 打開 Visual Studio
b. 操作:文件 -> 新建 -> 項(xiàng)目 -> 確定

c. 在彈出的窗體上選擇: MVC -> 確定 即可

二、添加三層項(xiàng)目
1.BLL(業(yè)務(wù)層)、2.DAL(數(shù)據(jù)層)、3.Model(實(shí)體層)
在解決方案上操作右鍵,選擇【添加項(xiàng)目】

三、添加三層引用關(guān)系
1. 三層間的引用關(guān)系如下:
♢ DAL 引用 Model
♢ BLL 引用 DAL 和 Model
♢ 創(chuàng)建的 ASP.NET MVC 項(xiàng)目引用 BLL 和 Model
2. 引用方法:在對(duì)應(yīng)的項(xiàng)目上操作右鍵,選擇【引用】(也可直接在項(xiàng)目中的“引用”上操作右鍵)

四、了解目錄結(jié)構(gòu)及作用

以上這篇ASP.NET 之 MVC框架及搭建教程(推薦)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Asp.net中把Excel數(shù)據(jù)存儲(chǔ)至SQL Server中的具體實(shí)現(xiàn)方法
Asp.net中把Excel數(shù)據(jù)存儲(chǔ)至SQL Server中的具體實(shí)現(xiàn)方法,需要的朋友可以參考一下2013-06-06
asp.net SqlDataReader綁定Repeater
asp.net SqlDataReader綁定Repeater2009-04-04
解協(xié)議時(shí)有符號(hào)和無(wú)符號(hào)整數(shù)型處理
這篇文章主要介紹了解協(xié)議時(shí)有符號(hào)和無(wú)符號(hào)整數(shù)型處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
給Asp.Net初學(xué)者的關(guān)于繼承和多態(tài)性的例子
給Asp.Net初學(xué)者的關(guān)于繼承和多態(tài)性的例子...2006-09-09
詳解ASP.NET Core 之 Identity 入門(三)
本篇文章主要介紹了ASP.NET Core 之 Identity 入門,主要負(fù)責(zé)對(duì)用戶的身份進(jìn)行認(rèn)證,有興趣的可以了解一下。2016-12-12
.Net學(xué)習(xí)筆記之Layui多圖片上傳功能
這篇文章主要給大家介紹了關(guān)于.Net學(xué)習(xí)筆記之Layui多圖片上傳功能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用.Net具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
淺析如何在?ASP.NET?Core中實(shí)現(xiàn)速率限制
在?ASP.NET?Core?中實(shí)現(xiàn)速率限制(Rate?Limiting)中間件可以幫助你控制客戶端對(duì)?API?的請(qǐng)求頻率,防止濫用和過(guò)載,下面我們就來(lái)看看具體實(shí)現(xiàn)方法吧2025-01-01
asp.net利用存儲(chǔ)過(guò)程實(shí)現(xiàn)模糊查詢示例分享
這篇文章主要介紹了asp.net利用存儲(chǔ)過(guò)程實(shí)現(xiàn)模糊查詢的示例,大家參考使用吧2014-01-01
.NET Core API之格式化輸出對(duì)象OutputFormatter
這篇文章介紹了.NET Core API之格式化輸出對(duì)象OutputFormatter,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04

