當前位置:編程學習大全網 - 編程語言 - ASPX與CS所謂的代碼分離的原理

ASPX與CS所謂的代碼分離的原理

1、其實aspx與cs都不是最終運行的程序,而是環境根據他們來生成最終運行的程序源文件cs 再編輯dll運行

在“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”可應該可以找到最終源文件.cs,而不會有最終的"aspx"

2、aspx是直接用於環境編譯的“模版”

在這裏,妳可以使用private 聲明變量,實例化後,可頁面直接使用

這裏的runat="server"控件最終編輯及是加入到Page.Controls中(除非是模板中為對應父控件的Controls)

而HTML塊,編譯為litercontrol控件加入

3、如果有對應的cs,即@Page指令Inherits指的類為基類,如果沒有指定即使用System.Web.UI.Page為基類(所以要求Inherits指定的類也必須繼承於System.Web.UI.Page)

所以在cs妳定義的字段必須聲明為protected或更高的訪問範圍才能被aspx上使用,當然事件,方法都是

------------------------------------

妳說的經編輯後,只是壹個aspx,而所有的cs將被編輯成dll在bin目錄下了

這個aspx留下的目的,僅是提供環境請求,及編譯使用的

當然,如果妳使用httpmodule捕捉請求的話,也可以沒有aspx等任何文件

-----------------------------------

aspx與asp從這個角度說,asp是解析執行的腳本(每次請求都要解析)而aspx是預編譯的(所以在第壹次請求時會較慢壹點,而第二次就很快了),在執行的原理是完全不壹樣的

妳也可以理解aspx是基於control編輯編程的,頁面上每壹個runat="server"IDE都默認生成protected變量對應,妳可以對每壹個control進行數據等操作,最後每個control都有自己的render方法來輸出HTML

-----------

也許妳會想到,如果有大量的邏輯數據要處理,就不能做到像asp壹樣(buffer=false)時壹點點HTML輸出來,是的,這裏aspx要想實現這樣的效果就是要response.write,而不是使用控件,這種情況,MS推薦使用ashx

-----------

所以aspx可像windows編程壹樣,cs控制著aspx上每個控件的屬性方法事件,而不必管理HTML輸出的先出先後順序,而順序就在aspx上了

-----------

aspx在執行管道上,還有很多的特性,如cache,httpheader,httpmodule等,等著妳的去研究

  • 上一篇:流星蝴蝶劍單機版有什麽秘訣?如何添加機器人?
  • 下一篇:牧人2磁帶是軟件宏還是硬件宏?
  • copyright 2024編程學習大全網