【.NET特供-第三季】ASP.NET MVC系列:傳統WebForm網站和MVC網站運行機制對比

來源:互聯網
上載者:User

標籤:webform   mvc   

本文以圖形化的方式,從‘運行機制’方面對比傳統WebForm網站和MVC網站。

請參看以形:


一、運行機制

當我們訪問一個網站的時候,瀏覽器和伺服器都是做了哪些動作呢?

(本文只是提供一個簡單的運行過程,有興趣的找資料研究一下複雜的網路過程。)

 

(一)WebForm網站運行機制

假設為:www.baidu.com/index.aspx

1、Http請求(物理地址:index.aspx)

①發送請求

    瀏覽器向伺服器發送請求報文,此時由IIS虛擬目錄接受。(通過配置過IIS,把網站掛載在伺服器上,通過訪問虛擬目錄的方式訪問網站的。)

②轉交請求

    伺服器端的IIS軟體接收到請求後,把請求交給.NET FrameWork進行處理

③建立頁面類對象

    .NET FrameWork根據請求的地址index.aspx,會建立對應的index_aspx類的對象(頁面對象)。

IIS的內部機制:

  1. 實現一個IHttphandler的介面
  2. 該介面實現一個ProcessRequest方法
  3. 該方法會調用對應頁面的Page_load方法
    • 處理的商務邏輯或者是訪問資料庫的代碼
    • 要輸出的Html或者其它內容

2、返回給瀏覽器

①轉交回複

通過IIS傳輸出給瀏覽器,要輸出的html元素或其他內容(html+js+css等)

②解析為圖形介面

瀏覽器解析html代碼,並翻譯為圖形化介面

 

(二)MVC網站的運行機制

假設為:www.baidu.com/news/index

1、Http請求(邏輯地址:news/index)

①發送請求(news/index)

②轉交請求(同上)

③建立類對象+方法

    .NET FrameWork根據路由配置,解析URL,並建立news類的對象,並調用對象的index方法。通過View方法載入視圖,然後訪問視圖檔案夾下的index.cshtml 

2、返回給瀏覽器(同上)

 

二、區別

1、請求方式

①WebForm:index.aspx頁面

www.baidu.com/index.aspx

    在使用者看來請求的是index.aspx頁面,實際上伺服器端啟動並執行是index.aspx對應的類(前台頁面類的對象),先調用ProcessRequest方法,然後調Page_Load方法

②MVC:類名+方法名

www.baidu.com/news/index

2、伺服器端建立對象

①webForm:頁面類對象

伺服器端建立index.asp的前台頁面類的對象‘index.aspx’

②MVC:類對象

MVC:建立news類對象,並調用Index方法。

    .NET FrameWork根據路由配置,解析URL,並建立news類的對象,並調用對象的index方法。通過View方法載入視圖,然後訪問視圖檔案夾下的index.cshtml

3、傳值方式

①WebForm:CodeBehand

前台-->後台

    前台頁面繼承於後台頁面,可以通過<%...%>方式,訪問 台頁面公開的屬性(強耦合)

後台-->前台

    包含runat=Server控制項的前台頁面,都會以變數的方式存在於後台類中,供後台調用

②MVC: ViewData

    把ViewData當作一個中間類在Controller和View之間傳輸資料。好處:強型別視圖(將在後續文章中進行論述)。

 

三、總結

本文分別從以下方面,對比了傳統WebForm網站和MVC網站的區別:請求方式、創製方式、伺服器建立對象。

雖然如此,但WebForm和MVC都是基於ASP.NET管道模型上的兩種不同的開發方式。

    (文中粗粒度的知識點,將在後續文中陸續展開)

    



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.