Net Framework, Ivan Andreev - s Blog

Game Development using XNA, MonoGame і Unity3D Blog

.Net Framework

Платформа .NET Framework – це один із компонентів системи Windows. Він дозволяє створювати та використовувати додатки нового покоління. Призначення платформи .NET Framework:

Платформа .NET Framework і двох основних компонентів: середовища CLR і бібліотеки класів .NET Framework. Середовище CLR - це фундамент платформи .NET Framework. Це своєрідний агент, що керує кодом під час його виконання, надає ключові служби, пов'язані з такими процесами, як управління пам'яттю, потоками та віддаленими операціями, а також забезпечує безпеку типів та іншими способами контролює правильність коду, гарантуючи безпеку та стабільність додатків. Поняття управління кодом є основним середовищем. Код, створений для середовища, називається керованим. Будь-який інший код називається некерованим кодом. Бібліотека класів, другий основний компонент платформи. веб-форм та веб-служб XML.

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

Розглянемо, наприклад, такуСитуацію: платформа ASP.NET надає масштабоване середовище для керованого коду на стороні сервера. ASP.NET безпосередньо взаємодіє із середовищем, забезпечуючи роботу додатків ASP.NET та веб-служб XML (мова про них піде нижче).

браузер Internet Explorer є прикладом некерованого додатка, в якому розташовується середовище (у вигляді розширення типу MIME). Розміщення середовища в браузері Internet Explorer дозволяє вбудовувати керовані компоненти та елементи керування Windows Forms у документи HTML. Таке розміщення середовища робить можливим використання керованого мобільного коду (схожого з елементами управління Microsoft ActiveX®), надаючи при цьому розширені можливості, характерні виключно для керованого коду, наприклад виконання при частковій довірі або ізольоване зберігання файлів.

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

ivan

Рис 1. .Net Framework

У наступних розділах докладно розглядаються основні компоненти та можливості платформи .NET Framework.

Функції середовища CLR

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

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

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

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

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

Окрім іншого, середовище CLR підвищує ефективність розробки. Незалежно від того, якою мовою програміст пише додаток, він повною мірою може використовувати всі функції середовища CLR, бібліотеку класів та компоненти, написані іншими розробниками іншими мовами програмування. Якщо постачальник вирішить створити компілятор додатків для середовища CLR, він може це зробити. Подібний компілятор дозволяє використовувати функції платформи .NET Framework у коді,написаного відповідною мовою, завдяки чому значно спрощується процес міграції готових додатків.

Середовище розроблялося для додатків нового покоління, проте воно чудово підтримує існуюче програмне забезпечення. Сумісність керованого та некерованого коду дозволяє розробникам не відмовлятися від необхідних компонентів COM та бібліотек DLL.

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

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

Бібліотека класів NET Framework

Бібліотека класів .NET Framework – це набір стандартних типів, що тісно пов'язані з середовищем CLR. Бібліотека класів є об'єктно-орієнтованою. У ній містяться типи, виходячи з яких ваш керований код може виводити потрібні функції. Це не тільки забезпечує простоту використання типів у .NET Framework, але й скорочує кількість часу, потрібну для вивчення нових можливостей платформи. Крім того, компоненти сторонніх розробників можуть повністю інтегруватися до бібліотеки класів .NET.Framework[7].

Наприклад, класи колекцій у .NET Framework дозволяють реалізувати ряд інтерфейсів, які ви можете використовувати для створення власних класів. Класи колекцій, які ви створите, будуть інтегровані в набір класів .NET Framework.

Оскільки бібліотека класів є об'єктно-орієнтованою, типи в .NET Framework дозволяють виконувати ряд стандартних операцій програмування: керування рядками, збирання даних, підключення до баз даних, доступ до файлів. У бібліотеці також є типи, що підтримують різноманітні спеціалізовані ситуації, з якими ви стикаєтеся при розробці додатків. Платформу .NET Framework можна використовувати для створення наступних програм та служб:

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

Крім того, творці С# хотіли приховати від розробника якомога більше незначних технічних деталей, включаючи операції з пакування/розпакування типів, ініціалізації змінних та складання сміття. Завдяки цьому програміст, що пише на C#, може краще сконцентруватися на змістовній частині завдання. У процесі вирішення цього завдання проектувальники C# намагалися врахувати уроки реалізації Visual Basic'а, який досить успішний у прихованні деталей реалізації, але недостатньо ефективний для написання великих промислових систем: творці C# декларують, що нова мова має потужність С++ і водночасчас простотою Visual Basic'а.

Ще одна перевага створення нової мови програмування в порівнянні з розширенням існуючих полягає в тому, що при створенні нової мови немає необхідності дбати про проблеми зворотної сумісності, які зазвичай помітно ускладнюють виправлення застарілих проблем і навіть внесення нових властивостей до стандарту мови (докладний опис труднощів, що виникають при розширенні старої мови програмування, можна прочитати у книзі Б. Страуструпа «Дизайн та еволюція мови С++», М.: ДМК, 2000).

Таким чином, C# є новою мовою програмування, орієнтована на розробку для платформи .NET і придатна як для швидкого прототипування додатків, так і для розробки великомасштабних додатків.

Багато існуючих мов програмування мають дуже заплутаний синтаксис і конструкції з неочевидною семантикою — досить згадати надперевантажену значеннями відкриваючу фігурну дужку в С++, використання ключових слів як ідентифікаторів в PL/I або проблеми відмінності описувачів видів від операцій в Алголі 68. особливості ускладнюють написання компіляторів і є джерелом труднознаходимых помилок під час створення програм. На іншому полюсі цієї проблеми знаходиться мова Паскаль, в якій з метою спрощення було вирішено пожертвувати навіть очевидно зручними для програміста властивостями.

C# займає деяку проміжну позицію: зі стандарту мови прибрано найбільш неприємні та неоднозначні особливості С++, але в той же час мова зберегла потужні виразні можливості, притаманні для таких мов, як С++, Java або VB.

ASP (англ. Active Server Pages — «активні серверні сторінки») — технологія від Microsoft, що дозволяє легко розробляти програми дляWorld Wide Web. ASP працює на платформі операційних систем лінії Windows NT та на веб-сервері IIS. ASP не є мовою програмування – це лише технологія попередньої обробки, що дозволяє підключати програмні модулі під час формування Web-сторінки. Відносна популярність ASP полягає в простоті використовуваних мов сценаріїв (VBScript чи JScript) і можливості використання зовнішніх COM-компонент[7].

ASP.NET — це технологія створення веб-застосунків та веб-сервісів від компанії Майкрософт. Вона є складовою платформи Microsoft .NET та розвитком більш старої технології Microsoft ASP. На даний момент останньою версією цієї технології є ASP.NET 2.0. ASP.NET зовні багато в чому зберігає схожість з старішою технологією ASP, що дозволяє розробникам відносно легко перейти на ASP.NET. В той же час внутрішній пристрій ASP.NET істотно відрізняється від ASP, оскільки вона заснована на платформі .NET і, отже, використовує нові можливості, що надаються цією платформою. Хоча ASP.NET бере свою назву від старої технології Microsoft, ASP, вона значно від неї відрізняється. Microsoft повністю перебудувала ASP.NET, ґрунтуючись на Common Language Runtime (CLR), який є основою всіх програм Microsoft.NET. Програмісти можуть писати код для ASP.NET, використовуючи різні мови програмування, які підтримуються в .NET Framework, зазвичай Visual Basic.NET, JScript .NET або C#, а також «відкриті» мови, наприклад Perl і Python. ASP.NET має перевагу в швидкості в порівнянні з іншими технологіями, що базуються на скриптах, тому що код на стороні веб-сервера зазвичай компілюється в одну або кілька DLL.

Переваги ASP.NET перед ASP:

• Код, що компілюється, виконується швидше,більшість помилок відловлюється ще на стадії розробки

• Значно покращена обробка помилок часу виконання

• Користувальницькі елементи керування дозволяють виділяти шаблони, що часто використовуються, такі як меню сайту

• Використання метафор, які вже використовуються у Windows-додатках, наприклад, таких як елементи керування та події

• Розширюваний набір елементів керування та бібліотек класів дозволяє швидше розробляти програми

• ASP.NET спирається багатомовні можливості .NET, що дозволяє писати код сторінок на VB.NET, C++, J# тощо.

• Можливість кешування всієї сторінки або її частини для збільшення продуктивності

• Можливість поділу візуальної частини та бізнес логіки по різних файлах