![]() |
![]() |
Глава 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.
![]() |
![]() |