ASP.NET中App_Code,App_Data等檔案夾的作用

來源:互聯網
上載者:User
1.  Bin檔案夾
Bin檔案夾包含應用程式所需的,用於控制項、組件或者需要引用的任何其他代碼的可部署程式集。該目錄中存在的任何.dll文  件將自動地連結到應用程式。

2.  App_Browser檔案夾

該可選的檔案夾包含.browser檔案。.browser檔案描述瀏覽器(不管是行動裝置瀏覽器,還是台式機瀏覽器)的特  征和功能。

3.  App_Code檔案夾

App_Code檔案夾正好在Web應用程式根目錄下,其儲存所有應當作為應用程式的一部分動態編譯的類檔案。這些類檔案自  動連結到應用程式,而不需要在頁面中添加任何顯式指令或聲明來建立依賴性。App_Code檔案夾中放置的類檔案可以包含任何可識別的ASP.NET組 件  ——自訂控制項、輔助類、build提供者、業務類、自訂提供者、HTTP處理常式等。

    注意    在開發時,對App_Code檔案夾的更改會導致整個應 用程式重新編譯。對於大型項目,這可能不受歡迎,而且很耗時。為此,鼓勵大家將代碼進行模組化處理  到不同的類庫中,按邏輯上相關的類集合進行組織。應用程式專用的輔助類大多應當放置在App_Code檔案夾中。

App_Code檔案夾中存放的所有類檔案應當使用相同的語言。如果類檔案使用兩種或多種語言編寫,則必須建立特定語言的子目錄,以包含用每種語言編寫的類。一旦根據語言群組織這些類檔案,就要在web.config檔案中為每個子目錄添加一個設定:

<compilation>

<codeSubDirectories>

<add  directoryName="VBFolder"  />

</codeSubDirectories>

</compilation>

重要的是,特定語言的子目錄應在web.config檔案中註冊,否則,不管它們屬於哪個檔案夾,App_Code檔案夾下  的所有檔案將被編譯成一個單獨的程式集。上述配置指令碼描述了這麼一種情況,即所有的C#檔案都放在App_Code檔案夾的根目錄下,而把幾個  Visual  Basic  .NET類檔案移入VBFolder目錄中。如果<codeSubDirectories>節中提到的目錄不存在,則會收到一個編譯錯誤提  示。

App_Code根資料夾中的檔案被編譯成App_Code_xxx.dll程式集,其中xxx是隨機產生的字元序列。一個  給定子目錄中的檔案將被編譯成一個名為App_SubCode_xxx_yyy.dll的動態建立的程式集,其中xxx指示子目錄的名稱,而yyy是一 個  隨機字元序列。只有在應用程式根目錄中的web.config檔案中進行了設定,<codeSubDirectories>節才有效。

在App_Code目錄或任何其他子目錄中放置一個assemblyinfo.cs檔案,可以建立一個強命名的程式集。顯然,如果該檔案夾包含 Visual  Basic  .NET檔案,那麼將使用assemblyinfo.vb檔案。程式集設定檔可以引用一個.snk檔案來儲存強式名稱的密鑰。

  注意        給一個程式集設定一個強式名稱,首先必須獲得一個公開/私人金鑰組。通過使用強式名稱(Strong  Name)工具(sn.exe),可以獲得這樣一個金鑰組。強式名稱工具是我們可以在.NET  Framework的安裝路徑中發現的SDK  binary之一。金鑰組檔案通常有一個.snk副檔名。可以將該檔案儲存到一個應用程式檔案夾中,並在assemblyinfo.cs檔案中引用它,如 下所示:

            [assembly:  AssemblyKeyFileAttribute(@"yourKeyPair.snk")]

注意,Visual  Basic  .NET是在包含Visual  Studio  Solution的目錄中尋找密鑰檔案,而C#編譯器則在包含該binary的目錄中尋找密鑰檔案。據此可知,用此屬性調整我們使用的路徑,或者把密鑰檔案放在合適的檔案夾中。

在隨後發生的任何重建中,程式集的名稱將發生變化。同時,老的AppDomain請求一結束,就刪除老的程式集。

App_Code檔案夾並非只能包含類檔案。特別是,它可以包含並能自動地處 理代表資料架構的XSD檔案。把一個XSD檔案  添加到該檔案夾中時,編譯器將把它解析成一個有類型的DataSet類,並將它添加到Application 領域中。在ASP.NET  1.x中,這一工作由Visual  Studio  .NET嚮導,使用一個命令列公用程式(xsd.exe)完成的。

    注意        使用web.config檔案註冊一個組件(例如,一個自訂的伺服器控制項或一個自訂的HTTP處理常式)時,通常要求指定包含該代碼的程式集名稱。 如  果該組件定義在App_Code檔案夾中,則應該用什麼名稱來指示程式集?在這種情況下,只是忽略程式集資訊,並規定完整的類名即可。如果沒有規定任何 程  序集,則ASP.NET運行庫將試圖從任何已裝載的程式集中裝入該類,包括為App_Code檔案夾動態建立的程式集。

