|
|||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||
|
Розділ 1. Введення
Хочеться вірити, що книга
стане в нагоді програмістам
з досвідом роботи на будь-яких мовах, але
даний розділ розрахований в основному
на програмістів Visual Basic. Останні
можуть відразу переходити до розділу 2 і
починати знайомство з неймовірно
могутнім інтегрованим середовищем
розробки (IDE), в основу якої
покладена перша по-справжньому
об'єктно-орієнтована мова
сімейства BASIC. Програміст,
звиклий працювати на Visual Basic, не
відразу повірить, що клопіт по
переходу на VB .NET будуть виправдані.
Саме тому і був написаний
даний розділ.
Visual Basic: минуле і сьогодення
Visual Basic для Windows
з'явився близько 10 років тому. Дебют
відбувся 20 березня 1991 року на
виставці «Windows World», хоча своїм
корінням він йде до програми Ruby,
написаної Аланом Купером (Alan Cooper) в
1988 році. Безперечно,
поява Visual Basic викликала
справжню сенсацію. Стів Гиб-сон (Steve
Gibson) в журналі «Infoworld» назвав Visual Basic
«приголомшливим новим дивом», яке
«радикально змінить підхід до
програмування для Microsoft Windows».
Чарльз Петцольд (Charles Petzold), автор
знаменитої книги, присвяченої
програмуванню для Windows на мові
З, написав в «New York Times»: «Visual Basic
представляє справжню загрозу для
благополуччя тих, хто заробляє
собі на життя, роз'яснюючи
програмістам складності
програмування для Windows» (навряд чи
до коментаря Петцольда варто
відноситися серйозно, оскільки з
того знаменного дня були
продані мільйони книг, присвячених
VB). Ще рішучіше висловився
Стюарт Елсоп (Stewart Alsop): він назвав Visual
Basic «ідеальним середовищем
програмування для 90-х років». Але 90-і роки
вже пройшли, тому нікого не
здивує той факт, що Visual Basic .NET
відрізняється від звичайного Visual Basic так само
сильно, як Visual Basic версії 1 відрізняється
від свого попередника Quickbasic.
Хоча з колишнього досвіду
використання Visual Basic можна винести
багато корисного, перехід на платформу
[ Microsoft серйозно відноситься до
цього слова. Зокрема, Windows теж
іменується платформою. ].NET і Visual Basic
.NET (скорочено VB .NET) супроводиться
такими ж грунтовними
змінами, як і перехід з Quickbasic
для DOS на Vb1 для Windows.
Перші дві версії Visual Basic
для Windows добре підходили для створення
прототипів програм і демонстраційних
застосувань — але
цим все і обмежувалося. У обох
версіях відмінне середовище програмування
поєднувалося з відносною
простотою мови. Сама
мова володіла відносно бідними можливостями.
З появою
Vb3 і нових засобів роботи
з базами даних, що вимагали
вивчення нової моделі програмування,
перша реакція нерідко
була такою, що
бентежить: «Навіщо вони
зіпсували VB?!» Зараз стає
зрозуміло, що включення підтримки
баз даних в Vb3 було необхідно,
щоб Visual Basic з «іграшкової мови»
перетворився на серйозний інструмент
програмування. У Vb4 з'явилися
базові можливості для створення
об'єктів, а отже —
базові засоби об'єктно-орієнтованого
програмування. У Vb5 і Vb6 об'єктно-орієнтовані
аспекти мови були розширені,
з'явилися нові можливості
створення елементів і використання
інтерфейсів. Проте сама мова
поступово втрачала цілісність,
оскільки об'єктно-орієнтовані
засоби будувалися на базовому
фундаменті, в якому їх підтримка
не передбачалася. Наприклад,
правильність створення об'єктів в
Visual Basic не гарантувалася —
програмістові доводилося
застосовувати особливі синтаксичні
конструкції замість конструкторів,
використовуваних практично у всіх
об'єктно-орієнтованих мовах (конструктори
розглядаються в розділі 4). У результаті
розробники VB прийшли до висновку, що
підтримка VB на платформі .NET
зажадає нових змін —
наприклад, використання .NET Framework
вимагає повноцінної об'єктної
орієнтації мови. Ймовірно, при
знайомстві із змінами VB
основні труднощі виникнуть не у
зв'язку з нововведеннями в середовищі IDE або
появою нових ключових слів, а
із-за необхідності радикального
перегляду парадигми
програмування на VB. Зокрема, щоб
повною мірою використовувати переваги Vb5
і Vb6, з об'єктно-базованого підходу, що
володів вельми обмеженими
можливостями створення
нових об'єктів, доводилося
переходити на об'єктно-орієнтований підхід,
в інструментарії якого,
наприклад, важливе місце займають
інтерфейси. На жаль, більшість
програмістів VB, що
виросли на цьому продукті, раніше
ніколи не використали принципи
об'єктно-орієнтованого
програмування. Коли в VB вперше
з'явилися класи, багато
програмістів VB поняття не мали,
що це таке і навіщо вони потрібні.
Але навіть
ці обмежені можливості, що з'явилися в Vb5
і Vb6, при правильному
застосуванні спрощували роботу над
великими проектами. Наприклад,
вони дозволяли створювати
компоненти багатократного використання (такі, як елементи
управління), а на прозаїчнішому
рівні — просто упорядковувати код,
спрощуючи його супровід. В
деяких випадках вдавалося
виключити оператора Sel ect Case,
що нерідко породжував великі
проблеми з супроводом. Мова
йде про конструкціях, більш
менш схожих на наступних: [ У
постачання VB .NET входить утиліта
перетворення програм, але не варто покладати
на неї надмірні надії. Жодна
серйозна програма не
перетвориться автоматично —
можливо, її буде простіше написати з
нуля. ] Select Case kindofemployee Case
Secretary Raisesalary 5% Case
Manager Raisesalary 10% Case
Programmer Raisesalary 15% Case
Architect Raisesalary 20 %
' і так далі End
Select Супровід
подібної коди був справою украй
неприємним, оскільки при кожному
додаванні нового типу співробітника (Employee)
доводилося змінювати всіх
відповідних операторів Select Case,
тоді як цю роботу можна було б
доручити компілятору. Починаючи з
Vb5 це нарешті стало можливим,
оскільки чарівництво поліморфізму
інтерфейсів (див. розділ 5)
дозволяло використовувати
конструкції вигляду: For Each
employee in Employees employee.RaiseSalary Next Компілятор
аналізував об'єкт і
автоматично вибирав потрібний метод
Rai sesal ary. "Класи помітно підвищують
ефективність і зручність
супроводу додатків VB.
Чи залишитеся ви з Vb5 або перейдете
на VB .NET — без класів важко
уявити собі серйозний
додаток VB.
|
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||