Visual Studio 2005集成開發環境圖解

摘要:
       本文探討其中的一些功能,並且闡述開發人員如何使用它們以更快、更準確地編寫代碼。

正文:
   
        Microsoft Visual Studio 2005 包含許多對開發環境新的增強、創新和提高,其目的在於使 Visual Basic .NET 開發人員比以往更加高效。本文探討其中的一些功能,並且闡述開發人員如何使用它們以更快、更準確地編寫代碼。

  除其他對 IDE 的“改進”之外,Visual Studio 2005 再次引入了“編輯並繼續”,這對經驗豐富的 Visual Basic 開發人員而言是個好消息。


  應用程序:IDE 增強功能

  該應用程序演示 Visual Studio 2005 IDE 中的類設計器 — 一個在 Visual Basic .NET 應用程序中可視化設計類層次結構的工具。在考察該應用程序的細節之前,讓我們先概要介紹一下 Visual Studio 2005 IDE 中新的或改進的功能。

  配置設置

  如果曾經使用過 Visual Studio 的早期版本,那麼您可能會花費一些時間自定義開發環境。您可能已經通過一些試驗瞭解到可以指定工具窗口的位置,或者您可能已經發現 Visual Studio 中的菜單和工具欄是完全可自定義的。您也可以配置鍵盤映射、項目模板類型和幫助篩選器等。事實上,Visual Studio 使您總是能夠將 IDE 元素排列成最適合個人的開發風格。

  Options 對話框

  圖1 中顯示的 Options 對話框爲自定義 Visual Studio 開發環境提供大量的設置類別。默認情況下,Options 對話框顯示最常見的設置。要顯示所有的可用設置,請選擇“Show All Settings”複選框。



1 Options 對話框。

  在 Visual Studio 2005 發佈以前,IDE 自定義的主要不足之處是,無法以可移植的格式保存首選項。如果您必須在另一臺計算機上重新創建這些設置,這是非常有用的。使用 Visual Studio 2005,可以稍後或在另一臺計算機上快速而輕鬆地還原個人設置。

  Visual Studio 2005 允許以如下方式使用自定義設置:| 製作當前設置的副本以供另一臺計算機使用。| 將設置分發給其他開發人員。| 允許團隊對 IDE 的某些元素(例如,代碼編輯器)使用相同的設置,而在 IDE 的其他區域內保留個人的自定義。

  如圖2 所示,Options 對話框環境設置包括一個 Import/Export Settings 項。Always Save My Settings To This File 文本框中指定的文件在每次關閉 Visual Studio 時都進行更新。它可以是本地文件,也可以是網絡文件。在您經常操作兩臺計算機的情況下,請將該文件設置在兩臺計算機都可以訪問的網絡位置,這樣能夠確保您 在兩臺計算機上均享用相同的 Visual Studio“外觀”。另外,每次更改其中一臺計算機的設置時,它都會自動在另一臺計算機上顯示。



2 Import/Export Settings 選項。

  在“Team Settings”部分下,可指定一個 .vssettings 文件來包含在一組開發人員中共享的設置。要理解其用途,不妨考慮以下情況:一個開發團隊的所有成員都必須使用 Visual Basic .NET 代碼文件相同的縮進和格式化選項。開發人員主管可以配置 Visual Studio 2005 中的格式化選項,然後使用 Import/Export Settings 對話框將這些格式化設置保存到網絡共享的 .vssettings 文件中。然後,開發團隊的其他成員更新他們的 Visual Studio 配置以使用該團隊的設置文件。如果該團隊以後決定更改默認值,則開發人員主管可以將新設置導出到相同的文件位置,該團隊中的每個成員在他們下次啓動 Visual Studio 時都將自動接收到此新設置。

  位於“Importing And Exporting”部分下的“Location”文本框指定一個導出或導入設置的默認位置。下一節描述如何導入和導出設置文件。

  注活動設置由兩部分組成:首次啓動 Visual Studio 2005 時所選的已安裝 .vssettings 文件中預定義的自定義,以及其後進行的任何 IDE 自定義。在每次退出 Visual Studio 時,活動設置會自動保存到 currentsettings.vssettings 文件。

Import/Export Settings 對話框

  Visual Studio 2005 Tools菜單包含一個 Import/Export Settings 菜單項,用於打開一個管理設置文件的對話框。該對話框提供三個方面的基本功能:

  | 將當前的 IDE 設置導出到一個文件中 | 從文件中導入 IDE 設置 | 將環境重新設置爲默認文件中預定義的工作方式

  根據是導出設置還是導入設置,該對話框可以讓您分別選擇將哪些設置導出到 .vssettings 文件,或者從現有的 .vssettings 文件導入哪些設置。

  注設置類別通常爲工具窗口、選項頁或 IDE 功能定義設置的邏輯分組。

  圖3 顯示一個已選中“Export IDE settings to a file”選項的 Import/Export Settings 對話框。在“Choose The Settings To Export”部分下,選擇或清除要導出的單個設置或整個設置類別。



