Головна »Статті по програмуванню». NET – Всі статті »

Не так давно
Microsoft в черговий раз змусила здригнутися
програмістів у всьому світі, оголосивши про початок нової ери розвитку мов
програмування. . NET Framework – ось те, що ми ще довго будемо
вивчати, те, що стане фундаментом для наших нових програм, то, що
буде хвилювати розуми кращих програмістів у наступні роки. З огляду на це,
Microsoft вирішила піти на другу у своїй
історії авантюру після створення Visual Basic і
представила нову мову програмування VB.NET.
Що ж таке VB.NET? Що буде з величезною
армією програмістів, які писали свої програми на мові
Visual Basic, витримала шість версій? Ось про
це ми і поговоримо в цій статті.

Історія створення Visual
Basic

Мова програмування
Basic був створений в 1964 році двома
професорами з Dartmouth College – Джоном
Кенема і Томасом Куртц для навчання студентів навичкам
програмування. Мова вийшов настільки простим і зрозумілим, що через
деякий час його почали застосовувати і в інших навчальних закладах. У
1975 році, з приходом перших мікрокомп'ютерів, естафету
Basic взяли Білл Гейтс і Пол Аллен,
засновники Microsoft. Саме вони створили нову
версію Basic для перших комп'ютерів «Альтаїр»
(MITS Altairs), здатну працювати в 4кБ
оперативної пам'яті. Згодом саме ця версія і перетворилася в один
з найбільш популярних мов програмування у світі.

На шляху до вершини слави у
Basic було безліч труднощів, які він
завжди з честю долав, і коли з'явилися перші персональні
комп'ютери IBM PC, саме він став стандартом у
програмуванні, але вже у вигляді GW-Basic.
Потім був Turbo Basic, QuickBasic, Basic PDS,
але завжди при розробці нової версії мови зберігалася сумісність з
колишніми версіями і програма, написана для практично першими
Basic, цілком (з незначними змінами)
могла б працювати і в наступних версіях цієї мови.

Але настали нові
часи, і на початку 90-х з'являється операційна система
Microsoft Windows з новим графічним
інтерфейсом користувача (GUI). Життя
програмістів перетворилося на пекло. Щоб створити просту програму,
доводилося писати кілька сторінок коду: створювати меню та вікна, міняти
шрифти, очищати пам'ять, «малювати» кнопки і т.д. Однак переваги
нового інтерфейсу були настільки незаперечні, що вже третя версія цієї
операційної системи стала фактичним стандартом для персонального
комп'ютера.

У цей час у надрах
Microsoft велося кілька паралельних
проектів зі створення нової мови програмування для
Windows.

І ось у травні 1991 року світ
побачив один з таких проектів – нова мова, названий
Visual Basic. Система програмування, створена розробниками
Visual Basic, дозволяла «відсторонитися» від
найскладнішої внутрішньої структури Windows і
створювати програми з «кубиків», як у дитячому конструкторі. Меню,
вікна, списки, кнопки, поля введення тексту та інші елементи інтерфейсу
Windows додавалися до програми за допомогою
найпростіших операцій drag & drop.
Свою першу програму VB-програмісти
створювали вже через кілька хвилин після початку вивчення цієї мови!
Більш того, Visual Basic дозволяв
розробникам створювати нові об'єкти-«кубики», які також могли
використовуватися в програмах нарівні зі стандартними.

І хоча багато
З-програмісти тихо посміювалися над спробами
Microsoft зробити простий і зрозумілий інструмент розробки
Windows-програм, Visual
Basic почав свій переможний хід по світу, і ніщо не могло
зупинити цей процес. Останні бар'єри впали в 1994 році з випуском
Visual Basic for Applications. Саме в цей
час, після включення VBA до складу
Microsoft Office, Basic
починає перетворюватися в один з основних стандартів програмування для
Windows.

Потім були нові версії,
які незмінно покращували і розширювали мову, приносячи з собою нові
можливості: OLE, DAO,
JET, 32-бітна архітектура і т.д. Останні
версії мови були настільки вдалими, що з їх допомогою можна було
створювати додатки практично будь-якої складності: підтримка
callback-функцій, справжній компілятор [1],
чудові засоби налагодження, підтримка бібліотеки
DirectX[2]
– Все це створювало враження непохитності позицій
Visual Basic на ринку малих програмних
продуктів.

Але настав 2000 рік. Саме
цього року Microsoft вперше оголосила про
плани щодо створення програмної платформи. NET,
яка, в кінцевому рахунку, і призвела до кончини Visual
Basic, а з ним і духу Basic, створеного
10 років тому.

