1. 程式人生 > >【ASP.NET MVC系列】淺談MVC

【ASP.NET MVC系列】淺談MVC

後端 nbsp 文獻 ats 路勁 onf 將在 cot get

技術分享圖片描述

本篇文章主要概述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

【ASP.NET MVC系列】淺談MVC