.net檔案的建立和web.config 關於資料庫
資料庫設計多對多關係的幾種形態
1.Bin檔案
Bin資料夾包含應用程式所需的,用於控制元件、元件或者需要引用的任何其他程式碼的可部署程式集。該目錄中存在的任何.dll檔案將自動地連結到應用程式。假如在該資料夾中留有不用的或過期的檔案,則可能出現“二義性引用(ambiguousreference)”異常的風險。換句話說,假如兩個不同的程式集定義相同的類(相同的名稱空間和名稱),則ASP.NET執行庫不能決定應該使用哪一個程式集,從而丟擲一個異常。在開發時,當我們重新命名一個專案或一個程式集的名稱時,這是常見的錯誤。為了避免這種錯誤,一定不要在該資料夾中保留任何不必要的程式集,或者至少要從配置檔案的
在表1.10所列的所有資料夾中,只有Bin可以被ASP.NET1.x應用程式識別。該資料夾是強制性的。
2.App_Browser資料夾
該可選的資料夾包含.browser檔案。.browser檔案描述瀏覽器(不管是移動裝置瀏覽器,還是桌上型電腦瀏覽器)的特徵和功能。ASP.NET在安裝路徑下的Config\Browser資料夾中安裝了大量.browser檔案,這些檔案供所有應用程式共享。我們只是把當前應用程式特有的瀏覽器檔案放在App_Browser資料夾下。.browser檔案的內容即時動態地進行編譯,以便向ASP.NET執行庫提供最新的瀏覽器資訊。
讓我們簡單談談擁有一個自定義的.browser檔案可能有幫助的場景。設想應用程式使用了一個在某個瀏覽器下不能有效呈現的控制元件。在指定的瀏覽器中顯示宿主頁面時,可以編寫一個.browser檔案,迫使ASP.NET使用一個不同的介面卡來生成該控制元件。
adapterType="Samples.Adapters.CustomControlAdapter"/> 假設browserID與ASP.NET識別的標準瀏覽器之一相匹配,則上文所示的.browser檔案指示在指定的瀏覽器下使用CustomControlAdapter呈現CustomControl。 3.App_Code資料夾 App_Code資料夾正好在Web應用程式根目錄下,其儲存所有應當作為應用程式的一部分動態編譯的類檔案。這些類檔案自動連結到應用程式,而不需要在頁面中新增任何顯式指令或宣告來建立依靠性。App_Code資料夾中放置的類檔案可以包含任何可識別的ASP.NET元件——自定義控制元件、輔助類、build提供程式、業務類、自定義提供程式、HTTP處理程式等。 注重在開發時,對App_Code資料夾的更改會導致整個應用程式重新編譯。對於大型專案,這可能不受歡迎,而且很耗時。為此,鼓勵大家將程式碼進行模組化處理到不同的類庫中,按邏輯上相關的類集合進行組織。應用程式專用的輔助類大多應當放置在App_Code資料夾中。 App_Code資料夾中存放的所有類檔案應當使用相同的語言。假如類檔案使用兩種或多種語言編寫,則必須建立特定語言的子目錄,以包含用每種語言編寫的類。一旦根據語言組織這些類檔案,就要在web.config檔案中為每個子目錄新增一個設定: 重要的是,特定語言的子目錄應在web.config檔案中註冊,否則,不管它們屬於哪個資料夾,App_Code資料夾下的所有檔案將被編譯成一個單獨的程式集。上述配置指令碼描述了這麼一種情況,即所有的C#檔案都放在App_Code資料夾的根目錄下,而把幾個VisualBasic.NET類檔案移入VBFolder目錄中。假如 App_Code根資料夾中的檔案被編譯成App_Code_xxx.dll程式集,其中xxx是隨機生成的字元序列。一個給定子目錄中的檔案將被編譯成一個名為App_SubCode_xxx_yyy.dll的動態建立的程式集,其中xxx指示子目錄的名稱,而yyy是一個隨機字元序列。只有在應用程式根目錄中的web.config檔案中進行了設定, 在App_Code目錄或任何其他子目錄中放置一個assemblyinfo.cs檔案,可以建立一個強命名的程式集。顯然,假如該資料夾包含VisualBasic.NET檔案,那麼將使用assemblyinfo.vb檔案。程式集配置檔案可以引用一個.snk檔案來儲存強名稱的金鑰。 注重給一個程式集設定一個強名稱,首先必須獲得一個公開/私有金鑰對。通過使用強名稱(StrongName)工具(sn.exe),可以獲得這樣一個金鑰對。強名稱工具是我們可以在.NETFramework的安裝路徑中發現的SDKbinary之一。金鑰對檔案通常有一個.snk副檔名。可以將該檔案儲存到一個應用程式資料夾中,並在assemblyinfo.cs檔案中引用它,如下所示: [assembly:AssemblyKeyFileAttribute(@"yourKeyPair.snk")] 注重,VisualBasic.NET是在包含VisualStudioSolution的目錄中尋找金鑰檔案,而C#編譯器則在包含該binary的目錄中尋找金鑰檔案。據此可知,用此屬性調整我們使用的路徑,或者把金鑰檔案放在合適的資料夾中。 在隨後發生的任何重新生成中,程式集的名稱將發生變化。同時,老的AppDomain請求一結束,就刪除老的程式集。 App_Code資料夾並非只能包含類檔案。非凡是,它可以包含並能自動地處理代表資料架構的XSD檔案。把一個XSD檔案新增到該資料夾中時,編譯器將把它解析成一個有型別的DataSet類,並將它新增到應用程式作用域中。在ASP.NET1.x中,這一工作由VisualStudio.NET嚮導,使用一個命令列實用程式(xsd.exe)完成的。 注重使用web.config檔案註冊一個元件(例如,一個自定義的伺服器控制元件或一個自定義的HTTP處理程式)時,通常要求指定包含該程式碼的程式集名稱。如果該元件定義在App_Code資料夾中,則應該用什麼名稱來指示程式集?在這種情況下,只是忽略程式集資訊,並規定完整的類名即可。假如沒有規定任何程式集,則ASP.NET執行庫將試圖從任何已裝載的程式集中裝入該類,包括為App_Code資料夾動態建立的程式集。 4.App_Data資料夾 App_Data資料夾應該包含應用程式的本地資料儲存。它通常以檔案(諸如MicrosoftAccess或MicrosoftSQLServerExpress資料庫、XML檔案、文字檔案以及應用程式支援的任何其他檔案)形式包含資料儲存。該資料夾內容不由ASP.NET處理。該資料夾是ASP.NET提供程式儲存自身資料的預設位置。 注重預設ASP.NET帳戶被授予對資料夾的完全訪問許可權。假如碰巧要改變ASP.NET帳戶,一定要確保新帳戶被授予對該資料夾的讀/寫訪問權。 5.App_GlobalResources資料夾 正如其他應用程式一樣,ASP.NET應用程式也可以使用資源,而且通常應該使用資源。資源是隔離應用程式使用者介面的可區域性化部分的一種有效方法。一般而言,資源是與程式相關的不可執行的文字。典型的資源有影像、圖示、文字和附屬檔案,但是任何可序列化的物件也可以被看作資源。應用程式資源儲存在應用程式的外部,這樣就能在不影響和重新編譯應用程式本身的情況下重新編譯和替換它們。 ASP.NET應用程式需要有一個主要程式集來儲存應用程式預設的或中性的資源。此外,還要部署許多附屬程式集,它們中各自包含我們需要支援的某種文化的本地化資源。在ASP.NET1.x中,編譯一個程式集內的資源有點麻煩。需要手動地將基於XML的資原始檔(那些帶.res副檔名的資源)編譯成.resources二進位制檔案。這些檔案既可以嵌入到一個.NET可執行檔案中,也可以編譯成附屬程式集。使用資原始檔生成器實用程式resgen.exe,將文字和基於XML的資原始檔轉變為.resource檔案。資原始檔名稱遵循baseName.cultureName.resource命名約定,其中baseName通常是應用程式的名稱: resgen.exeProAspNet20.resxProAspNet20.it.resources 建立.resource檔案以後,應當把它嵌入到一個程式集中,甚至可以作為一個資源容器來使用。要把一個資原始檔嵌入到一個附屬程式集中,可以使用程式集聯結器工具(al.exe)。在命令列上,指出程式集所使用的文化(如下面示例中的it,它代表義大利)和名稱。 al/out:ProAspNet20.resources.dll/c:it/××:ProAspNet20.it.resources 在編譯附屬程式集之後,它們將有相同的名稱。將它們部署到不同的子目錄中,分別按文化命名。 幸運的是,對於ASP.NET2.0,附屬程式集的時代已經一去不復返了。更準確地說,附屬程式集仍然存在,但是由於App_GlobalResources保留資料夾,對開發人員來說它們已經成為過去的事情。 該資料夾中的任何定位的.resx檔案自動地被編譯成附屬程式集。.resx檔案的名稱包含文化資訊,以幫助ASP.NET執行庫環境的程式集生成。如下檔案,resources.resx,resources.it.resx,resources.fr.resx,生成中性程式集以及適合於義大利(Italian)和法國(French)文化的附屬程式集。假如沒有要求特定文化,則中性程式集是預設的文化資源。 App_GlobalResources資料夾中的資原始檔是應用程式的全域性資源,因而可以從任何頁面中引用它。和ASP.NET1.x相比資源讀取結果也極大地簡化了: 可以使用最新的稱為Resources的$-表示式以宣告的方式繫結全域性資源(第5章將具體介紹$-表示式)。該表示式包括兩個引數:.resx資原始檔的名稱(沒有副檔名),以及要檢索的資源的名稱。以程式設計的方式訪問資源,請使用如下程式碼: HttpContext.GetGlobalResourceObject(resxFile,MyResName) 這兩個引數都是字串,並且與$-表示式中的引數具有相同的作用。此外,$-表示式Resources的實現在內部使用GetGlobalResourceObject。 6.App_LocalResources資料夾 App_LocalResources資料夾位於包含一些ASP.NET頁面的資料夾下的一個子目錄。該資料夾可以使用位於目錄結構中高一級目錄中的頁面命名的.resx檔案進行填充。假定父資料夾包含test.aspx,則可以在App_LocalResources資料夾中找到一些可用的資原始檔如下:test.aspx.resx、test.aspx.it.resx和test.aspx.fr.resx。顯然,上述檔案中儲存的資源僅對test.aspx頁面有影響,因而只能在連結的頁面中看見它們(可以使用它們)。 如何訪問一個頁面特有的資源呢?對於程式設計訪問,可使用如下程式碼: HttpContext.GetLocalResourceObject("/ProAspNet20/ResPage.aspx", "PageResource1.Title") 第1個引數指出頁面虛擬路徑;第2個引數是資源名稱。對於宣告式訪問,使用meta.:ResourceKey屬性。例如, 該宣告將一個惟一的資源鍵與特定按鈕例項關聯。區域性檔案.resx包含prefix.name形式的條目,其中prefix是資源鍵,而name是繫結控制元件上的屬性名。為了賦予按鈕一個本地化標題(Text屬性),只要在資原始檔中建立一個ButtonResource1.Text條目即可。 區域性和全域性資原始檔夾中存在的資原始檔都被編譯,以建立附屬程式集的類。最後的結果是開發人員建立.resx檔案,並測試該頁面。而ASP.NET編譯機制會完成其餘工作。 7.App_Themes資料夾 App_Themes資料夾為ASP.NET控制元件定義主題。主題包含在App_Themes資料夾下的一個資料夾。根據定義,一個主題是一組帶有樣式資訊的檔案。主題資料夾中的檔案內容被編譯,以生成一個類,而該類被頁面呼叫以程式設計的方式設定主題化控制元件的樣式。 App_Themes資料夾列出應用程式的本地主題。應用程式還可以繼續如下資料夾中定義的全域性主題: WINDOWS\Microsoft.NET\Framework\[version]\ASP.NETClientFiles\Themes 從編譯的角度看,全域性主題和區域性主題沒有區別。假如一個給定名稱的主題,既存在應用程式的本地主題,又存在伺服器機器的全域性主題,則本地主題優先適用。 8.App_WebReferences資料夾 在VisualStudio.NET2003中,一個需要訪問Web服務的ASP.NET應用程式,將通過“新增Web引用”對話方塊獲得相應的.wsdl檔案。Web服務的WSDL(WebServiceDescriptionLanguage)文件,對於從頁面使用Web服務是不夠的。ASP.NET頁面最終是一個託管類,並且需要與另一個託管類通訊。因此,Web服務被一個代理類所包裝。該代理類是由VisualStudio使用命令列工具wsdl.exe的服務建立的。該代理類儘量包含與Web服務商的Web方法一樣多的方法,並且它結合了Web服務的公共介面定義的任何自定義的資料型別。 這個操作不需要開發人員付出很大的代價。然而,開發人員顯然要依靠於VisualStudio來生成代理類。假如能夠直接把.wsdl檔案放在應用程式的目錄樹的某個地方,並讓ASP.NET處理其餘的任務,這樣不是更輕易、更簡單嗎?這正好是App_WebReferences資料夾要做的事情。 它識別那些用來描述所繫結的Web服務的.wsdl檔案,並生成執行時代理類,以便ASP.NET頁面能夠以型別安全的方式放置對Web服務的呼叫。App_WebReferences資料夾可以包含子資料夾。子資料夾的名稱驅動最後所得到的代理類的名稱空間,而WSDL檔案定義類名。例如,samples.wsdl檔案和ProsAspNet20子資料夾將建立一個稱為ProAspNet20.Samples的代理類。該動態建立的程式集稱為App_WebReferences.xxx.dll,其中xxx是一個隨機的字元序列。 資料夾名稱 Bin App_Browsers App_Code App_Data App_GlobalResources App_LocalResources App_Themes App_WebReferences 來自: http://max.cszi.com/blog.asp?blogid=356 在ASP.NET程式設計中發現,可以用兩種方式寫連線資料字串配置 ,就是AppSettings和ConnectionStrings。 其中 ana>AppSettings是ASP.NET1.1時期用的,在.NET Framework 2.0中,新增了ConnectionStrings專門用來獲取配置檔案在ConfigurationManager類中 AppSettings和ConnectionStrings節的資料,使用方法如下: using System.Configuration; 在
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-629778/,如需轉載,請註明出處,否則將追究法律責任。
檔案型別
註釋
.dll
包含應用程式所需的任何預生成的程式集
.browser
包含應用程式特有的瀏覽器定義檔案,ASP.NET用它來識別各瀏覽器及確定它們的功能
.cs、.vb、.xsd、自定義的檔案型別
包含作為應用程式的一部分編譯的類的原始檔。當頁面被請求時,ASP.NET編譯該資料夾中的程式碼。該資料夾中的程式碼在應用程式中自動地被引用
.mdb、.mdf、.xml
包含MicrosoftOfficeAccess和SQLExpress檔案以及XML檔案或其他資料儲存
.resx
包含在本地化應用程式中以程式設計方式使用的資原始檔
.resx
包含頁面範圍的資原始檔
.skin、.CSS、.xsl、附屬檔案
包含一組定義ASP.NET頁面和控制元件外觀的檔案
.wsdl
包含用以生成代理類的WSDL檔案,以及與在應用程式中使用Web服務有關的其他檔案
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = ConfigurationManager.ConnectionStrings["connectionStringsName"].ToString();
Label2.Text = ConfigurationManager.AppSettings["appSettingsName"].ToString();
}
}
1.
2.
相關文章
- 關於資料庫檔案最大數資料庫
- 資料檔案大小和資料庫的關係資料庫
- 建立資料庫檔案-日誌檔案-次要資料庫檔案資料庫
- 2.1 關於建立資料庫資料庫
- 2.5.1 關於建立資料庫的子句資料庫
- 關於Sybase資料庫中時間表的建立和生成!資料庫
- 2.5.10.2 關於資料庫時區檔案資料庫
- .net加密web.config檔案加密Web
- 關於資料庫丟失控制檔案的測試資料庫
- 3.1.2.1 關於資料庫初始化引數檔案和啟動的關係資料庫
- mysql資料庫的檔案建立方式MySql資料庫
- oracle 關於-資料檔案Oracle
- 關於建立DataGuard Physical Standby資料庫資料庫
- 資料庫檔案和檔案組資料庫
- 為oracle資料庫建立口令檔案Oracle資料庫
- 1.7. 建立和維護資料庫密碼檔案資料庫密碼
- 關於檔案系統在建立目錄檔案和普通檔案時的區別
- 關於大資料和資料庫的討論大資料資料庫
- oracle9i 檔案資料庫建立Oracle資料庫
- 關於資料表結構sql檔案匯入mysql資料庫的問題?MySql資料庫
- 關於SQL Server 映象資料庫快照的建立及使用SQLServer資料庫
- oracle資料庫移動資料檔案、日誌檔案和控制檔案Oracle資料庫
- 關於收縮資料檔案的嘗試
- 使用python的netCDF4庫讀取.nc檔案 和 建立.nc檔案Python
- 關於using backup controlfile(丟失控制檔案和資料檔案)
- MySQL資料庫的套接字檔案和pid檔案MySql資料庫
- QGIS如何開啟ArcGIS建立的GDB資料庫檔案資料庫
- 建立資料庫時用裸裝置的配置檔案資料庫
- 關於.NET Framework提供的XML檔案格式FrameworkXML
- 【中亦安圖】關於資料庫檔案損壞風險的提醒(3)資料庫
- 關於控制檔案與資料檔案頭資訊的說明(zt)
- 2.3.2 關於使用互動式DBCA建立資料庫資料庫
- 關於資料庫和jdbc的問題,指教資料庫JDBC
- .NET關於資料庫操作的類-囊括所有的操作資料庫
- 4.3.2.3 關於PDB$SEED資料檔案的屬性
- 關於資料檔案autoextend on的一點記錄
- 關於資料檔案頭的檢查點SCN
- 資料庫管理員許可權認證&&密碼檔案的建立和管理資料庫密碼