什麼是程式集?

2021-09-30 03:36:39 字數 1726 閱讀 4316

程式集是 .net 框架應用程式的主要構造塊。它是乙個功能集合,並以單個實現單元(乙個或多個檔案)的形式生成、版本化和部署。所有託管型別和資源或者只在其實現單元中標記為可訪問,或者在該單元外由**標記為可訪問。

程式集通過其清單(每個程式集不可缺少的部分)進行自我描述。

清單可以:

建立程式集標識(以文字名稱的形式)、版本、區域性和數字簽名(如果程式集將在應用程式間共享)。

定義組成程式集實現的檔案(按名稱和檔案雜湊)。

指定組成程式集的型別和資源,包括從程式集匯出的型別和資源。

逐條列出其他程式集上的編譯時依賴項。

指定程式集正確執行所需的許可權集

命名空間名稱和程式集名稱之間的差異是什麼?

命名空間是型別的邏輯命名方案,此方案中簡單的型別名稱(如 mytype)用以點分隔的分層名稱開頭。這樣的命名方案完全受開發人員控制。例如,型別 mycompany.fileaccess.a 和 mycompany.fileaccess.b 可能在邏輯上應具有與檔案訪問相關的功能。.net 框架使用分層命名方案將型別分為相關功能(例如 asp.net 應用程式框架)或遠端處理功能的邏輯類別。設計工具可以利用命名空間使開發人員在**中瀏覽和引用型別更容易。命名空間的概念與程式集的概念無關。單個程式集可以包含分層名稱具有不同命名空間根的型別,而邏輯命名空間根可以跨越多個程式集。在 .net 框架中,命名空間是邏輯設計時命名便利,而程式集在執行時建立型別的名稱範圍。

什麼是專用程式集和共享程式集?

專用程式集僅由單個應用程式使用,並儲存在該應用程式的安裝目錄中(或其中的子目錄中)。共享程式集是乙個可以由多個應用程式引用的程式集。為了共享程式集,必須給予該程式集乙個加密的強名稱(有時又稱強名稱),為此目的顯式生成程式集。相比之下,專用程式集名稱只需在使用它的應用程式中是唯一的。

通過區分專用程式集和共享程式集,我們以顯式決策的形式引入共享概念。只需將專用程式集部署到應用程式目錄,即可保證該應用程式只與用來生成和部署它的位一起執行。對專用程式集的引用只被本地解析到專用應用程式目錄。

形象的舉例:

如果說命名空間是類庫的邏輯組織形式,那麼程式集就是類庫的物理組織形式。只有同時指定型別所在的命名空間及實現該型別的程式集,才能完全限定該型別。(摘抄自《精通.net核心技術--原來與架構》   電子工業出版社)  

例如我們要用a類,則需要把包含a類的程式集(即*.dll)引用到該工程中(物理);而在程式中要宣告a類的命名空間(邏輯)。 

程式集就是程式的集合啊,可以理解為乙個專案中的一堆程式,一般乙個專案是乙個程式集,在專案中右鍵屬性裡面可以設定程式集的名字。(理解成dll或exe也差不多)   

程式集也不是物理組織的,例如:乙個檔案可以包含多個程式集,乙個程式集也可以分成幾個檔案。

命名空間是型別的一種邏輯命名方案,其中簡單型別名稱(如   mytype)前面帶有用點分隔的層次結構名稱。這樣的命名方案完全在開發人員的控制之下。例如,鍵入   mycompany.fileaccess.a   和   mycompany.fileaccess.b   在邏輯上將會具有與檔案訪問相關的功能。.net   框架使用一種層次結構命名方案,用於將型別按相關功能的邏輯類別進行分組,例如,asp.net   應用程式框架或遠端處理功能。設計工具可以利用命名空間使開發人員更容易在**中瀏覽和引用型別。命名空間的概念與程式集的概念之間沒有任何聯絡。乙個程式集可以包含其層次結構名稱具有不同命名空間根的型別,而乙個邏輯命名空間根可以跨越多個程式集。在   .net   框架中,命名空間是在設計時進行邏輯命名的便捷方式,而程式集在執行時為型別建立名稱作用域。 

什麼是程式集

程式集是 net 框架應用程式的主要構造塊。它是乙個功能集合,並以單個實現單元 乙個或多個檔案 的形式生成 版本化和部署。所有託管型別和資源或者只在其實現單元中標記為可訪問,或者在該單元外由 標記為可訪問。程式集通過其清單 每個程式集不可缺少的部分 進行自我描述。清單可以 建立程式集標識 以文字名稱...

什麼是程式集

這一章的內容參考自微軟文件 程式集是為協同工作而生成的型別和資源的集合,這些型別和資源構成了乙個邏輯功能單元,構成了.net應用程式的部署 版本控制 重用 啟用範圍和安全許可權的基本單元。程式集採用可執行檔案 exe 或動態鏈結檔案 dll 的形式,是.net應用程式的構建基塊。程式集定義以下資訊 ...

什麼是Assembly 程式集

assembly是乙個包含來程式的名稱,版本號,自我描述,檔案關聯關係和檔案位置等資訊的乙個集合。在.net框架中通過assembly類來支援,該類位於system.reflection下,物理位置位於 mscorlib.dll。assembly能幹什麼?我們可以通過assembly的資訊來獲取程式...