【ASP.NET MVC系列】淺談MVC

来源:https://www.cnblogs.com/wangjiming/archive/2017/12/25/8109555.html
-Advertisement-
Play Games

描述 本篇文章主要概述ASP.NET MVC,具體包括如下內容: 1.MVC模式概述 2.WebForm概述 3.WebForm與MVC區別 4.ASP.NET MVC發展歷程 5.運用程式結構 6.ASP.NET MVC 預設約定 一 MVC模式概述 1. MVC模式運用領域 分析: (1)當前, ...


描述

本篇文章主要概述ASP.NET MVC,具體包括如下內容:

1.MVC模式概述

2.WebForm概述

3.WebForm與MVC區別

4.ASP.NET MVC發展歷程

5.運用程式結構

6.ASP.NET MVC 預設約定

 一 MVC模式概述

1. MVC模式運用領域

分析:

(1)當前,MVC作為一種主流框架,被廣泛運用,如JAVA Web開發,.NET ASP,NET MVC

(2)MVC模式被廣泛運用於中間件,如RabbitMQ;

(3)MVC模式廣泛運用於介面開發,如ASP.NET WebAPI;

(4)其他領域;

2.MVC大致流程概述

 

分析:

(1)MVC由三大核心模塊構成:控制器(Controller,簡稱C),模型(Model,簡稱M)和視圖(View,簡稱V);

(2)View負責視圖呈現,Model負責數據處理,Controller負責處理視圖與模型之間邏輯;

(3)WebForm中,一般是UI+BLL+DAL+Utility+WebService模式,而在MVC中,一般採用SOA+WebAPI+DAL+Model+MQ+AOP+Docker模式;

二 WebForm概述

1. WebForm生命周期

分析:

(1)WebForm Page生命周期,本質上為幾個方法的運用;

(2)重點理解管道;

(3)分析頁面生命周期時,應結合http本質來綜合分析;

2.WebForm請求響應流程概述

分析:

(1).在WebForm中,資源可以分為靜態資源和動態資源:

    靜態資源:JS文件,Images文件,CSS文件和Html文件等;

    動態資源:.aspx,.ashx,.ascx等;

(2).在WebForm中,瀏覽器向IIS發出資源請求,當IIS收到請求URL時,先判斷該請求是動態資源請求還是靜態資源請求,然後分別按照不同的模式去伺服器搜索資源。

 3. WebFrom頁面構成

 

分析:

(1)WebForm中,每個頁面對應一個類,頁面淚繼承Page類,我們稱為頁面類,如上圖中Default頁面對應的類為_Default,

(2)每個頁面由三部分組成:前端代碼(Default.aspx),後臺代碼(Default.aspx.cs)和設計器(Default.aspx.designer.cs);

三  WebForm與MVC區別

1.WebForm不利於前後端分離,MVC前後端分離;

2.請求url不同,一般情況,WebForm請求的是伺服器上的具體路徑資源(當然你可以配置虛擬路勁),而MVC卻並非如此(按照路由規則,一般情況是:/控制器/視圖);

3.與MVC相互比較,響應時間(由於是服務端控制項,伺服器響應耗時)和帶寬問題(WebForm會存在很多垃圾數據,如ViewState)

 

 (4)WebForm中,一般是UI+BLL+DAL+Utility+Webservice模式,而在MVC中,一般採用SOA+WebAPI+DAL+Model+MQ+AOP+Docker模式;

四   ASP.NET MVC發展歷程

 五  運用程式結構

分析:

(1)在ASP.NET Web 框架中,目錄結構是可以被擴展和修改的。

基於MVC框架自動生成的目錄結構:

 

但在實際項目實踐中,一般都需要調整,調整後的目錄結構如下所示:

 “空模板”,添加“單元測試”

 

預設生成結構如下

 

傳統三層結構:

 

基於SOA架構

當然,在UI層,一般情況是需要分區的

六  APS.NET MVC基架約定

 

分析:

基於ASP.NET MVC 基架生成的MVC,有些預設的約定,如控制器必須以Cotroller結尾等,這些預設約定,不需要在Web.config配置文件中配置;

七   ASP.NET  B/S基架包含的模板

分析:

1..NET分為C/S和B/S,B/S基架包含的模板為WebForm,MVC,WebApi,Single Page Application,Azure API運用;

八  其他內容

路由,控制器,視圖,模型,表單和Html輔助方法,數據註解和驗證,成員資格、授權和安全性,Nuget,WebApi,依賴註入,單元測試,MVC高級主題,將在後續文章中與大家分享。

九 參考文獻

【01】ASP.NET MVC5 高級編程(Jon Galloway,Brad Wilson,K.Scott Allen,David Matson ,孫遠帥 譯)

【02】MSDN

 

十  版權區

  • 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。
  • 博主網址:http://www.cnblogs.com/wangjiming/。
  • 極少部分文章利用讀書、參考、引用、抄襲、複製和粘貼等多種方式整合而成的,大部分為原創。
  • 如您喜歡,麻煩推薦一下;如您有新想法,歡迎提出,郵箱:[email protected]
  • 可以轉載該博客,但必須著名博客來源。

   

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 單鏈表的12種基本操作 ...
  • 文件操作 1,文件路徑:d:\xxxx.txt 絕對路徑:從根目錄到最後 相對路徑:當前目錄下的文件 2,編碼方式:utf-8 3,操作方式:只讀,只寫,追加,讀寫,寫讀...... (1)只讀--r f =open('路徑',mode='r',encoding='編碼方式') content=f. ...
  • 一、OGNL表達式語言 Ognl Object Graphic Navigation Language(對象圖導航語言),它是一種功能強大的表達式語言(Expression Language,簡稱為EL),通過它簡單一致的表達式語法,可以存取對象的任意屬性,調用對象的方法,遍歷整個對象的結構圖,實現 ...
  • 一、開啟註冊表“win鍵+R鍵”並輸入regedit 二、在註冊表項 HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor 新建一個項,並修改數據為“cd /d C:\”,在/d空格後就是你要的路徑 修改成功是這樣的 ...
  • 描述: 森炊今天沒吃藥很開森,家裡購置的新房就要領鑰匙了,新房裡有一間他自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說:“你的房間需要購買哪些物品,怎麼佈置,你說了算,只要不超過N元錢就行”。今天一早,森炊就開始做預算了,他把想買的物品分為兩類:主件與附件,附件是從屬於某個主件的,下表就是一 ...
  • 工作中經常需要瞭解plcdb塊的數據!由於工作使用OPC類庫進行通訊,開發,配置,使用都比較麻煩, 特在網上找到一個名為PLCcom.dll的類庫,可以實現PLC讀寫操作,下麵演示C#如何使用PLCcom.dll類庫 首先看一下封裝對PLCcom調用的幫助類: using System;using ...
  • 知識點目錄 >傳送門 首先介紹什麼是抽象類? 抽象類用關鍵字abstract修飾的類就是叫抽象類,抽象類天生的作用就是被繼承的,所以不能實例化,只能被繼承。而且 abstract 關鍵字不能和sealed一起使用,因為sealed是不允許繼承,這樣就是抽象類的意義衝突了。 現在我們知道知道了抽象類長 ...
  • "上一篇文章" 簡單簡單分析了fiddlercore自帶樣例的代碼,本篇文章進入主題,介紹如何使用fiddlercore截獲 HTTPS 流量。 當時學習完樣例代碼後,我覺得結合註釋來抓HTTPS的包應該也很簡單,結果按照註釋的提示修改了下代碼後,還是抓不到,反覆嘗試了很多方法都沒有解決,在goog ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...