Платформа Microsoft
Міністерство освіти Республіки Білорусь
"Білоукраїнський державний університет інформатики та радіоелектроніки"
Факультет комп'ютерного проектування
по предмету “Основи інформаційних технологій”
За минулі десятиліття було створено безліч технологій, покликаних полегшити створення архітектури та реалізацію вихідного коду додатків. Багато технологій передбачають абстрагування, яке дозволяє розробникам зосередитися на вирішенні предметних завдань, менше думаючи про особливості апаратного забезпечення та операційних систем.
Метою цієї роботи є дати короткий опис платформи Microsoft. NETF ramework, її структури та принципи роботи, показати її переваги та недоліки перед іншими існуючими технологіями, а також останні нововведення в платформу та перспективи її розвитку.
Платформа NETF ramework ставить за мету надати розробникам можливість створювати код будь-якою мовою на власний вибір. При цьому платформа забезпечує максимальну інтеграцію всіх компонентів, навіть якщо вони були написані різними мовами.
Єдина модель програмування, API-інтерфейс та мова програмування – великий крок уперед у галузі технологій абстрагування та величезна допомога розробникам у їхній роботі. Всі функції NETF ramework спрямовані на те, щоб залишити в минулому проблеми інтеграції, що значно спростило тестування, розгортання, адміністрування, керування версіями, повторне використання та переорієнтування коду на виконання інших завдань.
Огляд платформи Microsoft NETF ramework слід розпочати з огляду вже існуючих альтернативних технологій, покликаних полегшити створення архітектури тареалізацію вихідного коду додатків. Деякі приклади таких технологій:
Microsoft Foundation Class (MFC)– рівень абстрагування, що у мові C++ для програмування графічного інтерфейсу для операційних систем Windows. Використовуючи MFC, розробники можуть більше уваги приділити самій програмі і займатися циклами обробки повідомлень, віконними процедурами, класами вікон і т. п. [1].
JavaіJ2EE– повністю об'єктно-орієнтована, міжплатформна мова програмування та платформа на її основі для створення програм рівня підприємства. Програми на Java транслюються в байт-код, що виконується віртуальною машиною Java (JVM) – програмою, що обробляє байтовий код і передає інструкції обладнання як інтерпретатор, але з тією відмінністю, що байтовий код, на відміну тексту, обробляється значно швидше[2].
ActiveServerPages (ASP)– служить для абстрагування під час створення активних і динамічних Web-сайтів з допомогою VisualBasicScript чи JScript. Ця технологія дозволила розробникам абстрагуватися від особливостей мережевих взаємодій і більше приділяти уваги змісту Web-сторінок.
ActiveTemplateLibrary(ATL)– рівень абстрагування, що полегшує створення компонентів, які доступні для використання фахівцями, які працюють з різними мовами програмування.
Всі ці технології абстрагування створювалися, щоб розробники могли забути про технічні деталі і зосередитися на конкретних речах, будь то програми з графічним інтерфейсом користувача, Web-додатки або компоненти. Незважаючи на те, що ці технології значно полегшували роботу, вони вимагали від програміста освоюватимасу матеріалу. Також різні технології розроблялися без розрахунку спільне використання, і розробники стикалися з необхідністю вирішувати непрості проблеми интеграции[1].
На відміну від вищеописаних технологій, платформа NETF ramework має на меті надати розробникам можливість створювати код будь-якою мовою на власний вибір. При цьому платформа забезпечує максимальну інтеграцію всіх компонентів, навіть якщо вони були написані різними мовами.
Всі функції NETF ramework спрямовані на те, щоб залишити в минулому проблеми інтеграції, що значно спростило тестування, розгортання, адміністрування, керування версіями, повторне використання та переорієнтування коду на виконання інших завдань [3].
2.Описплатформи NET Framework
Під час проектування платформи Net Framework, компанія Microsoft врахувала недоліки існуючих Windows-платформ. CLR надає модель програмування, що використовується у всіх типах програм. CLR має власний завантажувач файлів, диспетчер пам'яті (збирач сміття), систему безпеки (безпека доступу до коду), пул потоків та багато іншого. Крім того, CLR надає об'єктно-орієнтовану модель програмування, що визначає, як виглядають і поводяться типи та об'єкти. FCL надає об'єктно-орієнтований API-інтерфейс, що використовується всіма моделями додатків. У ній містяться визначення типів, які дозволяють розробникам виконувати введення/виведення, планування завдань в інших потоках, створювати графічні образи, порівнювати рядки тощо. Природно, що всі ці визначення типів відповідаютьіснуючої моделі програмування в CLR. Нижче наведено список можливостей та переваг платформи NET:
- Повна та абсолютна міжмовна взаємодія. У .NET Framework.Підтримуються міжмовне успадкування, міжмовна обробка винятків та міжмовне налагодження.
- Загальне середовище виконання для будь-яких додатків .NET, незалежно від того, якими мовами вони були створені. Один з важливих моментів при цьому те, що для всіх мов використовується той самий набір вбудованих типів даних [2].
- єдина програмна модель. На відміну від існуючого підходу, коли одні функції операційної системи доступні через процедури бібліотек (DLL), що динамічно підключаються, а інші - через СОМ-об'єкти, весь прикладний сервіс представлений загальною об'єктно-орієнтованою програмною моделлю.
- Спрощена модель програмування. Позбавляє роботи з різними структурами, як це було з Win32 і СОМ. Так, розробнику не потрібно розбиратися з реєстром, глобальними унікальними ідентифікаторами (GUID), IUnknown, AddRef, Release, HRESULT тощо.
- Відсутність проблем із версіями. Всі розробники Windows знають про проблеми сумісності версій, відомих під назвою «DLL hell». Ця проблема виникає, коли компоненти, що встановлюються для нового додатка, замінюють компоненти старої програми, і в результаті останнє починає поводитися дивно або перестає працювати. Архітектура .NET Framework дозволяє ізолювати прикладні компоненти, так що програма завжди завантажує компоненти, з якими вона будувалася та тестувалася. Якщо програма працює після початкової установки, вона буде працювати завжди.
- Спрощене розгортання. Раніше Windows-програми було дуже важко встановлювати і розгортати: зазвичай потрібно було створити масуфайлів, параметрів реєстру та ярликів. До того ж, повністю видалити додаток практично неможливо. З приходом NET Framework усі ці проблеми залишаються у минулому. Компоненти NET Framework не пов'язані з реєстром. Установка програм NET Framework зводиться лише копіювання файлів у необхідні каталоги і створення ярликів. Видалення ж програм зводиться до видалення файлів.
- робота на багатьох платформах. При компіляції коду для .NET Framework компілятор генерує код загальною проміжною мовою (CommonItermediateLanguage, CIL), а не традиційний код, що складається з процесорних команд. При виконанні CIL транслюється команди процесора. Оскільки трансляція виконується під час виконання, генеруються команди конкретного процесора. Це означає, що можна розгортати свою програму NET Framework на будь-якій машині, де працює версія .NET Framework, що відповідає стандарту ЕСМА: з архітектурою х86, х64, IA64 і т.д.
- Інтеграція мов програмування. Технологія СОМ підтримує взаємодію різних мов – .NET Framework забезпечує інтеграцію різних мов, тобто одна мова може використовувати типи, створені іншими мовами. Наприклад, .NET Framework дозволяє створити C++ клас, похідний від класу, реалізованого на VisualBasic. У CLR це можливо через наявність загальної системи типів (Common Type System, CTS), яку мають використовувати всі мови, орієнтовані CLR. Загальномовна специфікація (Common Language Specification, CLS) визначає правила, які повинні дотримуватися розробники компіляторів, щоб їх мови інтегрувалися з іншими. Сама Microsoft пропонує кілька мов: C++/CLI (C++ з керованими розширеннями), С#, VisualBasic NET. Крім того, інші компанії та навчальні заклади створюють компілятори інших мов,сумісних із CLR.
- Спрощене повторне використання коду. Всі описані вище механізми дозволяють створювати власні класи, що надають сервіс іншим програмам. Тепер багаторазове використання коду стає виключно простим і створюється великий ринок готових компонентів (типів).
- Автоматичне керування пам'яттю (збір сміття). Програмування вимагає великої майстерності та дисципліни, особливо коли йдеться про управління використанням ресурсів (файлів, пам'яті, простору екрану, мережевих з'єднань, ресурсів баз даних та інших). Одна з найпоширеніших помилок – недбале ставлення до звільнення цих ресурсів, що може призвести до некоректного виконання програми у непередбачуваний момент. CLR автоматично відстежує використання ресурсів, гарантуючи, що не станеться їх витікання.