- •Міжнародний науково-технічний університет імені академіка юрія бугая Крос-платформне програмування
- •Лекція 1. Компонентна ідеологія
- •1.1. Поняття крос-платформності, її типи
- •1. На рівні мови програмування
- •2. На рівні прикладних програм
- •3. На рівні операційної системи
- •Емуляція
- •1.2. Визначення та властивості компонентів. Специфікація інтерфейсу як контракту
- •2. Компонент повинен працювати в будь-якому середовищі, де є необхідні для його роботи інші компоненти.
- •3. Компоненти відрізняються від класів об'єктно-орієнтованих мов.
- •4. Компоненти не залежать від мов програмування.
- •1.3. Модель посилань (узагальнена модель компонентної системи)
- •1.4. Компонента модель .Net Framework. Типи компонентів
- •1.5. Динамічна бібліотека dll як приклад компонента
- •1.5.1. Створення dll-бібліотеки
- •1.5.2. Створення консольного проекту для тестування функції з бібліотеки
- •1.5.3 Створення Windows-проекту в тому самому рішенні
- •1.5.4. Створення dll-бібліотеки як окремого рішення (в іншому процесі)
1.4. Компонента модель .Net Framework. Типи компонентів
Поняття платформи MS.NET.
Під платформою Microsoft.NET слід розуміти інтегровану систему (інфраструктуру) засобів розробки, розгортання і виконання складних (як правило, розподілених) програмних систем.
Основа .Net – це Microsoft .Net Framework – компонентний каркас, набір засобів і технологій для розробки і виконання програмних систем.
Ключові характеристики MS.NET
1. Сучасні засоби розробки - платформа MS.Net включає як готові компоненти для побудови ПЗ, так і інтегроване середовище розробки, яке забезпечує можливість багатомовної розробки ПЗ з використанням різних мов програмування (C#, C++, VBasic.Net). Як результат, розробник програм вже не обмежується вибором однієї якої-небудь мови програмування, а може варіювати засоби розробки з урахуванням власного досвіду і властивостей програм, що розробляються, навіть в межах однієї програмної системи.
2. Компонентне представлення ПЗ – MS.Net розвиває існуючі підходи до основного способу зниження складності ПЗ - компонентному представленню програмних систем - пропонуючи більш простий, зручний і надійний метод формування програмних компонентів.
Корпорацією Microsoft запропонована реалізація компонентно-орієнтованого підходу до проектування і реалізації застосувань, який є розвитком об'єктно-орієнтованого підходу. Згідно цього підходу, інтеграція об'єктів, виконується на основі інтерфейсів, що представляють ці об'єкти (або фрагменти програм) як незалежні компоненти. Такий підхід істотно полегшує написання і взаємодію програмних компонентів в гетерогенному середовищі проектування і реалізації.
Для інсталяції на комп'ютери користувачів програми створюються інсталяційні комплекти у формі збірок.
Кожний тип збірки характеризується унікальним ідентифікатором – номером версії збірки. Таким чином, кожний програмний проект формується у вигляді збірки, яка є самодостатнім компонентом для розгортання, тиражування і повторного використання.
Між збірками і просторами імен існує наступне співвідношення. Збірка може містити декілька просторів імен. В той же час, простір імен може займати декілька збірок.
Збірка може мати в своєму складі як один, так і декілька файлів, які об'єднуються у складі маніфесту або опису збірки, який на звичній нам природній мові аналогічний змісту книги. Маніфест містить метадані про компоненти збірки, ідентифікацію автора і версії, відомості про типи і залежність, а також режим і політику використання збірки. Метадані типів маніфесту повною мірою описують всі типи, які описані в збірці.
В результаті компіляції програмного коду в середовищі обчислень .NET створюється або збірка, або так званий модуль. При цьому збірка існує у формі виконуваного файлу (з розширенням EXE), або файлу динамічної бібліотеки (з розширенням DLL). Природно, до складу збірки входить маніфест. Модуль є файлом з розширенням NETMODULE. Він не містить маніфесту.
Приклад 1. Маніфест збірки
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
