Visual Studio Shell 是 Visual Studio 中整合的主要代理程式。 殼層提供必要的功能,讓 VSPackage 能夠共用一般服務。 由於 Visual Studio 的架構目標是在 VSPackage 中授予主要功能,因此殼層是提供基本功能並支援其元件 VSPackage 之間交叉通訊的架構。
殼牌職責
殼層具有以下關鍵職責:
支援 (透過 COM 介面) 使用者介面 (UI) 的基本元素。 其中包括預設功能表和工具列、文件視窗框架或多文件介面 (MDI) 子視窗,以及工具視窗框架,以及停駐支援。
在執行中的文件表格 (RDT) 中維護所有目前開啟的文件的執行清單,以協調文件的持續性,並保證無法以多種方式或以不相容的方式開啟一個文件。
支援命令路由和命令處理介面。
IOleCommandTarget在適當的時間載入 VSPackage。 延遲載入 VSPackage 是提升殼層效能的必須措施。
管理某些共用服務,例如 SVsShell提供基本 Shell 功能的 ,以及 SVsUIShell提供基本視窗功能的 。
管理解決方案 (.sln) 檔案。 解決方案包含相關專案群組,類似於 Visual C++ 6.0 中的工作區 (.dsw) 檔案。
追蹤整個殼層的選擇、上下文和貨幣。 外殼會追蹤下列類型的項目:
目前的項目
目前的專案項目或 ItemID 是目前的 IVsHierarchy
「 屬性」視窗的目前選取項目或
SelectionContainer控制命令、功能表和工具列可見度的 UI 上下文識別碼或 CmdUIGuids
目前作用中的元素,例如作用中視窗、文件和復原管理器
驅動動態說明的使用者上下文屬性
Shell 也會調解已安裝的 VSPackage 與目前服務之間的通訊。 它支援 Shell 的核心功能,並使這些功能可用於整合在 Visual Studio 中的所有 VSPackages。 這些核心功能包括以下項目:
關於 對話方塊和啟動畫面
新增和新增現有項目對話框
「類別檢視」 視窗和 物件瀏覽器
「參考」 對話方塊
「文件大綱」 視窗
動態說明視窗
尋找 和 取代
開啟專案 和 開啟檔案 對話方塊位於 新建 功能表上
「工具」功能表上的「選項」對話方塊
屬性視窗
解決方案總管
「工作清單」 視窗
工具箱