Effective C# :建立二進位制元件

iDotNetSpace發表於2010-01-22
   二進位制元件允許我們將各個功能分解後單獨釋出,.NET中將這種型別的二進位制元件稱作程式集,在共享邏輯、跨語言以及元件部署方面,程式集為我們提供了很多簡化和便利。

    程式集在.NET中充當了元件包的角色,每個程式集都可以獨立的釋出和升級,制約我們升級一個程式集的因素是“如何儘量減少程式集之間的耦合”。

    當程式啟動時,CLR載入器並不會載入所有被引用的程式集,而是之用當CLR需要某個程式集中的元素時,才會去解析相關的引用,它會首先找到被引用的程式集,然後載入它,並JIT編譯必要的IL程式碼。

    程式集分為“強命名程式集”和“弱命名程式集”,其中“強命名程式集”包含:程式集的文字名稱、版本號、語言文化以及共有金鑰標記。而“弱命名程式集”只包含程式集的文字名稱。

    注意:1)只有強命名程式集才可以儲存在GAC中;2)我們可以使用配置檔案來改變應用程式中每個強命名程式集的預設行為;3)強命名程式集可以防止惡意的篡改,從而可以為應用程式提供更高的安全保障。

    程式集的版本號由4部分組成:Major.Minor.Build.Revision,編譯器可以自動生成Build版本號和Revision版本號,生 成規則:Build版本號是自2000年1月1日以來的天數;Revision版本號是自午夜以來的秒數再除以2,這種演算法可以保證每次編譯出來的版本號 都是唯一的。

    在升級程式集時,我們需要保證升級前的元件介面中的公有成員和受保護成員要和升級後的元件在IL層次上保持相容,即我們不能刪除方法、不能修改引數和返回值。我們必須確保升級後引用該元件的所有其他元件不需要重新編譯。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-625749/,如需轉載,請註明出處,否則將追究法律責任。

相關文章