Дух Basic –
подієво-кероване програмування

Коли створювався
Visual Basic, його розробники вибрали схему
роботи програм, засновану на подіях [3].
Саме ця схема дозволяє не знати про те, що відбувається за рамками
вашої програми, і як вона взаємодіє з операційною системою.
Саме ця схема і стала підсумку провідником до загальної популярності
VB.

Основа цієї системи –
відсутність взаємодії програміста безпосередньо з операційною
системою. Готові кубики-«компоненти» Visual Basic
генерують події у відповідь на дії користувача. Ця проста і
зрозуміла система призвела до того, що практично будь-який користувач міг
за лічені години її вивчити і почати створювати прикладні програми.
Але, на жаль, це був не об'єктно-орієнтована мова, і вже тоді було
зрозуміло, що настає час змін.

.NET Framework

13 лютого 2002,
упевнений, увійде в історію сучасного програмування як день створення
нової технології програмування, день перевороту у світі розробки
Windows-додатків. Саме в цей день на
конференції VSLive в Сан-Франциско компанія Microsoft представила
платформу. NET Framework і нову версію Visual Studio.

Важливість події
не можна недооцінювати. Visual Studio.NET – це не просто чергова версія
популярного пакету розробки додатків для Windows. «Visual
Studio.NET і. NET Framework відносяться до числа найважливіших продуктів,
коли-небудь випускалися Microsoft
, – Заявив Гейтс у своєму
виступі, – це самі розвинені засоби розробки за всю історію
існування Microsoft »
.

За своєю суттю. NET
Framework – це середовище виконання для додатків нового покоління,
яка може бути встановлена в будь-які версії Windows, починаючи з Windows
98 (Windows 95 офіційно більше не
підтримується), і забезпечує віртуальну систему виконання (Virtual
Execution System) для додатків, створених, наприклад, за допомогою
Visual Studio.NET.
Особливість додатків для. NET Framework полягає в тому, що це не
інструкції процесорів Intel, а інструкції для віртуальної машини на
мовою Microsoft Intermediate Language (MSIL).

Але це ми вже, здається,
проходили і в Visual Basic, і у віртуальній
машині Java, тому. NET Framework замість
інтерпретатора MSIL містить його JIT-компілятор. Цікаво, що
JIT-компілятор не виконує компіляцію всього MSIL-коду при першому
зверненні до програми. Замість цього кожен метод компілюється при
першому зверненні до нього, і, таким чином, невживаний код не
компілюється. Відкомпільований код зберігається в пам'яті, і наступні
звернення до програми виконують вже відкомпільований код. Тому, при
першому запуску. NET-програми помітна
деяка затримка, що досягає 3-4 секунд; це, мабуть, один з
найбільш істотних недоліків платформи. NET.
Проте Microsoft також надає спеціальний компілятор CLR Native
Image Generator (NGEN), який виконує компіляцію всього MSIL-коду та
зберігає результат на диску.

Формат виконуваних файлів
. NET Framework розширює специфікацію PE (Portable Executable), так що
на новій платформі будуть вже інші exe-і
dll-файли. Microsoft
також обіцяє, що середовище розробки Visual Studio.NET
завжди буде відкрита для сторонніх виробників інструментальних
коштів за допомогою технології Open Tools Platform [4].

Якщо ви вже бачили. NET
Framework, то напевно помітили, що це дуже велика бібліотека, з
допомогою якої можна створювати серйозні програми. Структура. NET
Framework зрозуміла і проста і, найголовніше, це дійсно повністю
об'єктно-орієнтована бібліотека. . NET Framework легка у вивченні,
найголовніше – зрозуміти її принципи і структуру. За задумом Microsoft,
через кілька років архітектура. NET ляже в основу більшості програм
для Windows, і в кінцевому рахунку повинна замінити собою інтерфейс
API, який, ймовірно, піде в минуле.

Оскільки. NET Framework –
повністю об'єктно-орієнтована платформа, а
Visual Basic ніколи не був таким, то перехід на нове
«Мислення» зажадав кардинальних змін мови, які, в кінцевому
підсумку, привели до відмови від глобальної сумісності [5]
з колишніми його версіями. Ці зміни настільки суттєві, що перед
нами постає зовсім нову мову програмування
Visual Basic .NET.

Зміни в Visual Basic.NET

Середовище розробки

