Visual Studio 2005把強資料類型擴充到了設定檔中,添加了設定的範圍、基於GUI的屬性編輯器和拖放配置類的唯讀約束。
在.NET 2.0的一些新特性中,包含了對System.Configuration名稱空間的修補和Visual Studio 2005配置編輯器。與以前的實現方式相比,新的類把案頭和Web應用程式的配置方法提升到了一個完善的新的層次。本文聚焦於簡單的傳統型應用程式,該應用程式的唯一目的是顯示和修改自己的設定檔的內容。如果要運行這個應用程式,你必須下載Visual Studio 2005公眾beta版。
一些新特性
最重要的兩個設定檔特性是用於型別安全的強資料輸入和使用者佈建資訊範圍的分離和編輯。
型別安全(Type Safety)
以前的.NET架構組件只允許字串設定資訊。當我們把設定資訊直接讀入非字串變數的時候,就會遇到一些問題,如下所示:
int maxConnections =
ApplicationSettings.AppSettings.Key["MaxConnections"];
如果配置資訊的內容不是字串,而表現為其它的資料類型,例如布爾型、整型或更複雜的資料類型,你就必須編寫定製的代碼,轉換字串值或建立並填充適當的對象。與此形成對照的是,新的API為實現定製的序列化程式處理了所有基礎資料型別 (Elementary Data Type)和介面。此外架構組件還為一些經常用到的編程結構(例如資料來源串連和URL)提供了內建的處理常式。
範圍(Scopes)
新API使用了一個叫做範圍(scopes)的概念來區分應用程式與使用者佈建。你需要使用Application(應用程式)範圍來設定應用程式的一些細節資訊(例如連接字串)和其它驅動應用程式的一些值,這些值一般不會(不傾向於)改變。User(使用者)範圍是用於存放使用者可配置的應用程式值的(例如最後的視窗位置和最常使用的文檔)。更重要的是,User範圍為每項設定儲存了預設值。當使用者使用應用程式改變這些預設值的時候,設定檔把這些更新後的值儲存在單獨的位置中。這是很重要的,因為它保證了應用程式設定檔的完整性,並且把使用者特定的資料儲存在使用者的系統配置中。不用進行任何額外的開發,組態架構組件就能在後台自動地把使用者特定的設定資訊讀取出來。
ThisConfigEditor應用程式
本文中提供的應用程式範例ThisConfigEditor(圖1所示),是一個用於顯示自己的設定檔中的設定資訊的簡單工具。儘管非常簡單,但是它可以作為滿足大多數應用程式需求的很好的跳板。
圖1:樣本配置編輯器:顯示樣本項目設定檔的設定資訊
在這個項目中Visual Studio自動產生了大多數檔案(圖2所示)。
圖2:Visual Studio為項目產生的檔案,添加了ThisConfigEditor.cs檔案