- •Тема 1 Програмна технологія Microsoft .Net. Вступ
- •Загальна характеристика платформи .Net Framework
- •Єдине середовище виконання clr
- •Єдина система типів cts
- •Бібліотека базових типів bcl
- •Розбір найпростішої програми на мові с
- •Загальна структура програми на мові c#
- •Створення .Net-додатків з використанням csc.Exe
- •Створення .Net-додатків на мові c# з використанням ide Visual с# 2010 Express
- •Тема 2 Класи в c# Вступ
- •Синтаксис опису класу
- •Поля класу
- •Методи класу
- •Властивості та індексатори
- •Конструктори
- •Деструктор
- •Перевантаження операцій
- •Частинні випадки класу
- •Структура «Раціональне число»
- •Тема 3 Основні засоби розробки класів у c# Вступ
- •Успадкування
- •Поліморфне успадкування
- •Агрегація та композиція
- •Абстрактні класи
- •Інтерфейси
- •Тема 4 Узагальнення Поняття узагальнених класів
- •Обмеження (constraints) для параметрів типу
- •Узагальнені методи
- •Узагальнені інтерфейси
- •Недолік обмеження операцій
Загальна характеристика платформи .Net Framework
У 2002 році компанія Microsoft створила нову платформу розробки та виконання програм, яка одержала назву .NET Framework1. Це повністю об’єктно-орієнтована платформа, яка дозволяє використовувати вже наявні й створювати власні типи даних (в .NET під терміном “тип” розуміють: класи, структури, переліки та інші форми даних), забезпечує спільне використання різних мов програмування, безпеку та переносність програм. Ці та інші можливості платформи .NET Framework забезпечуються завдяки трьом ключовим складовим (компонентам): CLR, CTS та CLS.
Мал. 1. Структурна схема виконання .NET-додатку.
Єдине середовище виконання clr
До розробки платформи .NET додатки компілювались2 у команди конкретного процесора. Із використанням платформи .NET, усі створені додатки компілюються в команди спільної проміжної мови (байт-код або псевдокод , називаний Common Intermediate Language, скорочено CIL або MSIL3) і виконуються під керуванням CLR − основної ідеї (компоненту) технології .NET Framework. Це єдине середовище виконання (Common Language Runtime, звідси і скорочення CLR) для всіх додатків .NET, незалежно від мови, на якій вони написані, та програмно-апаратної платформи, на якій вони повинні виконуватися. У зв’язку із цим увесь код (програми, бібліотеки) був розділений на дві групи:
некерований (unmanaged) – який виконується під керуванням ОС (Windows);
керований (managed code) – виконуваний під керуванням CLR.
Для створення керованого коду можуть використовуватися будь-які .NET-cумісні мови (C#, VB.NET, MC++ і т.д.)
Основний механізм середовища CLR фізично має вигляд бібліотеки із назвою mscoree.dll та діє за наступним принципом (див. мал. 1).
Результатом компіляції програми на одній .NET-сумісних мов програмування, зокрема мови С#, є збірка (assembly) − програмна одиниця, що містить скомпільований код для .NET Framework. Кожна збірка крім MSIL-коду містить метадані (інструкції, які описують типи, визначені всередині збірки − класи, структури, інтерфейси, опис властивостей і методів). Крім цього у головному модулі збірки (такий буде у випадку, коли збірка складається із декількох керованих програмних одиниць) міститься інформація про всю збірку в цілому – версія, обмеження по безпеці, список зовнішніх збірок, необхідних для запуску даної і т.д. (цей розділ називається маніфестом). У такий спосіб кожне збірка описує саму себе.
Сама CLR складається із двох основних компонентів:
ядро (фізично це файл mscoree.dll)
бібліотека базових класів (mscorlib.dll) – містить уже готові до використання типи, що описують дуже широку предметну область. При запуску якого-небудь .NET-додатку в оперативну пам’ять автоматично завантажується, якщо воно не було завантажено до цього, ядро платформи. Після цього процес керування додатком повністю передається ядру. Ядро керує процесом завантаження збірки у пам’ять у відповідності до відомостей маніфесту, а також процесом завантаження інших збірок, необхідних для роботи даної.
Після того як збірка завантажена, починається виконання однієї з основних задач CLR − трансляція проміжного коду у платформо-залежний машинний код по мірі виконання програми. Це реалізується за допомогою JIT-компілятора (Just-in-time compilation, компіляція «на льоту», компіляція за вимогою). Процес трансляції коду відбувається в такий спосіб. При виконанні програми середовище CLR активізує JIT-компілятор, який транслює псевдокод MSIL у машинний код за вимогою для кожної частини програми. Відкомпільовані таким чином збірки завантажуються у кеш та при повторному зверненні будуть викликатися звідти, тобто повторна компіляція не потрібна.
