Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Понятие и типы сборок




Согласно терминологии Microsoft код. предназначенный для работы в среде выполнения.NET,— это управляемый код (managed code). Двоичный файл, который содержит управляемый файл, называется сборкой (assembly). Помимо четырех языков, поставляемых с Visual Studio.NET (С#, Visual Basic.NET. «Managed C++» и JScript.NET). ожидаются.NET-версии Smalltalk. COBOL. Pascal, Python, Perl и множества остальных известных языков программирования. Двоичные файлы.NET, для которых используются стандартные расширения DLL и ЕХЕ. по своему внутреннему содержанию не имеют абсолютно ничего общего с обычными исполняемыми файлами. Например, файлы DLL не предоставляют свои методы в распоряжение приложений на компьютере. В отличие от компонентов СОМ двоичные файлы.NET не описываются с помощью кода IDL и не регистрируются в системном реестре. Содержимое двоичных файлов.NET — это платформенно-независимый «промежуточный язык», который официально называется Microsoft Intermediate Language (MSIL. промежуточный язык Microsoft), или просто IL.

Когда с помощью компилятора для платформы.NET создается модуль DLL или ЕХЕ. содержимое этого модуля— это так называемая сборка (assembly) на языке IL. Сборки являются минимальной единицей внедрения, контроля версий, повторного использования и системы безопасности.

Назначение IL концептуально аналогично байт-коду Java— он компилируется в платформенно-специфичные инструкции, только когда это необходимо. «Необходимость» возникает тогда, когда к блоку инструкций 1L (например, реализации метода) обращается для использования среда выполнения.NET.

Помимо инструкций IL. двоичные модули.NET содержат также метаданные, которые подробно описывают все типы, использованные в модуле. Например, если внутри сборки есть класс MyClass, то в метаданных этой сборки будет содержаться информация о базовом классе для MyClass. какие интерфейсы предусмотрены для MyClass (если они вообще предусмотрены), а также полное описание всех методов, свойств и событий этого класса.

Во многих отношениях метаданные.NET являются значительным усовершен­ствованием по сравнению с классической информацией о типах в СОМ. Классические двоичные файлы СОМ обычно описываются с помощью ассоциированной библиотеки типов (которая очень похожа на двоичную версию кода IDL). Проблема с информацией о типах в СОМ заключается в том, что никто не может гарантировать, что эта информация окажется полной. Код IDL не может создать полный каталог внешних серверов, которые могут быть необходимы для нормальной работы содержащихся в модуле СОМ классов. Существование метаданных.NET. напротив, обеспечивается тем, что метаданные автоматически генерируются компилятором, создающим приложение.NET.

Метаданные описывают не только типы, используемые в сборке, но и саму сборку. Эта часть метаданных называется манифестом (manifest). В манифесте содержится информация о текущей версии сборки, об использованных ограничениях по безопасности, о поддерживаемом естественном языке (английском, русском и т. д.). а также список всех внешних сборок, которые потребуются для нормального выполнения.

В подавляющем большинстве случаев двоичный файл.NET и сборка — это одно и то же и между ними существует отношение «один-к-одному». Однако это не всегда верно. Сборка может состоять как из одного, так и из нескольких двоичных файлов. В сборке из одного файла (single tile assembly) этот единственный файл содержит и манифест, и метаданные, и инструкции IL.

В сборке из нескольких двоичных файлов (multifile assembly) каждый двоичный файл называется модулем (Module). При создании таких многофайловых сборок один из двоичных файлов должен содержать манифест сборки (в нем могут также находиться и другие данные, в том числе инструкции IL). Все остальные модули могут содержать только метаданные типов и инструкции IL.

Хотя компоненты.NET не требуют регистрации, необходимо некоторое хранилище для сборок, используемых более чем одним приложением. Common Language Runtime поддерживает два таких хранилища — Download Cache и Global Assembly Cache (GAC). Сборка, используемая более чем одним приложением, помещается в GAC. GAC представляет собой специализированный каталог, располагаемый в С:\ WINNT\assembly. Если сборка не обнаружена в локальном каталоге или в GAC. то Common Language Runtime пытается прочитать файл конфигурации. В этом файле можно указать местонахождение сборки (code base), и тогда среда выполнения загрузит сборку и сохранит ее в Download Cache. Для просмотра содержимого GAC и для установки и удаления сборок можно использовать утилиту GAC Util.

 




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 609; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.