стема безпеки (безпека доступу до коду), пул потоків і багато інше. Крім того, CLR надає об'єктно-орієнтовану модель програмування, визначальну, як виглядають і поводяться типи і об'єкти. FCL надає об'єктно-орієнтована API-інтерфейс, використовуваний усіма моделями додатків. У ній містяться визначення типів, які дозволяють розробникам виконувати введення/висновок, планування завдань в інших потоках, створювати графічні образи, порівнювати рядки і т. п. Природно, що всі ці визначення типів відповідають існуючій моделі програмування в CLR. Нижче представлений список можливостей і переваг платформи NET:
- Повне і абсолютне міжмовне взаємодія. У. NET Framework.Поддержіваются міжмовне спадкування, міжмовна обробка виключень і міжмовна налагодження.
- Загальна середовище виконання для будь-яких додатків. NET, незалежно від того, на яких мовах вони були створені. Один з важливих моментів при цьому те, що для всіх мов використовується один і той же набір вбудованих типів даних [2].
- Єдина програмна модель. У відміну від існуючого підходу, коли одні функції операційної системи доступні через процедури динамічно підключаються бібліотек (DLL), а інші - через СОМ-об'єкти, весь прикладної сервіс представлений загальною об'єктно-орієнтованої програмної моделлю. p> - Спрощена модель програмування. Позбавляє від роботи з різними структурами, як це було з Win32 і СОМ. Так, розробнику не потрібно розбиратися з реєстром, глобальними унікальними ідентифікаторами (GUID), IUnknown, AddRef, Release, HRESULT і т. д.
- Відсутність проблем з версіями. Всі Windows-розробники знають про проблеми сумісності версій, відомих під назвою В«DLL hellВ». Ця проблема виникає, коли компоненти, що встановлюються для нового додатка, замінюють компоненти старого додатка, і в підсумку останнє починає поводитися дивно або перестає працювати. Архітектура. NET Framework дозволяє ізолювати прикладні компоненти, так що додаток завжди завантажує компоненти, з якими воно будувалося і тестувалося. Якщо програма працює після початкової установки, воно буде працювати завжди. p> - Спрощене розгортання. Раніше Windows-програми було дуже важко встановлювати і розгортати: зазвичай потрібно було створити масу файлів, параметрів реєстру та ярликів. До того ж повністю видалити додаток практично неможливо. З приходом NET Framework всі ці проблеми залишаються в минулому. Компоненти NET Framework не пов'язані з реєстром. Встановлення програм NET Framework зводиться лише до копіювання файлів в потрібні каталоги та створенню ярликів. Видалення ж додатків зводиться до видаленню файлів. p> - Робота на багатьох платформах. При компіляції коду для. 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. p> - Спрощене повторне використання коду. Всі описані вище механізми дозволяють створювати власні класи, надають сервіс стороннім додаткам. Тепер багаторазове використання коду стає винятково простим і створюється великий ринок готових компонентів (типів).
- Автоматичне управління пам'яттю (Збір сміття). Програмування вимагає великої майстерності і дисципліни, особливо коли мова йде про управління використанням ресурсів (файлів, пам'яті, простору екрану, мережевих з'єднань, ресурсів баз даних і інших). Одна з найпоширеніших помилок - недбале ставлення до звільнення цих ресурсів, що може призвести до некоректного виконання програми в непередбачуваний момент. CLR автоматично відстежує використання ресурсів, гарантуючи, що не відбудеться їх витоку.
- Перевірка безпеки типів CLR може перевіряти безпеку використання типів в коді, що гарантує коректне звернення до існуючих типів. Якщо вхідний параметр методу оголошений як 4-байтно...