2012-02-27 49 views
-1

可能重複:
What is the 'page lifecycle' of an ASP.NET WebForm?aspx頁面是如何執行的?

我在.NET中研究了大量的文章對執行過程。我發現的是

語言代碼(C#,VB,J#等)---->語言編譯器---> MSIL代碼-----> 現在這個MSIL代碼是由Just-in這是CLR裏面的時間

這個過程對於類庫執行或windows應用程序或控制檯應用程序是可以的,但是在asp.net中我們有一個.aspx頁面+後面的代碼(c#,vb等)... In那種情況下這個執行過程如何發生?

+0

從[faq] - 「*你的問題應該是合理的範圍,如果你可以想象一整本書能夠回答你的問題,那你問得太多了。*」這類問題並不是很好適合這個網站。有很多書籍/文章/資源可以瞭解這個主題。當然,這只是我的觀點。 – jadarnel27 2012-02-27 18:21:39

回答

3

ASP.NET將處理您的ASPX像這樣的代碼隱藏文件:

  1. 負載ASPX從磁盤
  2. 解析ASPX代碼到代碼DOM是可以通過可擴展鉤子編輯
  3. 將該代碼保存到磁盤上的C#文件中
  4. 使用csc.exe將此代碼編譯爲程序集。/bin文件夾中的所有內容都可以作爲參考。
  5. 加載組件。
  6. 加載所有倉組件。
  7. 在新編譯的程序集中調用渲染代碼。這將開始JITing和執行的通常過程。
+1

我認爲必須有一個編譯器來處理aspx頁面,但是你說aspx和c sharp代碼都是csc.exe ...請澄清 – 2012-02-27 18:19:51

+0

我改進了答案。我希望它有幫助。 – usr 2012-02-27 18:25:40

+2

他在這裏有澄清 - 一個ASPX文件與後面的代碼一起轉換爲C#(都是兩個部分類形成一個完整的類)。然後編譯器被用來創建IL代碼。 – 2012-02-27 18:26:36

0

這可能是一個有點過分細講這裏,但你會想看看了ASP.Net頁面生命週期:

http://msdn.microsoft.com/en-us/library/ms178472.aspx

附加信息的建議被提意見: 實際前執行,IIS編譯頁面及其代碼後面的代碼或從編譯緩存(ASP.Net動態編譯)中檢索編譯的代碼;更多資訊:

http://msdn.microsoft.com/en-us/library/ms366723.aspx

+0

頁面生命週期不是編譯生命週期。 – usr 2012-02-27 18:13:02

+0

@dirk - usr是對的...這不是我的問題的答案 – 2012-02-27 18:15:09

+0

編譯生命週期可以在[這裏]找到(http://msdn.microsoft.com/en-us/library/ms178473.aspx)(在該名稱的部分)。 – 2012-02-27 18:15:44