方案總管
VS.NET整合式開發環境右上方為方案總管。其使用者介面如下所示。
方案總管包含一個工具條和一個解決方案資源樹狀列表。[袁永福著作權]
解決方案資源樹狀列表 解決方案資源樹狀列表的方式列出了C#工程中包含的所有的成員項目。這個樹狀列表中列出的常見的成員項目類型有以下幾種。
解決方案 這個樹狀列表的只有一個“解決方案”根節點,根節點下面列出了該解決方案下的所有的成員項目。解決方案下面一般是各種類型的工程項目節點。還可以是其他檔案。 比如在中,樹狀列表根節點是“”,它下麵包含了一個C#工程節點。 滑鼠右擊解決方案節點,會如彈出捷徑功能表。
該捷徑功能表中常用的功能表項目有
產生解決方案 |
對該解決方案下的所有的程式工程進行編譯,輸出編譯結果。這個進行是增量編譯。在編譯一個程式工程前會判斷該工程及其內容是否發生改變,若改變了則進行編譯,否則就是用最後一個編譯結果。這能節省產生解決方案的執行時間。比如對於一個C#工程,若在最後一次編譯成功後所有的程式原始碼檔案,資源檔沒有修改過,則產生解決方案時該C#工程不會編譯而是用最後一次編譯結果。 |
重建解決方案 |
也是將解決方案下的所有的程式工程進行編譯,輸出編譯結果。但不會進行增量編譯判斷。 |
添加 |
該功能表項目有子功能表項目。 |
添加→建立項目 |
顯示“添加新項目”對話方塊,若使用者的操作新增了一個項目,則將新增的項目添加到這個解決方案中。下一次開啟解決方案時也會載入這個剛剛新增的程式項目。 |
添加→現有項目 |
顯示一個“添加現有項目”的檔案選擇對話方塊,若使用者選擇了一個VS.NET支援的程式專案檔,比如C#或者VB.NET專案檔,則VS.NET載入該項目並添加到這個解決方案中。下一次開啟解決方案時也會載入這個程式項目。 |
添加→建立網站 |
顯示一個“添加新網站”對話方塊,若使用者的操作新增了一個網站類型的程式項目則將這個新增的項目添加到這個解決方案中。 |
添加→現有網站 |
顯示一個“添加現有網站”對話方塊,若使用者的操作開啟了一個網站類型的程式項目,則VS.NET將這個程式項目添加到解決方案中。 |
重新命名 |
修改解決方案的名稱。 |
屬性 |
在VS.NET的主工作區域中顯示解決方案屬性視窗。 |
程式工程 解決方案節點下列出了該解決方案中的程式工程節點。一個解決方案可以包含多個和多種程式工程,比如一個解決方案可以包含若干個C#工程,若干個VB.NET工程或若干個VC++.NET工程,安裝工程等等。[袁永福著作權] 在中,節點“ ”就是程式工程節點。 點擊程式工程節點,會如彈出捷徑功能表
該捷徑功能表中常用的功能表項目有
產生 |
對程式項目進行編譯,輸出編譯結果。會進行增量編譯判斷,若最後一次產生後所有的原始碼或資源檔沒有修改過則不會重建而直接使用上一次的編譯結果。 |
重建 |
對程式項目進行編譯,輸出編譯結果。不會進行增量編譯判斷。 |
添加 |
這個功能表項目有若干子功能表。 |
添加→新增項 |
顯示“添加新項”對話方塊,往這個程式項目中添加新的檔案。 |
添加→現有項 |
顯示“添加現有項”對話方塊,可將多個已經存在的檔案添加到程式項目中。 |
添加→建立檔案夾 |
在程式項目中建立一個檔案夾。 |
添加→Windows表單 |
顯示“添加新項”對話方塊,並自動化佈建項目類型為“Windows 表單”。用於快速的向程式項目中添加新的Windows表單類型。 |
添加→使用者控制項 |
顯示“添加新項”對話方塊,並自動化佈建項目類型為“使用者控制項”。用於快速的向程式項目中添加新的使用者控制項類型。 |
添加引用 |
顯示“添加引用”對話方塊,為程式項目添加一個程式集引用,使得軟體能調用其他程式集中已經實現的軟體功能。 |
添加Web引用 |
顯示“添加Web引用”對話方塊,為程式項目添加一個Web引用,是的軟體能調用WebService。 |
設為啟動項目 |
在VS.NET中開發人員點擊VS.NET的菜單“調試-啟動調試”或者按在F5鍵以偵錯模式啟動程式時,由於解決方案可以包含多個程式工程項目,而VS.NET不支援同時運行所有的程式項目,因此必須從多個程式工程項目中指定一個作為首先啟動的項目。使用本功能表項目就是指定當前程式工程項目為啟動項目。啟動項目必須為WinForm類型、命令列類型或者網站類型,不能為類庫類型。 |
移除 |
在解決方案中刪除該項目,但不會刪除任何專案檔,只是讓解決方案不再包含這個程式工程項目。 |
重新命名 |
修改程式工程項目的名稱。項目工程名稱和檔案名稱是相同的,修改工程項目名稱也會修改檔案名稱。注意,修改工程名稱不會修改工程的程式集名稱和預設命名空間。比如在這裡的C#工程“第一個Windows應用程式”,它的工程檔案名稱為“第一個Windows應用程式.csproj”;若修改項目工程名稱為“第二個Windows應用程式”,則它的工程檔案名稱修改為“第二個Windows應用程式.csproj”。但這個工程編譯輸出結果還是“第一個Windows應用程式.exe”。 |
引用 在樹狀列表的“引用”節點下列出了本C#工程引用的外部程式集。外部程式集就是其他人已經開發好的獨立的程式模組,開發人員在開發自己的程式中可以調用這些現有的程式模組的功能,實現了軟體的重用。[袁永福著作權] 在本例中可以看到,C#工程“第一個Windows應用程式”引用了“System”、“System.Data”、“System.Deployment”、“System.Drawing”、“System.Windows.Forms”和“System.Xml”等6個外部程式集。 滑鼠右擊“引用”節點會彈出如所示的捷徑功能表。
該捷徑功能表中,“添加引用”菜單功能等於程式工程的捷徑功能表中的“添加引用”,“添加Web引用”菜單功能等於程式工程的捷徑功能表中的“添加Web引用”。
程式檔案 程式工程節點下大部分是程式檔案節點。包括原始碼檔案、程式資源檔和其他文檔檔案。對於某些程式模組,比如表單、使用者控制項、ASP.NET頁面等,需要多個程式檔案的支援,此時會將這些相關聯的檔案顯示為主檔案的子節點。 如所示,對於一個表單一般包含三個檔案。比如對於表單“frm靠左對齊”,包含三個檔案“frm靠左對齊.cs”、“frm靠左對齊.Designer.cs”和“frm靠左對齊.resx”。其中第一個檔案是表單原始碼主檔案,“Designer.cs”是表單設計器自動產生的程式碼檔案,“resx”檔案是表單資源檔,用於儲存表單中的諸片等資源資料。 如所示,滑鼠右擊檔案節點,會顯示一個捷徑功能表。
該捷徑功能表中常用的功能表項目有
開啟 |
以該檔案類型對應的預設的方式開啟檔案。在樹狀列表中滑鼠雙擊某個檔案就相當於執行了“開啟”操作。比如對於表單代碼檔案則在VS.NET主工作區域中開啟表單設計器。對於純粹的原始碼檔案則在主工作區域中顯示該源檔案的內容。對於Word文檔則會調用MS Word程式開啟該檔案。 |
開啟檔案 |
顯示如所示的“開啟檔案”對話方塊,選擇某種開啟檔案來開啟檔案。 |
查看代碼 |
直接查看檔案的原始碼,而不調用某種可視化的設計器。比如對於表單代碼檔案,預設是調用表單設計器開啟它的,而點擊“查看代碼”則顯示該表單代碼檔案的C#原始碼。 |
查看設計器 |
盡量調用當前檔案的檔案類型配套的視覺化設計工具來查看和編輯檔案內容。比如對於本例中的Form1.cs調用表單設計器來開啟檔案。 |
從項目中排除 |
將當前檔案從程式項目中去掉,使得程式項目不再包含該檔案。但不會從磁碟中刪除該檔案。今後還可以使用“添加現有項”的操作將檔案重新包含在程式項目中。 |
剪下 |
剪下檔案。 |
複製 |
複製檔案。 |
刪除 |
刪除檔案。注意,該操作將從磁碟中永久的刪除檔案,而且無法使用Windows的資源回收筒功能恢複檔案。 |
重新命名 |
修改檔案名稱。 |
屬性 |
在屬性列表中顯示該檔案的屬性設定。 |
對於不同的檔案類型,該捷徑功能表的內容可能會發上改變,即使對於同一種副檔名的檔案其菜單內容也可能不同。 比如對於檔案Form1.cs,VS.NET檢測到該檔案是一個表單的主原始碼檔案,因此它的捷徑功能表有“查看設計器”項目,而且點擊“開啟”菜單會調用WinForm表單設計器來開啟該原始碼檔案;而對於Program.cs檔案,VS.NET檢測到該檔案是一個純粹的C#原始碼檔案,此時它的捷徑功能表就沒有“查看設計器”,而且點擊“開啟”菜單會以文本方式顯示該C#原始碼檔案的內容。
檔案夾 當程式檔案非常多時,可以使用檔案夾以樹狀的結構組織和管理程式檔案,比如同屬一個大的功能模組的程式碼可以放在一個檔案夾下。 對於C#工程,檔案夾還會影響原始碼的預設的命名空間的。在項目中的子檔案夾中新增程式原始碼檔案,則原始碼中的命名空間就是“項目預設命名空間.子檔案夾名”。而且子檔案夾中的資源檔在編譯後的程式集中的資源名稱也是“項目預設命名空間.子檔案夾名.檔案名稱”。[袁永福著作權] 對於本例中的C#工程“第一個Windows應用程式”,其預設命名空間是“第一個Windows應用程式”。在解決方案資源樹狀列表的C#工程項目節點上滑鼠右擊彈出捷徑功能表,點擊“添加-建立檔案夾”功能表項目,此時會在工程節點下面建立了一個“NewFolder1”的檔案夾。 滑鼠右擊“MyFolder”檔案夾,會彈出如所示的捷徑功能表。
這個捷徑功能表中常用的功能表項目有
添加 |
該項目有多個子功能表項目。這些子功能表項目用於在這個目錄下添加新的檔案或子檔案夾。 |
從項目中排除 |
從項目中排除這個檔案夾以及所有的子檔案夾和檔案,但不從磁碟中刪除該檔案夾及其內容。 |
重新命名 |
修改該檔案夾的名稱。 |
點擊“重新命名”功能表項目將該檔案夾名稱修改為“MyFolder”。這樣就完成了新增一個指定名稱的檔案夾的操作。 在MyFolder檔案夾下面新增一個名為“MyClass”的C#類原始碼檔案。開啟該檔案可以看到其代碼文本如下using System;
using System.Collections.Generic;
using System.Text;
namespace 第一個Windows應用程式.MyFolder
{
class MyClass
{
}
}
可以看到,預設情況下,這個類型的命名空間就是“第一個Windows應用程式.MyFolder”。 注意,當修改該檔案夾的名稱後,該檔案夾下已有的[袁永福著作權]原始碼的命名空間不會自動更新,但此後新增的原始碼中的命名空間包含了新的檔案夾的名稱的。 開發人員可以在檔案夾下再建立子檔案夾,形成多級目錄結構。此時在多層檔案夾下面新增的C#代碼檔案其預設的命名空間就是“項目預設命名空間.檔案夾名.子檔案夾名”,以此類推。這種檔案夾層級關係理論上沒有限制,但在筆者的實踐中至多用上3層。