3 Export IDE 設置。

  對於高度可自定義的開發環境而言,一個明顯的劣勢是可能會使開發人員無意識地(當然沒有人會有意這樣做)刪除 IDE 的必需功能。例如,可能刪除工具欄或菜單中的必需項。或者,由於缺乏經驗,將工具窗口重新排列爲不可用的佈局。在 Visual Studio 的早期版本中,可以還原 IDE 中的單個項(例如,通過轉到 Window 菜單並選擇 Reset Window Layout 命令)。這些重置工具中的大部分都已轉移到 Visual Studio 2005 中。然而,單個重置工具只包含 IDE 功能的一小部分並分散在整個 IDE 中,這讓有時查找一個合適的重置工具非常困難。

  如圖4 所示,選擇“Reset IDE settings”選項,將 IDE 環境更改爲在許多預定義設置文件中定義的工作方式,這些預定義的設置文件在“Available Installed Settings Files”部分中列出。這些文件隨 Visual Studio 2005 一起安裝,其中包括窗口布局、工具欄和菜單命令的特定自定義,這些特定自定義反映面向特定編程語言(如 VB.NET、C++、C#、Web 或 J#)的公共首選項。



4 重置 IDE 設置。

  提示如果設置處於不能使用 IDE 的狀態,或者它們阻止您訪問 Import/Export Settings 對話框,則可通過使用重置開關從命令提示處重啓 Visual Studio 2005 來還原默認設置,如下所示:devenv /resetsettings

  如果只需重置某些設置類別,則可使用“Import IDE Settings From A File”選項。可以從某個默認設置文件或本地設置文件中選擇設置。還可以從 Visual Studio 2005 默認文件夾之外的文件夾中瀏覽文件。

  例如,在開發團隊共享一個設置文件的情況下,該文件可能位於一個網絡共享位置。如圖 5 所示,一旦選擇該文件,標題爲“Settings Available To Import”的樹視圖就會列出存儲在該文件中的設置。通過選擇或清除列表中顯示的項,可以選擇要導入的設置。“Import IDE Settings From A File”選項允許您從 .vssettings 文件更改所有或者部分設置。



5 導入 IDE 設置。

幫助和社區集成

  Visual Studio 2005 在幫助信息的內容和訪問信息的工具方面均有顯著提高。這些提高還包括與基於社區的資源更全面的集成。

  過去與現在

  在查看幫助系統中的新功能和改進之前,讓我們先從某個角度看看 Visual Studio 的早期版本如何提供獲得幫助的途徑,並着重說明各種方法的侷限性:

  | F1 這充其量也只是個“命中或未命中”的工具。有時 F1 返回正確的答案。而有時它顯示動態幫助窗口 — 提供關於“代碼和文本編輯器”的幫助,而您很少會在這方面需要幫助。

  | 目錄 (TOC) 可以瀏覽 TOC 的內容樹以查找與當前主題無關的主題。然而,雖然有時這可能會獲得有用的信息,但也可能即費時又徒勞。

  | 索引在某些情況下,幫助索引仍然是查找有用信息的一個很好的選擇。例如,如果已經知道感興趣的 .NET Framework 類名,索引就會非常奏效。但當查找的是概念性信息時,索引就顯得不夠了。

  | 搜索搜索的主要缺點是它可能會返回多達五百個按隨機順序排列的結果。

  | 基於Web的搜索雖然結果會隨首選搜索引擎的不同而異,但它對許多開發人員而言還是一個可選的幫助工具。它不僅避免了 Visual Studio 早期版本中幫助工具的不足,而且還提供對 Internet 信息的訪問。

  Visual Studio 2005 提供對這些工具的重要更新,從而允許您更高效地訪問幫助內容,如下所示:

  | F1 對幫助主題中元數據的改進使 F1 可提供更多一致性幫助,即使您不在項目的上下文中。

  | 搜索Visual Studio 早期版本的篩選機制得到了改進,從而使提交的結果可以包含更貼切地匹配搜索條件的主題。另一個重要的改進是,該結果包含動態生成的每個返回項的抽象。

  | 如何實現 (How Do I)如圖6 所示,這是一個訪問幫助系統的新工具,它顯示常見開發人員任務的組織層次結構。對於 Visual Basic .NET 開發人員而言,該工具提供數百個任務,且每個任務都包含技術指導內容和開發人員可以輕鬆地粘貼到代碼編輯器中的示例代碼。

  | 幫助收藏夾 Visual Studio 的早期版本包含一個集成的收藏夾工具,但只用於 Internet Explorer 鏈接。更新的幫助收藏夾工具使您可以保存特定於幫助的收藏,包括搜索查詢的參數。



6 How Do I 工具。

  使用聯機幫助內容

  與開發環境的早期版本一樣,Visual Studio 2005 提供對 Web 站點(如 CodeGuru 和 Net247)內容的直接訪問。這些站點以及其他專注於 .NET 的 Web 站點都是稱爲 .NETCodeWise社區的 組的成員。CodeWise 社區是 Microsoft 發起的 Web 站點社區,提供關於 Microsoft 開發人員工具和技術的獨立專業知識。如果您曾經訪問過這些站點,您就會了解,該開發人員社區成員的投稿擴展並豐富了靜態幫助資源。MSDN 內容的覆蓋面很廣,而社區內容則補充了其深度以及對於現實的開發人員而言極爲重要的領域背景。除了擴展幫助內容並提供額外的代碼示例之外,基於社區的 Web 站點還提供了其他資源,例如消息論壇。

  在從 IDE 的早期版本向前發展的過程中,Visual Studio 2005 將來自 CodeWise 社區成員站點的內容直接集成到幫助系統中。例如,從 Visual Studio 2005 搜索關於某個主題(如泛型)的幫助時,該搜索可能會返回一個本地 MSDN 主題的列表、一個 MSDN 聯機主題的列表,以及一個 CodeWise 社區站點中相關頁面鏈接的列表。這一創新功能使您可以便捷、直接地訪問社區中最新、最流行的代碼示例和技術文章,同時還可以顯示從 MSDN 獲得的全面靜態內容。而且,這與執行特殊的基於 Web 的搜索相比更具有優勢,因爲在後者中,您必須親自驗證找到的信息在技術上是否準確。可以在 Options 對話框的幫助類別中配置聯機幫助資源,包括 CodeWise 社區提供程序,如圖 7 所示。



7 配置聯機幫助資源。

項目增強功能

  
使用 Visual Studio 2005 時,立刻就能感觸到的工作效率增強功能是:創建新項目而不必指定其存儲位置。這一改變的靈感來自於開發人員的共同體驗,這些開發人員創建用於測試代碼或構 建原型的項目(這些項目只使用一次)。IDE 使您可以控制是否要保存該項目,而不是將這些項目作爲一個新的解決方案提交到磁盤。

  該增強功能的工作方式與在 Microsoft Word 中創建新文檔的方式類似,其中,打開一個文檔,鍵入一些文本,打印,然後退出 Word 而無需保存該文檔。相同的處理適用於在 Visual Studio 2005 中創建的項目;構建一個新應用程序,在調試器中運行它,添加項目項和資源,甚至在保存之前編譯該應用程序。(New Project 對話框如圖 8 所示)。和 Word 一樣,Visual Studio 2005 先將未保存的文件存放在臨時文件存儲位置,然後再將它們保存在某個永久位置;或者關閉項目時放棄它們。如果選擇放棄,Visual Studio 2005 則從臨時存儲位置刪除該項目以及所有與之相關聯的文件。這也稱爲“零影響”項目。



8 Visual Basic 項目模板。

  Visual Studio 2005 還引入許多新的項目項類型。許多項類型爲公共用戶界面元素提供模板,包括 Login 窗體、About 框和 Explorer 窗體模板,如圖 9 所示。



9 項目項類型。

  項目設計器

  在 Visual Studio 的早期版本中,通過使用可從項目菜單訪問的對話框,能夠操作項目屬性。因爲對話框是模式化的,所以需要首先打開屬性對話框,更改設置,關閉該對話框,然後 才能繼續處理您的代碼。在一個典型的開發週期中,可能會多次返回到該項目屬性。您也許會感到奇怪,“如果我將這些屬性一直保持打開狀態從而實現更容易的訪 問,難道不好嗎?”

  項目設計器滿足了對項目屬性實現更方便、更統一的訪問的需要。在 Visual Studio 2005 中創建一個新項目時,您會發現在解決方案資源管理器中列出一個額外的項目元素,稱爲 My 項目。(請參見圖 10。)打開此項,項目設計器就顯示在 IDE 主編輯窗口中。



10 My 項目。

  項目設計器提供對項目屬性的非模式化訪問,使它們可以像代碼文件或窗體設計器一樣簡單地進行訪問。如果 Visual Studio 的早期版本很熟悉,您會注意到,項目設計器窗格合併了過去包含在屬性對話框以及 IDE 其他部分中的屬性,而其他窗格爲 .NET Framework 2.0 引入的功能提供配置工具(如 Click- Once 發佈)。

應用程序窗格

  設計器在應用程序窗格(如圖 11 所示)中合併了 Visual Studio 早期版本中屬性對話框設置。該窗格還引入一些新項以定義應用程序的行爲。一旦打開項目設計器,應用程序窗格就位於 Visual Studio 2005 文檔窗口的選項卡中。(另外,還可通過右鍵單擊解決方案資源管理器中的項目並選擇“Properties”菜單命令,或選擇 Project | <Project Name> Properties 菜單命令打開項目設計器)。



11 應用程序窗格。

  下面列出一些新的、更新的設置:

  | 啓動對象仍然可以指定一個窗體或 Sub Main 過程作爲應用程序的啓動對象。項目設計器還包括了一個“Startup With Custom Sub Main”複選框,允許您設計自己的啓動例程。另外,Visual Studio 2005 支持包括兩種類型的啓動事件的 Visual Basic 應用程序事件模型(請參見表 1)。

  | 啓用可視化樣式該設置默認爲啓用,它允許應用程序使用主機操作系統上存在的 Windows XP 主題。但是,可能會遇到出現一些情況:應用程序使用了 Windows XP 主題早期版本中的控件,在這種情況下應該禁用 Windows XP 主題以保留想要的應用程序外觀。

  | 實現單個實例當多次單擊一個特定的 Windows 應用程序(如媒體播放機)時,該應用程序只啓動一次。而其他的應用程序(如計算器和記事本等)在每次單擊其圖標時都會啓動此程序的不同實例。選擇該設置允 許將應用程序的啓動行爲設置爲單個實例,如果沒有選中該設置,則應用程序將啓動多個實例。

  | 關閉模式該選項確定激發應用程序關閉的事件。例如,對於 Windows 窗體應用程序,可選擇在啓動窗體關閉或應用程序退出時關閉該應用程序。

  | 初始屏幕該設置允許選擇項目中的一個窗體作爲初始屏幕。

  | 查看代碼單擊“View Code”按鈕打開 MyEvents.vb代碼模塊。MyEvents.vb包含部分 MyApplication類(該類在My命名空間中定義)。MyApplication類存在的一個明顯目的就是包含應用程序事件的處理程序,如表 1 所述。
表 1 MyApplication 事件
名稱 描述
Startup

應用程序啓動時引發

Shutdown

應用程序退出時引發

UnhandledException

應用程序中出現一個未處理的異常時引發

StartupNextInstance

用戶試圖啓動應用程序的另一個實例時引發,該應用程序配置爲以單個實例運行

NetworkAvailabilityChanged

基礎網絡連接的狀態發生變化時引發
管理程序集信息

  在用於 .NET Framework 的 Visual Studio 的早期版本中,通常在 AssemblyInfo.vb 代碼文件中管理全局程序集屬性。與項目中任何其他代碼文件一樣,要更改程序集屬性,需要在代碼編輯器中打開該文件並在必要時更新其屬性。下面是 AssemblyInfo.vb 中的一些公共屬性:
<Assembly: AssemblyTitle(“IDE Enhancements”)>  <Assembly: AssemblyDescription(“New Visual Studio 2005 IDE features”)>  <Assembly: AssemblyCompany(“Leaf Solutions”)>  <Assembly: AssemblyProduct(“Moving to Visual Studio 2005”)>  <Assembly: AssemblyCopyright(“”)>  <Assembly: AssemblyVersion(“.0.0.0”)>  <Assembly: AssemblyFileVersion(“.0.0.0”)>  <Assembly: ComVisible(False)>
  在 Visual Studio 2005 中,程序集的屬性仍然存儲在 AssemblyInfo.vb 中,但默認情況下,該文件現在隱藏在解決方案資源管理器中。應用程序窗格通過程序集信息對話框(如圖 12 所示)提供對這些屬性的訪問。該對話框是基本程序集屬性的界面,對該對話框中列出項進行的任何更改都會自動寫入基礎 AssemblyInfo.vb 文件中。(當然,如果願意,您仍然可以訪問基礎代碼文件並直接進行更改)。



12 程序集信息對話框。

 簽名窗格

  每個在公共語言運行庫 (CLR) 上執行的託管程序集,均由與該程序集相關聯的代碼訪問安全性 (CAS) 權限控制。在執行過程中,CLR 評估程序集請求的權限,然後授予或拒絕這些權限,其部分依據是提供給 CLR 的關於代碼標識的證據。作爲建立程序集標識的一種方法,簽名窗格(如圖 13 所示)允許您向項目中添加密鑰文件 (.snk) 或存儲在密鑰容器內的密鑰。編譯器使用該密鑰對程序集以強名稱進行簽名。爲適應開發人員需要開發預發佈版本但只能訪問公鑰的情況,該窗格還提供一個用於啓 用延遲簽名的複選框。

  重要事項對於 ClickOnce 應用程序而言,簽名密鑰是發佈必需的。該密鑰用於對應用程序和部署清單進行強名稱簽名。該主題將在第 8 章“部署應用程序”中詳細討論。



13 簽名窗格。

  引用窗格

  與 IDE 早期版本一樣,仍然可以從項目菜單中訪問項目引用和 Web 引用。但是,Visual Studio 2005 在引用窗格中添加了這些項的額外訪問點,如圖 14 所示。可以使用該引用窗格來管理導入的命名空間、程序集和 Web 服務引用。此可選視圖的另一個重要好處是,它將項目引用合併到單個 UI 組件中。該窗格還包含用於以下功能的工具:設置一個或多個引用路徑,以及標識未在項目中使用的引用程序集,另外,還可以使用該窗格管理命名空間導入設置。



14 引用窗格。

  編譯窗格

  除了爲每個不同的生成配置設置默認的編譯器選項之外,編譯窗格(如圖 15 所示)還可以爲不同的編譯條件指定不同的通知行爲(如警告、錯誤或無)。可以使用該窗格設置條件通知選項。



15 編譯窗格。

  您也可以從此窗格訪問生成事件對話框。與 IDE 的早期版本一樣,該對話框用於指定預生成和生成後命令行事件,另外還用於指定生成後事件激發的條件。生成後事件執行的條件可以是“Always”、“On Successful Build”或“When The Build Updates The Project Output”。

MSBuild 集成

  Visual Studio 2005 引入一個新的生成引擎,稱爲 MSBuild,它在 Visual Studio 2005 IDE 中集成以顯著改進生成過程。雖然 MSBuild 在 Visual Studio 2005 IDE 中進行操作,但是對它進行了專門設計,以便可以從命令行執行生成任務。

  資源窗格

  項目設計器的資源窗格爲項目提供一個全面的資源管理器。(請參見圖 16。)資源類別包括本地化字符串、圖像、圖標、聲音文件和文本文件。可從類別下拉列表訪問各種不同的資源類別。例如,要添加一個資源 — 如字符串,只需在用戶界面顯示的表中鍵入該資源的名稱及其相關聯的值即可。



16 資源窗格。

  另外,對於圖像和圖標資源,可以添加一個現有的圖像或圖標文件;或者在開發環境中(請參見圖 17)直接創建一個新的圖像或圖標。



17 圖標設計器。

  資源和框架的集成

  資源窗格是 IDE 與增強的 .NET Framework 緊密集成的一個很好示例。資源頁中管理的項通過 MyResources 模塊在 My命名空間代碼中自動可用,MyResources 模塊包含代碼中項目資源的表示。資源窗格中管理的項與基礎代碼文件之間的同步由強類型資源生成器(一個集成的 Visual Studio 2005 工具)透明地進行管理。當更改資源頁中的元素時,該工具會將這些更改寫入 MyResources 模塊,而後者可以在 MyResources.vb 文件中找到。

  默認情況下,MyResources.vb(以及許多其他自動生成的項目文件)對解決方案資源管理器中的視圖是隱藏的。可通過單擊 Show All Files 按鈕顯示解決方案資源管理器中的隱藏文件。

  由強類型資源生成器生成的代碼等價於由命令行實用工具 ResGen 生成的輸出類。與 ResGen 相比,該實用工具的主要優勢在於無需在每次更新資源文件時都運行它;Visual Studio 會自動管理這些更新。

  設置窗格

  一個常見的應用程序開發任務是爲存儲應用程序和用戶設置提供一種機制。這可能包括一些狀態信息,例如數據庫連接字符串、窗體的位置和大小、工具欄位置 和內容的首選項、數據庫連接字符串以及 Web 服務的 URL — 以及其他更多的信息。.NET Framework 的早期版本提供了用於存儲設置的不同選項。例如,可使用動態屬性或者嚮應用程序配置文件添加自己的內容。.NET Framework 2.0 體現了這些技術的發展。.NET Framework 2.0 引入新的類,用於將應用程序和用戶設置作爲強類型對象進行管理。這些類通過使用項目設計器中的設置窗格集成到 Visual Studio 2005 IDE。

  功能級別設置窗格本身有許多功能級別。首先,可以爲幾乎任何符合 CLS 的類型創建設置。它還包括一種用於數據庫連接字符串的特殊類型。事實上,當創建一個新的數據庫連接時,Visual Studio 會自動將連接字符串添加到項目設置中。用戶界面包括一個指定每種設置的名稱、其類型以及設置值的輸入表。另一個重要的屬性是,該設置應用於整個應用程序範 圍還是應用於單個用戶。該表中的一列可以讓您將作用域設置爲這兩個選項之一。

  在大多數開發週期中,應用程序可以部署到許多環境中 — 例如開發、測試、模擬調試以及生產。通常,每個環境需要不同的應用程序設置:數據庫連接字符串是一個顯而易見的例子,因爲您不會在開發中冒險使用一個生產 數據庫來測試應用程序。爲了使管理不同的用戶設置更加簡單,可以爲項目添加一個或多個配置文件。可以使用配置文件工具從現有的配置文件中複製設置,以避免 必須爲每個配置文件實例重新創建設置的麻煩。

  事實上,在應用程序設計階段爲項目定義設置是一個不錯的建議。在開發的早期階段先大致進行設置。然後,在確定了應用程序設置後,爲各個不同的部署環境 添加配置文件。要調整某個特定配置文件的設置,可以從下拉列表中選擇當前的設置配置文件以激活該配置文件,然後進行相應的更改。

  提示如果使用多個設置配置文件,請記住,設置配置文件和活動的解決方案配置之間並沒有直接的關係。在編譯時,編譯器使用項目設計器中當前處於活動狀態的設置配置文件。作爲一種最佳做法,請考慮創建與已定義的設置配置文件一致的解決方案配置。

  設置和框架的集成與資源窗格中定義的項一樣,Visual Studio 2005 自動提供對設置窗格中管理設置的強類型訪問。同時也與項目資源一樣,可以通過 My命名空間以編程方式訪問設置。然而,雖然在運行時 My.Resources對象只允許對項目資源進行只讀訪問(因爲資源元素在代碼中是以只讀屬性表示的),但 My.Settings對象將用戶設置公開爲讀/寫屬性,這當然意味着可以在運行時對它們進行更改。

  My.Settings類派生於 ApplicationSettingsBase類。這兩者之間的關係爲 My.Settings提供兩種操作用戶設置的方法:一個 Save 方法和一個 Reset 方法。更改用戶設置的編程模型非常簡單。在代碼中,只需更新作爲 My.Settings對象的屬性公開的用戶設置,然後調用 Save 方法保存更改。要將所有的用戶設置改回上次保存的設置,請調用 Reset 方法。

  注ApplicationSettingsBase類在 .NET Framework 的許多方面都很重要。例如,它被許多 Windows 窗體控件繼承,以提供對控件屬性(如大小和位置等等)的運行時訪問。該類還提供必要的功能以將運行時對控件屬性的更改保存爲用戶設置。

  My.Settings對象還公開從 ApplicationSettingsBase類繼承的事件。這些事件包括 PropertyChanged、SettingChanging 和 SettingsSaving。

新的和改進的工具窗口

  Visual Studio 2005 IDE 包含許多工具窗口,旨在提高工作效率並減少需要編寫的代碼數量。本節介紹 Visual Studio 2005 IDE 中用於提高工作效率的一些工具窗口。

  代碼編輯器

  如果對 Visual Studio 以前版本中 C# 代碼編輯器的文檔功能有所瞭解,那麼您就會發現 Visual Basic .NET 代碼編輯器的另一個新功能,它允許自動插入標記以生成 XmlDoc 註釋。要使用此功能,可以將光標放置在代碼文件中一個成員的上方,然後鍵入三個單引號。這樣就生成如下 XmlDoc 註釋標記:
‘‘‘<summary>  ‘‘‘  ‘‘‘</summary>  ‘‘‘<param name="fireDate"></param>  ‘‘‘<remarks></remarks>  Public Sub Fire(ByVal fireDate As Date)  . . .  End Sub   雖然多年以來這個功能在 C# 代碼編輯器中一直可用(它使用三個正斜槓,而不是單引號),但是對於 Visual Basic .NET 代碼編輯器而言,這仍然是一個適時加入的新功能。

  數據預覽對話框

  數據預覽對話框允許預覽項目中任何 DataComponent查詢返回的數據。要預覽數據,可以從數據設計器窗口打開數據預覽對話框(如圖 18 所示)。也可以從數據源窗口訪問數據預覽對話框。



18 從數據設計器打開數據預覽對話框。

  在“Data Preview”對話框中,首先選擇要預覽的對象。如果該對象是一個帶參數的查詢,則在該對話框的獨立控件中輸入參數值。然後單擊“Preview”按鈕以執行該查詢,結果數據的顯示如圖 19 所示。

  注更改數據庫中數據的查詢(如 INSERT、UPDATE 和 DELETE 查詢)在預覽數據對話框中執行時不會影響該數據庫。



19 數據預覽數據對話框。

  文檔大綱

  在 Visual Studio 2005 IDE 的早期版本中,文檔大綱窗口通過提供標記層次結構的可視化表示允許您查看 HTML 或 ASPX 頁面的結構。該窗口通過使用樹視圖來顯示 HTML 標記、腳本元素以及頁面上的控件,可以展開或摺疊此樹視圖以將注意力放在頁面上的特定區域。雙擊該視圖中的任一項,就可以在頁面上直接定位到該項的位置。 Visual Studio 2005 延續了該功能並進行了擴展,從而爲 Windows 窗體上的元素提供相同的可見性。

  用於 Windows 窗體佈局的文檔大綱窗口(如圖 20 所示)爲管理窗體上的控件提供一種簡單的方法。與文檔大綱窗口的最初導入一樣,可以在瀏覽該大綱時展開和摺疊所包含的項。要選擇窗體設計器中的一個控件, 可以在樹視圖中單擊該項。您可以合理地推斷,既然複雜的控件佈局在任何重要的 Windows 窗體應用程序中都很常見 — 該應用程序也可能包含許多深層嵌套的隱藏組件,或者這兩者都有 — 那麼相對於僅將其用於簡單的 Web 頁面編輯而言,將文檔大綱擴展爲窗體將爲開發人員提供更大的好處。另外,也可以在容器的層次結構內將控件從一個容器拖放到另一個容器。



20 文檔大綱窗口。

  注:重新排列文檔大綱窗口中的控件只在 Windows 窗體中可用,而不可用於 Web 頁。

窗口停靠的增強功能

  對於開發環境而言,另一個值得注意的增強功能是停靠參考線的引入(圖 21)。當在 IDE 中重排窗口時,設計圖面上將出現可更改的圖標,將您引導至可以放置該窗口的區域。如果將鼠標懸停在該圖標上,IDE 的相關區域就會變灰,指示如果選擇完成此操作該窗口將出現的位置。



21 停靠參考線。

  類設計器

  類設計器(如圖 22 所示)是一種可視化設計工具,用於檢查和操作類和其他類型的結構。該工具與設計器所顯示類型底層的源代碼完全集成;例如,如果更改了一個屬性名,該代碼文 件會自動進行更新以反映此更改。反過來,在源代碼中所做的更改也會立即影響到設計器中與其相關聯的對象的外觀。

  設計器和代碼之間的這種同步編輯關係使可視化地創建和配置 CLR 類型非常簡單。



22 類設計器。

編寫正確的代碼

  Visual Studio 2005包含了許多工具 — 一些是對舊功能的增強,一些是新增功能 — 這些工具都是爲了一個共同的目標:讓開發人員能夠更輕鬆地在設計時正確編寫代碼。在下面的章節中,我們將介紹 IDE 中的一些重要功能,可使得在 Visual Studio 2005 中編寫代碼時更少出錯。

  智能感知增強功能

  Microsoft智能感知技術延續了 Visual Studio 早期版本的主要功能,例如自動跟蹤特定類型的最常用成員。另外,對智能感知進行了改進,以包括一個用於選擇顯示某種類型的所有成員(如圖 23 所示)或者只顯示其最常用成員的工具。



23 智能感知窗口。

  如果選擇了“All”按鈕,則顯示該類型中的每個成員(包括隱藏成員)。如果您單擊“Common”按鈕,則改爲只顯示該類型中最頻繁使用的成員。如 果通常只使用一個給定類型(尤其是那些帶有許多成員的類型)的一些屬性和方法,則在 Common 模式下使用智能感知可以使您在鍵入代碼時更易於定位這些項。

  語法錯誤幫助

  Visual Basic 開發環境以前的版本在提供設計時反饋方面一直都與衆不同,尤其是當該反饋包含錯誤的語法時。代碼編輯器在含有錯誤的代碼項下面顯示一條曲線。將光標放置於 該曲線上會顯示一個簡單描述此問題的工具提示。多年以來,這種設計時語法檢查的形式一直是 Visual Studio 的重要功能,而且也確實很有幫助,但是不管該錯誤描述是否爲您提供足夠的信息以更正問題,它基本上還是一種“命中或者未命中”的機制。

  對於 Visual Studio 2005,Microsoft 也向其中加入了這項功能以便可以立即更正錯誤。並且該功能使用您所熟悉的與 Visual Studio 以前的版本相同的 UI 行爲。如果編寫了後臺編譯器認爲是語法錯誤的代碼,在代碼編輯器中也會顯示相同的曲線。如果將光標懸停在指示有錯誤的行上,則不僅會顯示同樣的描述性工具 提示,而且還會看到一個小幫助圖標。單擊該圖標會打開一個對話框,該對話框不僅顯示了對錯誤的描述,而且還列出該問題的一個或多個解決方案(請參見圖 24)。要實現某個它所建議的修改,只需單擊適當的修改。



24 錯誤更正對話框。

  設計時錶達式計算

  Visual Studio 2005 中的即時窗口也進行了增強,以便無需執行應用程序就可以測試代碼。例如,假定在 Visual Basic .NET 項目中構建了一個類,並且它包含了許多屬性和方法。要測試這些代碼,可以添加一個窗體或者構建一個控制檯包裝來對該類進行實例化。當在即時窗口中操作時, 可以實例化該類的一個實例,設置該對象的屬性,然後調用它的方法。另外,如果在代碼中設置了斷點,並從即時窗口中調用一個方法或訪問一個屬性,則執行會在 斷點處停止並允許您逐句通過代碼,就像顯式調用了調試器一樣。

  錯誤列表和任務列表

  Visual Studio 早期版本的用戶會發現,原先完全在任務列表中提供的功能現在分佈在兩個不同的工具窗口中。錯誤列表是一個新的工具窗口,顯示由智能感知引發的語法錯誤消息 和由 Visual Basic .NET 編譯器報告的生成錯誤。Visual Studio 2005 IDE 中任務列表的作用域已被縮減爲只顯示需要完成工作的提示,例如作爲註釋插入到代碼中的 TODO 任務。

  代碼片段

  代碼片段是 Visual Studio 2005 IDE 中另一個激動人心的創新功能。該功能可以向代碼編輯器中插入代碼模板以執行常見任務。例如,假設要將 Windows 窗體控件中的拖放功能添加到應用程序中。您可能之前在最近的項目中已經編寫了此代碼,但是要將這段代碼提交到內存是不可能的。代碼片段讓您可以直接從代碼 編輯器中以可重用的形式獲取代碼,而不必在一箇舊的項目文件中搜尋該代碼或者在 MSDN 或 Web 中進行搜索。

  Visual Studio 2005 隨許多按功能分類的有用代碼片段(如圖 25 所示)一起安裝。其中包括用於讀寫文件、驗證日期或電子郵件字符串格式的代碼片段(僅舉幾例)。



25 代碼片段。

  代碼片段也通過作用域進行驗證。這意味着,只有在代碼中對當前位置合適的代碼片段(例如在一個方法或函數內)纔在菜單選擇中可用。

符號重命名

  如果您和許多開發人員一樣,那麼當開始一個新的 Visual Basic .NET 項目時,您會傾向於使用窗體、控件以及其他代碼元素的默認名稱。一段時間之後,當應用程序逐漸成形,您就會根據所在組織使用的命名規則來重新命名這些項。 如果您的目標是編寫專業的代碼,這就是一項乏味卻又必要的苦差事。符號重命名工具提供了一種簡單易用的全局更新名稱的方法,有助於減輕重命名代碼元素的繁 重工作,並降低引入額外語法錯誤的風險。要在代碼編輯器中使用這項功能,可以右鍵單擊代碼中的某一項,並從上下文菜單中選擇“Rename”,如圖 26 所示。



26 從代碼編輯器訪問符號重命名工具。

  在“Rename”對話框中,鍵入該符號的新名稱,如圖 27 所示。



 圖 27 重命名對話框。

  調試器的增強功能

  Visual Studio 2005 提供許多工具來查看調試環境中的數據。其中許多工具(例如 Watch、Locals 和 Autos 窗口)一直用於 Visual Studio 的多個版本。這些工具提供應用程序數據的多個不同視圖。但是您仍然可能遇到調試時很難檢查數據的情形。在接下來的章節中,我們將探討調試器環境和工具的增 強功能,這些增強功能可以使您更容易地在運行時診斷和更正錯誤。

  DataTip

  DataTip 一直是一種在調試器中快速查看簡單數據類型的好方法。但是,在 Visual Studio 的早期版本中,對於複雜的數據類型,只能看到類型的名稱而不是其中包含的數據,如圖 28 所示。Visual Studio 2005 中 DataTip 的關鍵改進是它們現在可以顯示覆雜數據類型的成員,如圖 29 所示。



28 簡單數據類型。



29 複雜數據類型。

  DataTip 的另一個增強功能是爲簡單類型和複雜類型的每個成員提供上下文菜單。該上下文菜單包含以下選項:添加查看所選類型、編輯該類型的值或查看該類型的十六進制值。(請參見圖 30。)


30 DataTip 選項。

  您也可以直接在 DataTip 中編輯成員值,方法是選擇該值,然後鍵入其新值來替換它,如圖 31 所示。




31 更新成員值。

  完成成員變量的更改後,DataTip 會自動顯示更新的值,如圖 32 所示。



32 更新之後的成員值。

  Visualizer

  Visual Studio 2005 調試器的一個更復雜的數據檢查工具是 visualizer。Visualizer 是一個對話框,它將變量或對象以對特定數據類型有意義的方式進行顯示。例如,使用 Visual Studio 2005 中包含的四個默認 Visualizer 之一,可以以 HTML、XML 或純文本的形式可視化字符串變量。

  所有各種不同的調試工具 — DataTip、Watch 窗口、Locals 窗口或 Autos 窗口 — 都在可用 Visualizer 查看的數據類型旁邊顯示一個放大鏡圖標。單擊放大鏡可以選擇一個 Visualizer 來顯示相應對象的數據類型。

  除了剛纔提及的三個基於文本的 Visualizer 之外,默認情況下還包含一個數據集 Visualizer,使用該 Visualizer 可以更方便地檢查數據集中包含的數據。

  提示其他 Visualizer 將來可以從 Microsoft 下載獲得。

  異常助手

  異常助手是 Visual Studio 2005 引入的一個新調試工具。當一個運行時異常發生時,它將以一個對話框的形式出現,顯示關於該錯誤的細節。值得一提的是,該異常助手對話框還包括處理異常的故障診斷提示。

  該對話框的標題欄顯示錯誤的類型,標題欄下方是對錯誤的描述。該助手的頂部是故障診斷提示部分,它在大多數情況下都會提供一些指向幫助內容的鏈接,以幫助您診斷問題。然而,在許多情況下,此助手會爲更正錯誤提供循序漸進指導。

  自定義數據顯示

  Visual Studio 2005 爲在調試器中自定義數據顯示提供了幾個選項。接下來的一節介紹了三種用於操作調試器中顯示數據方式的方法。

  重寫自定義類型的 ToString 方法

  要改變調試器中顯示的自定義類型的數據,一種最簡單的方法是重寫基對象 ToString方法,如下所示:

Overrides Function ToString() As String  Return Me.FirstName & ““& Me.LastName  End Function   使用調試器顯示屬性

  其他的情況可能需要對數據如何顯示進行更多的控制。您可能想按照不同的方式設置基礎數據的格式,或者限制在調試器中顯示的數據量。.NET Framework 爲控制數據在調試器中的顯示方式提供了三個屬性類:

  | DebuggerDisplayAttribute應用該屬性爲調試器數據窗口中的類型添加摘要。例如,下面的代碼顯示如何向一個自定義數據類型添加摘要:
<DebuggerDisplay(“Associate ( { FullName } “) >_  Public Class Associate  Private FullName as String  . . .  End Class   DebuggerDisplayAttribute的構造函數接受字符串格式規範。大括號內的文本表示所包含類的一個屬性或方法。請注意,可以使用該 類的私有成員和公共成員。

  |DebuggerBrowsableAttribute將此屬性應用於類中的成員,以控制它是否在調試器中顯示。
Public Class Associate  <DebuggerBrowsable( False ) > _  Public Property SocialSecurityNumber As String  . . .  End Property  End Class   在前面的僞代碼中,將 DebuggerBrowsableAttribute應用於 Associate 類的 Social-SecurityNumber屬性將阻止該屬性在調試器窗口中顯示。

  | DebuggerTypeProxyAttribute該屬性允許以一個自定義的調試器類型來替換屬性化成員,從而提供了極大的靈活性。
<DebuggerTypeProxy( GetType( AssociateProxy ) )> _  Public Class Associate  . . .  End Class   DebuggerTypeProxyAttribute構造函數的輸入參數指定一個類,此類用作顯示該類型數據的代理。作爲一種最佳做法,應該將該代 理類實現爲它所應用的數據類型的一個嵌套內部類。這樣,該嵌套類就可以對其所描述的類型的私有成員進行完全訪問。

  演練

  該演練演示如何使用類設計器來構建並可視化地構造一個類的層次結構。

  此應用程序是一個類庫,用於表示一個虛構的專業服務公司的數據實體。該類代表兩種類型的員工實體,一種是 partner,另一種是 associate。

  這些實體分別使用 Partner Associate 類在類庫中建模。因爲它們共享許多公共屬性和操作,所以 Partner Associate 類均派生於 Employee 基類,而 Employee 又派生於稱爲 Person 的其自身的基類。

  另外,設計要求 PartnerAssociate 類可序列化,並且這些類本身在序列化過程中可執行自定義代碼。爲達到此目標,這兩個類均實現 System.Runtime.Serialization命名空間中包含的 ISerializable接口。

  抽象的 Employee 類還實現一個名爲 IPerks 的自定義接口,該接口包含在項目中。該接口滿足此項目的一個設計目標,即提供一種方式以建模不同類別員工的福利,因此該接口的實現對於每個派生於 Employee 類的類型而言均不相同。

  包含在項目文件中的是 ClassDiagram1.cd 文件,它由類設計器工具生成。如果在 Visual Studio 2005 的文檔窗口中打開此文件,會看到它爲類庫提供對象層次結構的可視化表示。雖然這個特定的示例相對比較簡單,但此關係圖可以使您立即理解類庫中各種不同類之 間的關係。還可以使用類設計器來更改類的任何屬性或關係。因爲類設計器與 Visual Studio 2005 IDE 緊密集成,所以對關係圖中的對象所做的任何更改都會立即反映到基礎代碼文件中。

  小結

  Visual Studio 2005 集成開發環境包括許多新的和改進的用於提高工作效率的功能。IDE 還進行了重新設計,從而向開發人員提供對 .NET Framework 組件(如新的設置和資源體系結構)的更直接訪問。
發佈了8 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章