4.  App_Data檔案夾

App_Data檔案夾應該包含應用程式的本機資料儲存。它通常以檔案(諸如Microsoft  Access或Microsoft  SQL  Server  Express資料庫、XML檔案、文字檔以及應用程式支援的任何其他檔案)形式包含資料存放區。該檔案夾內容不由ASP.NET處理。該檔案夾是 ASP.NET提供者儲存自身資料的預設位置。

  注意        預設ASP.NET帳戶被授予對檔案夾的完整存取。如果碰巧要改變ASP.NET帳戶,一定要確保新帳戶被授予對該檔案夾的讀/寫訪問權。

5.  App_GlobalResources檔案夾

6.  App_LocalResources檔案夾

7.  App_Themes檔案夾

App_Themes檔案夾為ASP.NET控制項定義主題。主題包含在App_Themes檔案夾下的一個檔案夾。根據定義,一個主題是一組帶有樣式資訊的檔案。主題檔案夾中的檔案內容被編譯,以產生一個類,而該類被頁面調用以編程的方式設定主題化控制項的樣式。

App_Themes檔案夾列出應用程式的本地主題。  應用程式還可以繼承如下檔案夾中定義的全域主題:

%WINDOWS%\Microsoft.NET\Framework\[version]\ASP.NETClientFiles\Themes

從編譯的角度看,全域主題和局部主題沒有區別。如果一個給定名稱的主題,既存在應用程式的本地主題,又存在伺服器機器的全域主題,則本地主題優先適用。

8.  App_WebReferences檔案夾

在Visual  Studio  .NET  2003中,一個需要訪問Web服務的ASP.NET應用程式,將通過“添加Web引用”對話方塊獲得相應的.wsdl檔案。Web服務的 WSDL(Web  Service  Description  Language)文檔,對於從頁面使用Web服務是不夠的。ASP.NET頁面最終是一個託管類,並且需要與另一個託管類通訊。因此,Web服務被一 個  代理類所封裝。該代理類是由Visual  Studio使用命令列工具wsdl.exe的服務建立的。該代理類盡量包含與Web服務商的Web方法一樣多的方法,並且它結合了Web服務的公用接 口  定義的任何自訂的資料類型。

這個操作不需要開發人員付出很大的代價。然而,開發人員顯然要依賴於Visual  Studio來組建代理程式類。如果能夠直接把.wsdl檔案放在應用程式的分類樹的某個地方,並讓ASP.NET處理其餘的任務,這樣不是更容易、更簡單  嗎?這正好是App_WebReferences檔案夾要做的事情。

它識別那些用來描述所綁定的Web服務的.wsdl檔案,並產生運行時代理類,以便ASP.NET頁面能夠以型別安全的方式  放置對Web服務的調用。App_WebReferences檔案夾可以包含子檔案夾。子檔案夾的名稱驅動最後所得到的代理類的命名空間,而WSDL文 件  定義類名。例如,samples.wsdl檔案和ProsAspNet20子檔案夾將建立一個稱為ProAspNet20.Samples的代理類。該 動  態建立的程式集稱為App_WebReferences.xxx.dll,其中xxx是一個隨機的字元序列。

檔案夾名稱
  檔案類型
  注        釋
 
Bin
  .dll
  包含應用程式所需的任何預產生的程式集
 
App_Browsers
  .browser
  包含應用程式特有的瀏覽器定義檔案,ASP.NET用它來識別各瀏覽器及確定它們的功能
 
App_Code
  .cs、.vb、.xsd、自訂的檔案類型
  包含作為應用程式的一部分編譯的類的源檔案。當頁面被請求時,ASP.NET編譯該檔案夾中的代碼。該檔案夾中的代碼在應用程式中自動地被引用
 
App_Data
  .mdb、.mdf、.xml
  包含Microsoft  Office  Access和SQL  Express檔案以及XML檔案或其他資料存放區
 
App_GlobalResources
  .resx
  包含在本地化應用程式中以編程方式使用的資源檔
 
App_LocalResources
  .resx
  包含頁面範圍的資源檔
 
App_Themes
  .skin、.CSS、.xsl、附屬檔案
  包含一組定義ASP.NET頁面和控制面板的檔案
 
App_WebReferences
  .wsdl
  包含用以組建代理程式類的WSDL檔案,以及與在應用程式中使用Web服務有關的其他檔案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.