Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet47/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   43   44   45   46   47   48   49   50   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Объединение модулей 
для создания сборки
Файл 
Program exe
— это не просто PE-файл с метаданными, а еще и 
сборка
(assembly), 
то есть совокупность одного или нескольких файлов с определениями типов и фай-
лов ресурсов. Один из файлов сборки выбирается для хранения ее манифеста. 
Ма-
нифест
(manifest) — это еще один набор таблиц метаданных, которые в основном 
содержат имена файлов, составляющих сборку. Кроме того, эти таблицы описывают 
версию и региональные стандарты сборки, ее издателя, общедоступные экспорти-
руемые типы, а также все составляющие сборку файлы.
CLR работает со сборками, то есть сначала CLR всегда загружает файл с та-
блицами метаданных манифеста, а затем получает из манифеста имена остальных 
файлов сборки. Некоторые характеристики сборки стоит запомнить:
‰
в сборке определены многократно используемые типы;
‰
сборке назначается номер версии;
‰
со сборкой может быть связана информация безопасности.
У отдельных файлов сборки, кроме файла с таблицами метаданных манифеста, 
таких атрибутов нет.
Чтобы упаковать типы, а также обеспечить безопасность типов и управление 
их версиями, нужно поместить типы в модули, объединенные в сборку. Чаще всего 
сборка состоит из одного файла, как приложение 
Program exe
в рассмотренном при-
мере, но могут быть и сборки из нескольких файлов: PE-файлов с метаданными 


72
Глава.2 .Компоновка,.упаковка,.развертывание.и.администрирование.приложений
и файлов ресурсов, например GIF- или JPG-файлов. Наверное, проще представлять 
себе сборку как «логический» EXE- или DLL-файл.
Уверен, многим читателям интересно, зачем компании Microsoft понадобилось 
вводить новое понятие — «сборка». Дело в том, что сборка позволяет разграничить 
логическое и физическое понятия многократно используемых типов. Допустим, 
сборка состоит из нескольких типов. При этом типы, применяемые чаще всех, 
можно поместить в один файл, а применяемые реже — в другой. Если сборка раз-
вертывается путем загрузки через Интернет, клиент может вовсе не загружать файл 
с редко используемыми типами, если он никогда их не задействует. Например, 
независимый поставщик ПО (independent software vendor, ISV), специализирую-
щийся на разработке элементов управления пользовательского интерфейса, может 
реализовать в отдельном модуле типы Active Accessibility (необходимые для со-
ответствия требованиям логотипа Microsoft). Загружать этот модуль достаточно 
лишь тем, кому нужны специальные возможности.
Можно настроить приложение так, чтобы оно загружало файлы сборки, опреде-
лив в его конфигурационном файле элемент 
codeBase
(см. подробнее главу 3). Этот 
элемент идентифицирует URL-адрес, по которому можно найти все файлы сборки. 
При попытке загрузить файл сборки CLR получает URL из элемента 
codeBase
и проверяет наличие нужного файла в локальном кэше загруженных файлов. Если 
файл там присутствует, то он загружается, если нет — CLR использует для загрузки 
файла в кэш URL-адрес. Если найти нужный файл не удается, CLR генерирует ис-
ключение 
FileNotFoundException
.
У меня есть три аргумента в пользу применения многофайловых сборок.
‰
Можно распределять типы по нескольким файлам, допуская избирательную 
загрузку необходимых файлов из Интернета, а также частично упаковывать 
и развертывать типы, варьируя функциональность приложения.
‰
Можно добавлять к сборке файлы с ресурсами и данными. Допустим, имеется 
тип для расчета некоторой страховой суммы. Ему может потребоваться доступ 
к актуарным таблицам. Вместо встраивания актуарных таблиц в исходный код 
можно включить соответствующий файл с данными в состав сборки (например, 
с помощью компоновщика сборок 
AL exe
, который рассмотрен далее). В сборки 
можно включать данные в любом формате: в текстовом, в виде таблиц Microsoft 
Excel или Microsoft Word, а также в любом другом при условии, что приложение 
способно разобрать данные в этом формате.
‰
Сборки могут состоять из типов, написанных на разных языках программиро-
вания. Одна часть типов может быть написана на C#, другая — на Visual Basic, 
остальные — на других языках программирования. При компиляции исходного 
текста на языке C# компилятор создает один модуль, а при компиляции ис-
ходного текста на Visual Basic — другой. Затем при помощи соответствующего 
инструмента все эти модули объединяются в одну сборку. Использующие такую 
сборку разработчики увидят в ней лишь набор типов. Разработчики даже не за-


73
Объединение.модулей.для.создания.сборки
метят, что применялись разные языки программирования. Кстати, при желании 
с помощью 
ILDasm exe
можно получить файлы с исходным текстом всех моду-
лей на языке IL. После этого можно запустить утилиту 
ILAsm exe
и передать ей 
полученные файлы, и утилита выдаст файл, содержащий все типы. Для этого 
компилятор исходного текста должен генерировать только IL-код.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   43   44   45   46   47   48   49   50   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish