Visual Basic (VB) до .NET , иногда называемый Classic Visual Basic , [1] — это язык программирования третьего поколения , основанный на BASIC и интегрированной среде разработки (IDE) от Microsoft для Windows , известный своей поддержкой быстрого применения. разработка (RAD) приложений с графическим интерфейсом пользователя (GUI), событийно-ориентированное программирование , а также потребление и разработка компонентов с помощью технологии объектной модели компонентов (COM).
VB был впервые выпущен в 1991 году. Последней версией стала версия 6 (VB6) в 1998 году. 8 апреля 2008 года Microsoft прекратила поддержку VB6 IDE, переведя ее в категорию устаревших . Команда Microsoft VB по-прежнему поддерживает совместимость приложений VB6 с помощью своей программы «It Just Works» в поддерживаемых операционных системах Windows. [2]
Microsoft существенно изменила VB на технологию .NET и переименовала его в Visual Basic .NET (VB.NET), а затем снова переименовала его в Visual Basic . Таким образом, Visual Basic может относиться к классической версии, версии .NET или к обеим. Эта статья посвящена версиям до .NET.
Первоначально предполагалось, что BASIC будет простым в освоении, и Microsoft намеревалась сделать то же самое для VB. [3] [4]
Разработка приложения VB поддерживается исключительно через интегрированную среду разработки VB (IDE) — приложение из набора инструментов Visual Studio той эпохи. В отличие от современных версий Visual Studio , которые поддерживают множество языков, включая VB (.NET), VB IDE поддерживает только VB.
В 2014 году некоторые разработчики программного обеспечения по-прежнему предпочитали Visual Basic 6.0 его преемнику Visual Basic .NET . [5] Visual Basic 6.0 был выбран самым опасным языком программирования респондентами ежегодного опроса разработчиков Stack Overflow в 2016, 2017 и 2018 годах. [6] [7] [8]
Как и предполагалось в старых вариантах BASIC , VB должен был иметь низкую кривую обучения . Кроме того, IDE была предназначена для повышения производительности; даже для сложных приложений с графическим интерфейсом . Программирование включает в себя визуальное расположение компонентов или элементов управления в форме , определение атрибутов и действий для этих компонентов и написание кода для управления поведением. Поскольку компоненты имеют атрибуты и действия по умолчанию, программист может разработать простую программу, не написав большого количества кода.
Программы, созданные с использованием более ранних версий, имели проблемы с производительностью, но более быстрые компьютеры и компиляция собственного кода сделали эту проблему менее серьезной.
Поскольку программа VB компилируется как исполняемый файл собственного кода , а не интерпретируется как старые варианты BASIC, она работает относительно быстро и требует относительно мало места для хранения. Но, начиная с версии 5, во время выполнения требуется загрузка относительно больших библиотечных файлов; около 1 МБ. Основные библиотеки времени выполнения включены по умолчанию в Windows 2000 и более поздние версии, но расширенные компоненты времени выполнения требуют дополнительного внимания при установке. Более ранние версии Microsoft Windows (95/98/NT) требуют, чтобы библиотеки времени выполнения распространялись вместе с исполняемым файлом.
Формы создаются с использованием методов перетаскивания . Инструмент используется для размещения элементов управления (например, текстовых полей, кнопок и т. д.) в форме (окне). Элементы управления имеют связанные с ними атрибуты и обработчики событий . Значения по умолчанию предоставляются при создании элемента управления, но могут быть изменены программистом. Многие значения атрибутов могут быть изменены во время выполнения в зависимости от действий пользователя или изменений в среде, обеспечивая динамическое приложение. Например, в обработчик событий изменения размера формы можно вставить код, чтобы изменить положение элемента управления так, чтобы он оставался в центре формы, расширялся для заполнения формы и т. д. Вставляя код в обработчик событий для нажатия клавиши в текстовом поле, программа может автоматически переводить регистр вводимого текста или даже запрещать вставку определенных символов.
Разработка в IDE организована как проект , который можно настроить для вывода в виде программы ( EXE ), библиотеки динамической компоновки (DLL) или библиотеки управления ActiveX (OCX), которая является специализированной DLL.
Элементы управления обеспечивают графическую функциональность приложения с графическим интерфейсом, а программисты присоединяют код к обработчикам событий для выполнения действий. Например, раскрывающийся элемент управления отображает список элементов. Когда пользователь выбирает элемент, автоматически вызывается обработчик событий, который выполняет код, прикрепленный к обработчику программистом.
Для DLL код VB обычно не предоставляет пользовательский интерфейс, а вместо этого предоставляет COM-объекты другим программам. Это позволяет использовать такие возможности, как обработка на стороне сервера или дополнительный модуль.
С помощью технологии COM неиспользуемая память восстанавливается для повторного использования с помощью подсчета ссылок ; восстанавливается, когда счет достигает нуля. VB уменьшает счетчик, когда переменная выходит за пределы области видимости или присваивается ей Nothing
. Такая конструкция предотвращает утечки памяти , от которых страдают некоторые старые языки, такие как C и C++. Он существенно отличается от более современного подхода к сбору мусора .
VB предоставляет большую библиотеку служебных объектов и обеспечивает базовую поддержку объектно-ориентированного программирования .
В отличие от многих других языков программирования, код VB не чувствителен к регистру , хотя IDE преобразует ключевые слова в стандартный регистр, а имена переменных соответствуют регистру, используемому в других частях проекта. Следует отметить, что сравнение строк по умолчанию чувствительно к регистру.
Компилятор VB используется совместно с другими языками пакета Visual Studio, C и C++. Тем не менее, по умолчанию ограничения в IDE не позволяют создавать некоторые целевые объекты (DLL модели Windows) и модели потоков, но с годами разработчики обходили эти ограничения.
Visual Basic имеет примечательные функции и характеристики, которые в некоторых случаях отличаются от других вариантов BASIC или от других распространенных языков:
' This is a comment
A = B = C
, не приводит к равенству значений A, B и C. Логический результат «равен ли B C? » хранится в АTrue
имеет числовое значение -1. VB хранит логическое значение как целое число со знаком, дополненное до двух , где все единицы находятся в двоичном формате для истинного значения и нуля для ложного. Это очевидно при выполнении (побитовой) Not
операции над значением дополнения до двух 0, которая возвращает значение дополнения до двух, другими словами True = Not False
. Эта встроенная функциональность становится особенно полезной при выполнении логических операций над отдельными битами целого числа, такими как And
, и . [17] Это определение также согласуется с BASIC, начиная с реализации Microsoft BASIC в начале 1970-х годов, а также связано с характеристиками инструкций ЦП того времени.Or
Xor
Not
True
Option Base
оператор можно использовать для установки нижней границы по умолчанию, но некоторые утверждают, что его использование приводит к путанице при чтении кода, и его лучше избегать, всегда явно указывая нижнюю границу. Эта необычная особенность языка существует в Visual Basic .NET, но не в VBScript .OPTION BASE
был представлен ANSI вместе со стандартом ANSI Minimal BASIC в конце 1970-х годов.Round
функции. [18] ? Round(2.5, 0)
дает 2, ? Round(3.5, 0)
дает 4./
), так что деление одного целого числа на другое дает результат, который может показаться более интуитивным с математической точки зрения. VB предоставляет оператор целочисленного деления ( \
), который выполняет усечение.variant
. Однако это можно изменить с помощью операторов Deftype, таких как DefInt
, DefBool
, DefVar
, DefObj
, DefStr
. Deftype
Всего Visual Basic 6.0 предлагает 12 операторов. Тип по умолчанию можно переопределить для конкретного объявления, используя специальный суффиксный символ в имени переменной ( #
для Double, !
для Single, &
для Long, %
для Integer, $
для String и @
для Currency) или с помощью ключевой фразы As (type)
. VB можно настроить так, чтобы он требовал объявления переменных через Option Explicit
.Visual Basic 1.0 был представлен в 1991 году. Конструкция перетаскивания для создания пользовательского интерфейса заимствована из прототипа генератора форм, разработанного Аланом Купером и его компанией под названием Tripod . [19] [20] [21] Microsoft заключила контракт с Купером и его коллегами на разработку Tripod в систему программируемых форм для Windows 3.0 под кодовым названием Ruby (никакого отношения к более позднему языку программирования Ruby ). В штативе вообще не было языка программирования. Microsoft решила объединить Ruby с языком Basic для создания Visual Basic. Генератор интерфейса Ruby обеспечивал «визуальную» часть Visual Basic, и это было объединено с механизмом Embedded BASIC «EB», разработанным для заброшенной системы баз данных Microsoft «Omega». Ruby также предоставил возможность загружать динамически подключаемые библиотеки, содержащие дополнительные элементы управления (тогда называемые «штуками»), которые позже стали интерфейсом VBX . [22]
Microsoft разработала множество производных VB (классического), в том числе:
Версии до 5 компилировали код в P-Code , который интерпретируется во время выполнения. Преимущества P-Code включают переносимость и меньший размер двоичных файлов, но обычно он замедляет выполнение, поскольку интерпретатор добавляет уровень в среду выполнения. Приложениям VB требуется среда выполнения Microsoft VB MSVBVM##.DLL, где ## — номер версии, 50 или 60. MSVBVM60.dll входит в стандартную комплектацию Windows во всех выпусках, от Windows 98 до Windows 11, хотя некоторые выпуски Windows 7 этого не делают. включите его. Однако в Windows 95 для процесса установки приложения требуется DLL, необходимая программе. VB 5 и 6 могут компилировать код либо в собственный код, либо в P-Code, но среда выполнения по-прежнему требуется для встроенных функций и управления формами.
Критика VB (до VB.NET) включает: [31]
Все версии Visual Basic IDE, от 1.0 до 6.0, больше не поддерживаются Microsoft. Соответствующие среды выполнения также не поддерживаются, за исключением основной среды выполнения Visual Basic 6, которую Microsoft официально поддерживает на протяжении всего срока службы Windows 10 [34] и Windows 11 . [35] Компоненты сторонних производителей, поставляемые с Visual Studio 6.0, не включены в данное заявление о поддержке. Некоторые устаревшие компоненты Visual Basic могут по-прежнему работать на новых платформах, несмотря на то, что они не поддерживаются Microsoft и другими поставщиками. Документация по Visual Basic 6.0, его интерфейсу прикладного программирования и инструментам лучше всего представлена в последнем выпуске MSDN , предшествовавшем Visual Studio.NET 2002. Более поздние выпуски MSDN были ориентированы на разработку .NET, и значительная часть документации по программированию Visual Basic 6.0 была удалена как язык развивался, и поддержка старого кода прекратилась. Хотя поддержка Visual Basic 6 прекращена поставщиками и продукт никогда не поддерживался в последних версиях Windows, ключевые части среды по-прежнему работают на новых платформах. Можно получить подмножество среды разработки, работающее на 32-битных и 64-битных версиях Windows Vista, Windows 7, Windows 8, Windows 10 и Windows 11. [36] Благодаря своей постоянной популярности, [37] Существуют сторонние попытки его дальнейшей поддержки, такие как Rubberduck. [38]
Следующий фрагмент кода отображает окно сообщения с надписью «Hello, World!» при загрузке окна:
Private Sub Form_Load () ' Выполняет простое окно сообщения с надписью «Hello, World!» MsgBox «Привет, мир!» Конец субтитра
Этот фрагмент создает счетчик, который перемещается вверх на 1 каждую секунду (чтобы это работало, в форму необходимо добавить метку и элемент управления таймером), пока форма не будет закрыта или не произойдет целочисленное переполнение :
Option Explicit Dim Count As Integer Private Sub Form_Load () Count = 0 Timer1 . Интервал = 1000 'единиц миллисекунд End Sub Private Sub Timer1_Timer () Count = Count + 1 Label1 . Заголовок = Конец отсчета
Вы можете выбрать язык, основываясь на том, насколько легко его выучить. Для новичков Visual Basic — хороший выбор. [~snip] Большим преимуществом Visual Basic является то, что это популярный язык, поскольку его легко выучить.
Краткое изложение положительных моментов: Visual Basic прост в освоении и широко доступен.
{{cite web}}
: CS1 maint: постскриптум ( ссылка )Купер... получил признание в отрасли как «Отец Visual Basic». (Юристы Microsoft однажды направили Куперу приказ о прекращении противоправных действий, требуя, чтобы он прекратил использовать этот титул. Но после того, как Купер пожаловался, Гейтс исправил ситуацию и даже похвалил его как «пионера Windows» на отраслевой конференции.)
RAD Basic — не единственная игра в городе. Альтернативы на разных стадиях разработки включают TwinBASIC, который также стремится обеспечить обратную совместимость с VB6 и VBA; и FreeBASIC, который реализует многое из того, что было в Microsoft QuickBASIC (и имеет изящную IDE в виде VisualFBEditor).