Сборки .NET, установка приложений и COM Interop
Принципы работы СОМ
В завершение мы решили остановиться на проблемах установки и размещения программ, а также на использовании готовых программ, использующих модель COM (Component Object Model). Вообще-то на эту тему можно написать целую книгу, но мы надеемся, что это короткое вступление поможет вам перейти к самостоятельному изучению этой темы.Сборки .NET
Как было сказано в начале этой главы, процесс установки в .NET часто сводится к простому копированию файлов, после чего программа готова к немедленному запуску. Если удалить скопированные файлы, то работать перестает только эта конкретная программа.Манифест
Теоретически сборка может быть устроена весьма сложно, поэтому в нее включается манифест – совокупность всех сведений о сборке, необходимых исполнительной среде (CLR) для загрузки, компиляции (при необходимости) и выполнения сборки. В манифест входят следующие сведения:Исследование манифеста
При двойном щелчке на строке Manifest из рис. 13.1 открывается окно, показанное на рис. 13.2. Обратите внимание на перечисление всех сборок, от которых зависит данная сборка, а также на описание класса Employee.Общие сборки и GAC. Включение и удаление сборок из GAC.
Общие сборки .NET хранятся в глобальном кэше сборок (GAC). Наличие глобального кэша экономит дисковое пространство и память, поскольку на стадии выполнения программы на диске или в памяти достаточно хранить лишь один экземпляр сборки.Сильные имена и совместное использование сборок. Построение ключей. Сертификация сборки.
Сильные имена, как и GUID, должны быть уникальными в пространстве и времени. В отличие от GUID, которые теоретически могут быть похищены, сильные имена защищены от несанкционированного использования при помощи механизма шифрования с открытым ключом [При условии надежного хранения закрытого ключа.].COM Interop и вызовы функций DLL. Вызовы функций DLL.
Несмотря на появление .NET, существующий код на базе СОМ еще не собирается умирать. К счастью, уровень взаимодействия с СОМ в .NET работает очень хорошо. С другой стороны, использование СОМ в проектах .NET снижает быстродействие и затрудняет сопровождение программ, поэтому эти технологии объединяются лишь при крайней необходимости.