【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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...