Введение
Объектно-ориентированный язык программирования, современный язык программирования для .NET.
the modern programming language for NET
Visual Basic (VB), первоначально называемый Visual Basic .NET (VB .NET), — это многопарадигмальный объектно-ориентированный язык программирования, реализованный на .NET, Mono и .NET Framework. Microsoft представила VB .NET в 2002 году как преемника оригинального языка Visual Basic, последней версией которого был Visual Basic 6.0. Хотя часть ".NET" была исключена из названия в 2005 году, в этой статье используется обозначение "Visual Basic [.NET]" для всех языков Visual Basic, выпущенных после 2002 года, чтобы отличать их от классического Visual Basic. Вместе с C# и F# он является одним из трех основных языков, предназначенных для экосистемы .NET. 6 февраля 2023 года Microsoft обновила свою стратегию развития языка VB, заявив, что VB теперь является стабильным языком и Microsoft продолжит его поддерживать. Интегрированная среда разработки (IDE) Microsoft для разработки на Visual Basic — Visual Studio. Большинство редакций Visual Studio являются коммерческими, исключениями являются Visual Studio Express и Visual Studio Community, которые распространяются бесплатно. Кроме того, в состав .NET Framework SDK входит бесплатный компилятор командной строки vbc.exe. Mono также включает в себя компилятор VB .NET для командной строки. Visual Basic часто используется совместно с библиотекой графического интерфейса Windows Forms для создания настольных приложений для Windows. Программирование для Windows Forms с использованием Visual Basic включает перетаскивание элементов управления на форму с помощью конструктора графического интерфейса и написание соответствующего кода для каждого элемента управления.
Использование при создании графических пользовательских интерфейсов
Библиотека Windows Forms наиболее часто используется для создания графических пользовательских интерфейсов в Visual Basic. Все визуальные элементы в библиотеке классов Windows Forms наследуются от класса Control. Это обеспечивает базовую функциональность элемента пользовательского интерфейса, такую как положение, размер, цвет, шрифт, текст, а также общие события, такие как щелчок и перетаскивание. Класс Control также поддерживает привязку, позволяющую элементу управления изменять свое положение относительно родительского элемента. Формы обычно разрабатываются в интегрированной среде разработки Visual Studio. В Visual Studio формы создаются с использованием технологии перетаскивания. Инструмент позволяет размещать элементы управления (например, текстовые поля, кнопки и т. д.) на форме (окне). Элементы управления имеют атрибуты и связанные с ними обработчики событий. При создании элемента управления предоставляются значения по умолчанию, которые могут быть изменены программистом. Многие значения атрибутов можно изменять во время выполнения на основе действий пользователя или изменений в окружении, что обеспечивает динамичность приложения. Например, код можно вставить в обработчик события изменения размера формы, чтобы переместить элемент управления так, чтобы он оставался центрированным, или чтобы он расширялся и заполнял форму. Вставляя код в обработчик события нажатия клавиши в текстовом поле, программа может автоматически изменять регистр вводимого текста или даже предотвращать ввод определенных символов.
Сравнение с классическим Visual Basic
Следует ли считать Visual Basic NET просто очередной версией Visual Basic или совершенно другим языком – вопрос для обсуждения. Появились новые возможности для поддержки новых функций, таких как структурированная обработка исключений и выражения с коротким замыканием. Кроме того, с переходом на VB.NET произошло два важных изменения в типах данных: по сравнению с Visual Basic 6, тип данных Integer увеличился вдвое с 16 до 32 бит, а тип данных Long – с 32 до 64 бит. Это справедливо для всех версий VB.NET. 16-битное целое число во всех версиях VB.NET теперь известно как Short. Аналогично, редактор Windows Forms очень похож по стилю и функциональности на редактор форм Visual Basic. Существенно изменилась семантика – от объектно-ориентированного языка программирования, работающего на детерминированном движке с подсчетом ссылок на основе COM, до полностью объектно-ориентированного языка, поддерживаемого .NET Framework, который состоит из комбинации Common Language Runtime (виртуальной машины, использующей генерационную сборку мусора и JIT-компилятор) и гораздо более обширной библиотеки классов. Большая широта последней также представляет собой проблему, с которой разработчикам VB приходится сталкиваться при переходе на язык, хотя функция My в Visual Studio 2005 частично решает эту проблему. Изменения повлияли на многие базовые предположения о том, как правильно обеспечивать производительность и поддерживаемость. Некоторые функции и библиотеки больше не существуют, другие доступны, но менее эффективны, чем их нативные аналоги в .NET. Даже если они компилируются, большинству преобразованных приложений Visual Basic 6 потребуется определенный уровень рефакторинга, чтобы в полной мере использовать возможности нового языка. Документация содержит информацию об изменениях в синтаксисе, отладке приложений, развертывании и терминологии.
Сравнение с C#
C# и Visual Basic – первые языки программирования, разработанные Microsoft для платформы .NET Framework (позже добавлены F# и другие; другие компании также добавляли свои языки). Несмотря на синтаксические различия, на этом различия между C# и Visual Basic в основном заканчиваются. Microsoft разработала оба этих языка как часть единой платформы разработки .NET Framework. Разработкой, сопровождением и поддержкой обоих языков занимается одна и та же команда разработчиков языков в Microsoft. Они компилируются в один и тот же промежуточный язык (IL), который выполняется с использованием одних и тех же библиотек среды выполнения .NET Framework. Хотя существуют некоторые различия в конструкциях программирования, эти различия преимущественно синтаксические, и, если избегать использования библиотек "совместимости" Visual Basic, предоставляемых Microsoft для облегчения перехода с Visual Basic 6, практически любая функция в VB имеет эквивалентную функцию в C#, и наоборот. Кроме того, оба языка используют одни и те же базовые классы .NET Framework для расширения своих возможностей. В результате, за редкими исключениями, программу, написанную на одном из этих языков, можно преобразовать в другой с помощью простого синтаксического конвертера. Для решения этой задачи существует множество продуктов с открытым и коммерческим исходным кодом.
История версий
Сменив классическую Visual Basic версии 6.0, первая версия Visual Basic NET дебютировала в 2002 году. По состоянию на 2020 год выпущено десять версий Visual Basic NET.
2002 (VB 7.0)
Первая версия, Visual Basic NET, полагается на NET Framework 1.0. Самая важная особенность – управляемый код, который отличается от классического Visual Basic.
2003 год (VB 7.1)
Visual Basic NET 2003 был выпущен вместе с NET Framework 1.1. Новые возможности включали поддержку NET Compact Framework и улучшенный мастер обновления VB. Также были улучшены производительность и надежность NET IDE (особенно фонового компилятора) и среды выполнения. Кроме того, Visual Basic NET 2003 был доступен в Visual Studio. NET Academic Edition, которая бесплатно распространялась среди определенного числа исследователей из каждой страны.
2010 год (VB 10.0)
В апреле 2010 года Microsoft выпустила Visual Basic 2010. Microsoft планировала использовать Dynamic Language Runtime (DLR) для этой версии, но перешла к стратегии совместной эволюции Visual Basic и языка C#, чтобы обеспечить более тесное сближение этих двух языков. Внутренняя способность Visual Basic к динамическому взаимодействию с объектами CLR и COM была расширена для работы с динамическими языками, созданными на основе DLR, такими как IronPython и IronRuby. Компилятор Visual Basic был улучшен для автоматического определения продолжения строки в ряде распространенных случаев, что во многих ситуациях позволило отказаться от использования символов продолжения строки " ". Кроме того, существующая поддержка встроенных функций была расширена поддержкой встроенных подпрограмм, а также многострочными версиями лямбда-выражений для подпрограмм и функций.
2013 год (VB 12.0)
Visual Basic 2013 был выпущен вместе с .NET Framework 4.5.1 и Visual Studio 2013. Также можно создавать приложения для .NET Framework 4.5.2, установив пакет разработчика.
2015 год (VB 14.0)
Visual Basic 2015 (кодовое название VB "14.0") был выпущен вместе с Visual Studio 2015. Новые возможности языка включают оператор "?." для встроенной проверки на null и новую функцию интерполяции строк для форматирования строк непосредственно в коде.
2017 (VB 15.x)
Visual Basic 2017 (кодовое название VB "15.0") был выпущен вместе с Visual Studio 2017. Расширяет поддержку новых языковых возможностей Visual Basic 15, начиная с версии 2017, 15.3, 15.5 и 15.8. Представляет новые возможности рефакторинга, позволяющие организовать исходный код одним действием.
2019 (VB 16.0)
Visual Basic 2019 (кодовое название VB "16.0") был выпущен вместе с Visual Studio 2019. Это первая версия Visual Basic, ориентированная на .NET Core.
Разработка на основе открытого исходного кода и на основе различных платформ
Официальный компилятор Visual Basic написан на Visual Basic и доступен на GitHub как часть платформы .NET Compiler Platform. Разработка инструментов с открытым исходным кодом для Visual Basic отставала от разработки для C#, хотя платформа разработки Mono предоставляет реализацию специфических библиотек Visual Basic и компилятор, совместимый с Visual Basic 2005, также написанный на Visual Basic, а также стандартные библиотек фреймворка, таких как библиотека графического интерфейса пользователя Windows Forms. MonoDevelop был альтернативной IDE с открытым исходным кодом. Среда Gambas также похожа, но отличается от Visual Basic, как и Visual FB Editor для FreeBasic.