Иллюстрированный самоучитель по Visual Basic .NET

Немного истории

Почти во всех материалах по .NET-программированию, публикуемых в журналах и Интернете, основное внимание уделяется web-службам, использованию браузера как платформы программирования, ASP.NET и другим темам, так или иначе связанным с Web. Многочисленные усовершенствования в области графического Windows-программирования на стороне клиента удостаиваются разве что кратких упоминаний. Как бы странно это ни звучало для продукта Microsoft, о программировании графических приложений в Visual Studio было сказано слишком мало хорошего; а ведь в этой области появились многие новшества, которых программисты VB ждали в течение нескольких лет!

Бесспорно, программирование на платформе браузера играет все более важную роль, но и традиционные клиентские Windows-приложения умирать не собираются. В этой главе мы попытаемся исправить это упущение и познакомим читателя с основными принципами программирования, необходимого для построения графических приложений в VB.NET.

Примечание
Visual Studio IDE в отличие от предыдущих версий VB в процессе работы генерирует программный код – и вы должны понимать этот код, чтобы извлечь максимум пользы из средств построения клиентских приложений в .NET
.

Мы не будем тратить время на пространные рассуждения о технологиях ускоренной разработки приложений (RAD, Rapid Application Development) в IDE [В VB.NET, как и в прежних версиях VB, поддерживается визуальное построение пользовательского интерфейса, а новые свойства (такие, как Anchor и Dock) значительно упрощают его разработку.] и на описания свойств, методов и событий различных элементов – для нормального изложения этого материала понадобилась бы книга вдвое большего объема. Вместо этого мы взглянем на происходящее с точки зрения программиста. Надеемся, читатель досконально разберется в том, как программируются графические приложения в .NET, и в дальнейшем сможет свободно пользоваться документацией или найдет дополнительную информацию в книгах, посвященных графическому программированию.

После общих сведений о формах и элементах мы познакомимся с общими принципами графического программирования в VB.NET. В этой области новый язык несколько отличается от прежних версий VB (например, из него исчезли знакомые функции-примитивы Сircle и Line). Далее рассматривается тема печати, которая в .NET представляет собой частный случай графического вывода. Хотя новые возможности печати неизмеримо шире тех, которые поддерживались в прежних версиях VB, знакомый объект Printer теперь не поддерживается, и поддержка печати в программах теперь требует дополнительных усилий.


Для работы с формами в прежних версиях VB использовался механизм Ruby Forms. Он представлял собой версию программы Ruby, написанной Аланом Купером (Alan Cooper); в результате объединения Ruby с QuickBasic появился VB1. Таким образом, разработка графических приложений в прежних версиях VB зависела от механизма форм, работа которого была практически полностью скрыта от программиста. Стартовая форма, словно по волшебству, появлялась на экране, а элементы размещались на форме программистом на стадии конструирования [В VB6 элементы могли добавляться и во время работы программы, но данная возможность почти не использовалась из-за крайне неудобного механизма перехвата событий в этих элементах.]. В программах С/С++ процесс ручного создания окон и элементов на формах был делом в лучшем случае непростым, и в этой области VB обладал несомненными преимуществами.

Впрочем, у этого волшебства была и оборотная сторона – механизм Ruby Forms был недостаточно гибким. Он плохо расширялся, и программисту приходилось мириться со всеми недочетами в его реализации. Возможности использования форм и элементов VB были ограничены; в любых нестандартных ситуациях программисту приходилось широко использовать функции API и перехватывать стандартные сообщения Windows в уродливых конструкциях с субклассированием [Некоторые пакеты независимых фирм (например, Desa ware Spy Works) упрощали процесс субклассирования, но задача все равно оставалась непростой.].

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.