русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


РОЗДІЛ 12. ЗБІРКИ, БІБЛІОТЕКИ, АТРИБУТИ, ДИРЕКТИВИ


Дата додавання: 2015-01-08; переглядів: 980.


 

У цьому розділі розглядаються питання створення і використання бібліотек, дається інформація про атрибути, простір імен і директиви препроцесора.

 

Збірки

В результаті компіляції в середовищі .NET створюється збірка - файл з розширенням ехе або dll, який містить код на проміжній мові, метадані типів, маніфест і ресурси (рис. 12.1)

 

Маніфест
Метадані
Код на мові IL
Ресурси (не обов'язково)

 

Рис. 12.1. Збірка, що складається з одного файлу

 

Проміжна мова (Intermediate Language, IL) не містить інструкцій, залежних від операційної системи і типу комп'ютера, що забезпечує дві основні можливості:

· виконання додатку на будь-якому типі комп'ютера, для якого існує середовище виконання CLR;

· повторне використання коду, написаного на будь-якій .NET- мові.

IL-код можна проглянути за допомогою дизасемблера ILDasm.exe, який знаходиться в папці ...\SDK\bin\ каталога розміщення Visual Studio.NET. Після запуску ILDasm можна відкрити будь-який файл середовища .NET з розширенням ехе або dll; за допомогою команди File > Open. У вікні програми відкриється список всіх елементів збірки, відомості про кожне можна отримати подвійним клацанням. При цьому відкривається вікно, в якому для методів виводиться доступний для сприйняття дізасембльований код.

Метадані типів - це відомості про типи, використовувані в збірці. Компілятор створює метадані автоматично. У них міститься інформація про кожен тип, наявний в програмі, і про кожен його елемент. Наприклад, для кожного класу описуються всі його поля, методи, властивості, події, базові класи і інтерфейси.

Середовище виконання використовує метадані для пошуку визначень типів і їх елементів в збірці, для створення екземплярів об'єктів, перевірки виклику методів і так далі. Компілятор, редактор коду і засоби відладки також широко використовують метадані, наприклад, для виведення підказок і діагностичних повідомлень.

Маніфест - це набір метаданих про саму збірку, включаючи інформацію про всі файли, що входять до складу збірки, версії збірки, а також зведення про всі зовнішні збірки, на які вона посилається. Маніфест створюється компілятором автоматично, програміст може доповнювати його власними атрибутами.

Найчастіше збірка складається з єдиного файлу, проте вона може включати і декілька фізичних файлів (модулів). В цьому випадку маніфест або включається до складу одного з файлів, або міститься в окремому файлі. Багатофайлові збірки використовуються для прискорення завантаження додатку - це має сенс для збірок великого об'єму, робота з якими проводиться видалено.

На логічному рівні збірка є сукупністю взаємозв'язаних типів - класів, інтерфейсів, структур, перелічень, делегатів і ресурсів. Бібліотека .NET є сукупністю збірок, яку використовують додатки. Так само можна створювати і власні збірки, які можна буде використовувати або в рамках одного застосування (приватні збірки), або спільно різними застосуваннями (відкриті збірки). За умовчанням всі збірки є приватними.

Маніфест збірки містить:

· ідентифікатор версії;

· список всіх внутрішніх модулів збірки;

· список зовнішніх збірок, необхідних для нормального виконання збірки;

· інформацію про природну мову, використовувану в збірці (наприклад, російському);

· “сильне” ім'я (strong name) - спеціальний варіант імені збірки, використовуваний для відкритих збірок;

· необов'язкову інформацію, пов'язану з безпекою;

· необов'язкову інформацію, пов'язану із зберіганням ресурсів усередині збірки.

Ідентифікатор версії відноситься до всіх елементів збірки. Він дозволяє уникати конфліктів імен і підтримувати одночасне існування і використання різних версій одних і тих же збірок. Ідентифікатор версії складається з двох частин: інформаційної версії у вигляді текстового рядка і версії сумісності у вигляді чотирьох чисел, розділених крапками:

· основний номер версії (major version);

· додатковий номер версії (minor version);

· номер збірки (build number);

· номер ревізії (revision number).

Середовище виконання застосовує ідентифікатор версій для визначення того, які з відкритих збірок сумісні з вимогами клієнта. Наприклад, якщо клієнт запрошує збірку 3.1.0.0, а присутня тільки версія 3.4.0.0, збірка не буде пізнана як відповідна, оскільки вважається, що в додаткових версіях можуть відбутися зміни в типах і їх елементах. Різні номери ревізії допускають, але не гарантують сумісність. Номер збірки на сумісність не впливає, оскільки найчастіше він змінюється при установці патча (patch).

Ідентифікатор версії формується автоматично, але за бажання можна задати його вручну за допомогою атрибуту [AssemblyVersion], який розглядається далі.

Інформація про безпеку дозволяє визначити, чи надати клієнтові доступ до запрошуваних елементів збірки. У маніфесті збірки визначені обмеження системи безпеки.

Ресурси є, наприклад, файлами зображень, що поміщаються на форму, текстові рядки, значки додатку і так далі. Зберігання ресурсів усередині збірки забезпечує їх захист і спрощує розгортання додатку. Середовище Visual Studio.NET надає можливості автоматичного впровадження ресурсів в збірку.

Відкриті і приватні збірки розрізняються по способах розміщення на комп'ютері користувача, іменуванні і політиці версій. Приватні збірки повинні знаходитися в каталозі додатку, що використовує збірку, або в його підкаталогах.

Відкриті збірки розміщуються в спеціальному каталозі, який називається глобальним кешем збірок (Global Assembly Cache, GAC). Для ідентифікації відкритої збірки використовується вже згадуване сильне ім'я (strong name), яке має бути унікальним.

 


<== попередня лекція | наступна лекція ==>
Рекомендації по програмуванню | Створення бібліотеки


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн