ах, написаних на С #, і навпаки, причому це не зажадає додаткових зусиль з боку програміста.
Наступне принципове нововведення - загальний формат виконуваного коду .NET, так званий Microsoft Intermediate Language (проміжна мова Microsoft), MSIL або просто IL Він являє собою частково відкомпільований код, преутворений в машинний код середовищем .NET під час виконання. Перед нами принципове вдосконалення схеми, що існувала у всіх версіях VB до версії 5. Раніше додатки VB компілювалися в Р-код (псевдокод, машинну мову абстрактної машини), свого роду проміжне представлення остаточного виконуваного коду. Механізм часу виконання інтерпретував Р-код при запуску програми користувачем. Користувачі постійно скаржилися на погане і просили Microsoft включити в VB підтримку компіляції в машинний код. Починаючи з версії 5 з'явилася можливість вибору між компактним Р-кодом і машинним (native) кодом, який займав більше місця, але теоретично швидше працював. У мовах .NET переваги Р-коду об'єдналися з перевагами компільованих мов. Спочатку програма, написана на будь-якій мові, компілюється в IL (віддалений аналог Р-коду), а потім отриманий IL-код перетвориться в машинний код. Подібна двокрокова схема відносно легко забезпечує міжмовну сумісність, а підсумкове використання машинного коду забезпечує гарну швидкодію.
2.4 Автоматична збірка сміття
У програмістів, що працюють на Visual Basic, завжди виникали проблеми з витоком пам'яті через так званих циклічних посилань (ситуація, при якій об'єкт А посилається на об'єкт В, а об'єкт В посилається на об'єкт А). Якщо поява циклічних посилань було обумовлено логікою програми, компілятор VB нерозпізнаних їх, в результаті чого пам'ять, займана цими об'єктами, що не звільнявась. Система збірки сміття, вбудована в .NET CLR, вирішує проблему циклічних посилань інакше - інтелектуальний алгоритм виявляє циклічні посилання, розриває їх і звільняє займану пам'ять, що істотно прискорює роботу програми, а так само зменшує розмір займаної ним пам'яті.
2.5 Структурна обробка помилок
У всіх версіях Visual Basic використовувався механізм обробки помилок, що з'явився в найпершій версії BASIC. У нього є недоліки. Використання в сучасній мові програмування команди: Error Goto Err
lt; оператор або оператори, що викликають помилки gt;
...: Case Error-Number57 Your printer may be off-line. 68 Is there a printer available?
lt; Інші секції Case gt;
Case Else
lt; Всі інші випадки gt; Select
неймовірно ускладнює логіку програми. У VB .NET реалізована структурна обробка помилок, найсучасніший і потужний механізм обробки помилок:
Try
lt; оператор або оператори викликають помилки gt;
Catch ex as Exception
lt; Перший обробник помилок gt; ex as Integer
lt; Другий обробник помилок gt;
End try,
що дає можливість обробки різних виняткових ситуацій і помилок.
2.6 Нить
visual basic інтерфейс сторінка
Багатопотокова програма виконує кілька функцій одночасно. Наприклад, у поштових клієнтів під час прийому нових повідомлень можна читати стару електронну пошту. Користувачі цінують подібні можливості, але в колишніх версіях VB написання багатопоточних додатків було дуже непростим завданням.
Багатозадачність в сучасних операційних системах сприймається як щось само собою зрозуміле. До появи Apple OS X на комп'ютерах Macintosh не було сучасних багатозадачних операційних систем. Правильно спроектувати операційну систему з повноцінною багатозадачністю дуже важко, тому за основу OS X довелося взяти систему Unix. Користувач розраховує на те, що при одночасному запуску текстового редактора і поштового клієнта ці програми не будуть конфліктувати, а при прийомі електронної пошти редактор не перестане працювати. При одночасному запуску кількох програм операційна система швидко перемикається між програмами, по черзі надаючи їм процесор (якщо, звичайно, на комп'ютері не встановлено кілька процесорів). У результаті створюється ілюзія одночасної роботи декількох програм, оскільки навіть краща друкарка (і найшвидше Інтернет-з'єднання) не угін за сучасним процесором.
Нить (multithreading) в якомусь сенсі можна розглядати як наступний рівень багатозадачності: замість того, щоб переключатися між різними програмами, операційна система перемикається між різними частинами однієї програми. Наприклад, багато-поштовий клієнт дозволяє приймати нові повідомлення електронної пошти під ча...