Огляд змін
Basic почнемо, мабуть, з середи розробки.
Якщо чесно, то мені більше подобалася IDE 6-й
версії Visual Studio, але це, звичайно,
суб'єктивна точка зору. По-перше, відразу хочу порадувати всіх
шанувальників уніфікації і стандартизації, тому що всі мови
програмування з Visual Studio.NET,
мають одну загальну середовище розробки [6].
Це середовище, в принципі, має непогані засоби налагодження програм, хоча і
незвичні для VB-програмістів.

Основні труднощі – у
тому, що тепер проекти компілюються відразу при їх запуску, а не
спеціальної командою, як раніше, і для налагодження запускається створений
exe-файл. Звичайно, засоби налагодження дозволяють
вільно перемикатися між кодом і безпосередньо програмою, але
час, необхідний для запуску проекту, непристойно велика для
VB-програмістів, звиклих до миттєвого
запуску. Але це все дурниця в порівнянні з основними змінами,
відбулися в синтаксисі мови та її концепції.

Типи даних і
змінні

Мабуть, з часів
переходу на Visual Basic не було таких
глобальних змін в типах даних і роботі змінних.
VB.NET більше не підтримує ключове слово
Deftype у проектах, немає типів даних Variant і
Currency, з'явилися нові типи Char,
Short і Object (не
смійтеся, це дійсно новий тип). Більш того, тип даних
Integer тепер 4-х байтний (як був
Long), а тип даних Long
має розмір 8 байт. На практиці це означає, що якщо раніше при
оголошенні функцій API ви використовували тип
Long, то тепер потрібно використовувати
Integer. Навіщо це зроблено? Існують плани
(Вже й проекти) зі створення 64-х бітної операційної системи (тільки не
говорите, що ви нічого про це не чули), так от там дуже навіть
стане в нагоді новий Long. Аналогом старого
Integer стає новий тип даних
Short, а замість Variant
нам пропонують використовувати тип Object,
який тепер повністю переймає властивості старого
Variant. І останнє, в новій мові також відсутній ключове
слово Any, яке використовувалося при
оголошення типів даних і призначалося для відключення контролю типів.
Чесно кажучи, я розумію Microsoft і
підтримую ці зміни, які в майбутньому допоможуть нам при переході до
64-х бітної архітектури.

Крім вже вищеописаних
відмінностей, в VB.NET з'явилося кілька інших
незначних змін. Наприклад, якщо раніше при операціях з даними
типу Variant результат був більше, ніж міг
містить вихідний тип даних, то результат перетворювався до Double;
тепер при роботі з схожим типом Object такий
результат перетвориться до 64-bit Long.

Інші істотні зміни при роботі з
даними пов'язані зі змінами їх оголошення. Якщо раніше ви, оголошуючи
змінну так:

Dim
I, J As Integer

отримували
I – Variant, а
J – Integer, то
тепер обидві змінні будуть мати тип даних Integer.
Ну і, звичайно, якщо ви не вказуєте тип змінної, то вона буде мати
тип даних Object. Більше того, тепер при
оголошенні рядка ви не можете вказати її довжину, тобто всі рядки в
VB.NET мають змінну довжину. У принципі, до
цього все і йшло, тому що навіть у старому VB всі
строкові функції працювали тільки з рядками змінної довжини і
VB, непомітно для нас, сам виробляв
відповідні перетворення, природно жертвуючи при цьому швидкістю.

Ну і на закуску, ось ще кілька суттєвих
відмінностей в оголошенні та роботі змінних:

·       
змінні у функції і процедури по-замовчуванню передаються
за значенням (ByVal), а не по посиланню (ByRef),
як раніше;

·       
змінена область видимості змінних при оголошенні по
тексту програми. Якщо раніше, оголосивши змінну в тілі циклу
For, ви могли використовувати її і далі, то
тепер ця змінна буде недоступна поза цього циклу;

·       
індексація масивів змінена і тепер починається тільки з
0, оголошення Dim (10) ініціалізує масив з
11 елементами [7];

·       
при оголошенні змінної можна вказати не тільки Public,
Private, Static і
Friend, але і Protected, Protected Friend, а в
якості додаткового параметра – Shared,
Shadows і ReadOnly
(Подробиці читайте в документації);

·       
відсутність функції IsMissing
змушує при оголошенні необов'язкових (Optional)
параметрів відразу вказувати їх значення за замовчуванням … а як же
UDT!? До речі, тепер користувача тип
даних (UDT) оголошується за допомогою конструкції
Structure struct_name
… End Structure (раніше такі типи оголошувалися за допомогою
Type type_name … End Type).

Функції, оператори –
нова стратегія

Поглянувши на список функцій
і операторів нової мови, можна зробити один приємний висновок: вони
практично ті ж. Тобто більше 90% коштів мови VB
6 були перенесені в нову версію. Однак відмінності все ж є. Наприклад,
ви більше не знайдете функцій, що закінчуються на $ і
B, які повертали відповідно рядкові та двійкові дані.
Ні функцій Date, Time. Ви також не зможете
більше використовувати оператори Circle, Line і Pset, як немає і
On … GoSub, On … GoTo,
Initialize, скасовані за непотрібністю IsEmpty,
Let, Set і сімейство інструкцій Option
і Property [Get] [Let] [Set]. Змін багато,
але на перший погляд це все одно Basic з його
операторами, функціями та інструкціями, так що якщо ви добре знаєте
синтаксис VB 6, вважайте, що і синтаксис
VB.NET вам також добре знайомий, і
незначні зміни в ньому ніяк не псують загальне враження.

Форми? Ні,
Windows
Forms!

Visual Basic.NET використовує зовсім нові
форми – Windows Forms. Windows Forms практично сумісні з формами
Visual Basic 6, проте є деякі ключові відмінності:

·       
Windows Forms не підтримують елемент управління OLE
container control;

·       
Відсутні елементи управління Shape і Line;

·       
в Windows Forms є два елементи управління,
представляють меню – MainMenu і ContextMenu;

·       
Windows Forms не підтримує динамічний обмін даними
(DDE);

·       
Немає методу Form.PrintForm;

·       
в ієрархії. NET існує покращений об'єкт Clipboard
(System.WinForms.Clipboard), це передбачає більше функціональних
можливостей і більшу кількість підтримуваних форматів, ніж об'єкт
Clipboard в Visual Basic 6.0;

·       
в Windows Forms немає властивості Name у форм і контролів,
перебір всіх контролів (форм) для пошуку елемента з потрібним ім'ям
працювати не буде;

·       
Тепер потрібно використовувати pixel-і
замість twip-ів;

·       
Windows Forms підтримує лише шрифти truetype і
opentype.

Як бачите, відмінності дуже
істотні, і я навів лише основні з них. Взагалі ж, Windows Forms
дає набагато більше можливостей для програміста. Наприклад, раніше
найпростіша операція з додавання значка в systray
вимагала величезних зусиль, тепер це такий же дрібниця, як і для С + +
програміста, а може бути це навіть на VB.NET
зробити і легше. Прогнозоване розширення можливостей. NET
робить Windows Forms дуже привабливими. Хоча й вибору нам теж не
надали.

Я не хочу робити докладний
огляд всіх змін, введених в Windows Forms, та це й не потрібно,
проте, хочу вас відразу попередити, що автоматичне перетворення
старих форм (Form) не пройде.

Перетворення проектів VB 6

Microsoft, розуміючи що процес переходу до VB.NET
буде складним, створила спеціальний майстер, який полегшує перетворення
проектів. Я не буду описувати, як відбувається процес конвертації
проекту, так як по цій темі видані багатотомні книги, написано
безліч статей і, напевно, ви вже в курсі подій. Хочу тільки
сказати, що на практиці якісно перетворити можна лише класи,
тобто тільки безпосередньо код VB. Говорячи
іншими словами, ви не зможете за допомогою майстра перетворити 90% своїх
проектів, що містять форми (Form). Ні,
звичайно, якщо ви написали додаток з однією формою, двома кнопками на
ній і п'ятьма рядками коду, то майстер перетворення з великим
задоволенням, «похрюкав» хвилин п'ять диском, видасть вам новий проект,
який швидше за все, буде працездатний, але чи є у вас такі
програми? До речі, попереджаю, що результат такого перетворення,
швидше за все, приведе вас в стан глибокого шоку, так що якщо ви
хотіли таким чином попутно вивчити VB.NET,
то хочу вас засмутити – цього не станеться, вчитися доведеться по книгах і
читаючи документацію. Все, що виживає при подібній конвертації, так це
класи.

Чому ж майстер так погано
працює? Справа в тому, що перетворення неможливо зробити унаслідок
глобальної зміни структури форм (Form),
точніше кажучи, перенесення їх в Windows Forms з бібліотеки. NET Framework.
Таким чином, якщо у вас є програми, написані на
VB 6, то якісний перенесення їх в
VB.NET, за допомогою майстра неможливий. Однак,
ви можете зробити це вручну, і тоді ваша програма зможе
використовувати всю міць платформи. NET Framework.

Висновок

Microsoft в курсі спорів,
виникли навколо VB.NET в співтоваристві розробників на Visual Basic.
Намагаючись заспокоїти користувачів Visual Basic 6.0, стурбованих тим, що
з випуском Visual Studio їх звичному середовищі розробки прийшов кінець,
Microsoft, зовсім недавно, оголосила про намір підтримувати VB 6.0 до
2008 року. Проте після 2005 року ця підтримка буде обмеженою, і VB
6.0 ніколи не стане інструментом для роботи в 64-бітових середовищах.

«У VB.NET ми дещо
змінили, так що це, швидше, різні мови, – говорить менеджер Visual
Studio Роберт Грін (Robert Green), – Але ми впевнені, що відмінності в
синтаксисі цілком переборні ». За його словами, при переході від
обчислювальної моделі, орієнтованої на ПК, до веб-центричної моделі
. NET Microsoft опинилася перед складним вибором. Цей вибір вже зроблено, і
нам залишається тільки прийняти його. Проте Грін також зазначає, що
розробники повинні самі вирішувати, чи варто намагатися перенести
існуючі програми Visual Basic на VB.NET. «Чи можна перенести
додаток, написаний на VB 6.0? – Запитує Грін. – Якщо воно
працює, я б не став ».

Що я можу сказати? Особисто
я б хотів, щоб VB не змінювався, а розширювався.
Microsoft, на мій погляд, сильно погарячкувала,
хитнувши VB в бік ООП: поліморфізм,
успадкування і інкапсуляція, звичайно добре, але у
Visual Basic була своя концепція, яка була не така вже й погана,
як здається. Visual Basic спочатку був самим
простою мовою програмування, єдиним, мабуть, недоліком
якого була більш низька швидкість виконання програм, ніж у справжніх
компільованих мовах, наприклад C + +.

Мені завжди здавалося, що у
Microsoft щодо мов програмування є
ціла концепція, за якою у владу Visual Basic
віддавалися створення користувальницьких інтерфейсів і простих програм
створення програм і легкість їх налагодження, а для C + +
– Системне програмування, графіка, а також все, де неприпустимі
компроміси по швидкості виконання. Але я був неправий … Я вірив, що якщо
голова імперії Microsoft Білл Гейтс (Bill
Gates) називав Basic своїм улюбленою мовою
програмування, то нас не чіпатимуть, вони не посміють … але я помилявся … ах
як би я хотів, щоб все це був сон … страшний сон.

Але час іде, і поїзд під
назвою. NET відправився в шлях і він вже
під'їжджає до вашої станції. Але ще є час застрибнути у вагон
VB.Net – двері
відкрита, квитки ніхто не вимагає і провідник ще поки протягне вам
руку, … поспішайте, поїзд чекати не буде і він вже в дорозі.

 


[1] Хоча в
Visual Basic, починаючи з версії 5,
є компілятор коду, програми, написані на ньому, не
є самодостатніми і потребують для виконання спеціальну runtime-бібліотеку.

[2]
DirectX, починаючи з версії 6, має в
своєму складі спеціальну об'єктну бібліотеку, яка дозволяє
Visual Basic без проблем працювати з
мультимедіа. Крім того, деякі функції
DirectX були спеціально оптимізовані для використання
в Visual Basic.

[3] Детальніше про
події і Visual Basic читайте в
статті «Повідомлення Windows в
Visual Basic »у цьому номері
«Програміста".

[4] Вже зараз
багато компаній приступили до інтеграції своїх інструментів
розробки в Visual Studio.NET;
це Crystal Decisions, Rational Software та багато інших. Більше
того, Microsoft проводить спеціальну
програму Visual Studio.NET Integration Program по
залученню нових розробників.

[5] Не все так
погано, як стверджують деякі експерти. Насправді, ви
можете продовжувати використовувати свої ActiveX-компоненти
в VB.NET, крім того, нові версії
цих компонентів, написані вже на VB.NET,
будуть повністю сумісні з колишніми їх версіями, більше того,
класи, написані на VB 6,
практично без змін можуть бути перенесені в
VB.NET.

[6] Спеціально для
того, щоб скоротити час адаптації до нового середовища
програмування, її розробники передбачили можливість
використання «старих» клавіатурних скорочень з
VB 6, чого я б вам не рекомендував
використовувати, її можуть в такій версії і прибрати.

[7] Перша
beta версія VB.NET
в даному випадку створювала масив з 10 елементами, що мають
індекси від 0 до 9, що призводило до стану легкого шоку не
тільки «VB ветеранів», а й взагалі
всіх розсудливих програмістів, але, на щастя, здоровий глузд
узяв верх і все стало на свої місця.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*