Visual Basic .NET — найсучасніша BASIC-базована мова програмування. Станом на лютий 2022 року найновішою є версія VB.NET 2022 — частина VS 2022.
Тип | d Високорівнева мова програмування d d мультипарадигмальна мова програмування імперативна мова програмування мова функціонального програмування і d |
---|---|
Розробник | Microsoft |
Стабільний випуск | Visual Basic 2022 (17.9.2) (27 лютого 2024 ) |
Платформа | .NET Framework, Mono і .NET |
Операційна система | Windows, Android, Berkeley Software Distribution, iOS, Linux, macOS, Solaris і UNIX |
Ліцензія | d |
Репозиторій | https://github.com/dotnet/vblang, https://github.com/dotnet/roslyn |
Вебсайт | docs.microsoft.com/en-us/dotnet/visual-basic/ |
|
Працює ця мова на базі .NET- фреймворку (працює за допомогою CLR), для роботи з яким також розроблена мова програмування C#, до 2005 року існувала J#, а починаючи з 2010 додана F#. З виходом .Net Core шаблони для VB.NET не були включені, тобто на ньому можна було писати тільки для .NET Framework, а для .Net Core тільки деякі бібліотеки, що викликало думку, що розвиток мови припинений, але з виходом додані усі шаблони за винятком Unity-проєктів, для яких і надалі може слугувати як мова розробки бібліотек.
VB.NET — є першою з сімейства повністю об'єктноорієнтованою мовою, у ній підтримується всі основні принципи ООП, за винятком множинного успадкування.
Частково також підтримується фреймворком Mono.
Історія
VB.NET розвивається як частина Visual Studio починаючи з 2001 року, перший офіційний реліз у 2002 (посів місце Visual Basic і відповідно версії нумеруються починаючи з числа 7)
- Visual Basic.NET (VB 7.0) — у 2002 році з Visual C# і ASP.NET.
- Visual Basic.NET 2003 (VB 7.1) — з .NET Framework 1.1.
- Visual Basic 2005 (VB 8.0) — кінець жовтня 2005 року, у складі Visual Studio 2005 (.NET 2.0), частково підтримує проєкти попередньої версії.
- Visual Basic 2005 Express — урізана безплатна версія не для комерційних цілей.
- Visual Basic 2008 (VB 9.0) — Visual Studio 2008 (.NET 3.5, у перших релізах — 3.0), повністю підтримує проєкти попередньої версії.
- Visual Basic 2008 Express — урізаний попередній.
- Visual Basic 2010 (VB 10.0) — Visual Studio 2010 (.NET 4.0), повністю підтримує дві попередні версії, призначена для програмування під віндовс від XP до 7.
- Visual Basic 2010 Express — урізаний попередній.
- Visual Basic 2012 (VB 11.0) — Visual Studio 2012 (.NET 4.5), призначена для Windows 8 та Windows Store (частково, без тайл-інтерфейсу та власне Windows Store, підтримується також Windows 7 і Windows Vista за умови встановлення фреймворку), повністю підтримує усі версії .NET від 1.1 тобто дозволяє програмувати для попередніх версій Windows починаючи з Windows 2000.
- Visual Basic 2012 Express — урізаний попередній (існує тільки як частина Visual Studio Express, бо Microsoft починаючи з цієї версії не випускає окремих мов у експрес-варіантах).
- Visual Basic 2013 (VB 12.0) — Visual Studio 2013 (.NET 4.5.1 та 4.5.2), призначена для Windows 8.1 та Windows Store, за системними вимогами та можливостями (при застосуванні з попередніми версіями) не відрізняється від попереднього випуску, тільки не підтримує розробку під Windows XP. Visual Studio 2013 і відповідно Visual Basic .NET має наступні Update:
- Visual Studio 2013 Update 1 — листопад 2013.
- Visual Studio 2013 Update 2 — травень 2014.
- Visual Studio 2013 Update 3 — серпень 2014.
- Visual Studio 2013 Update 4 — листопад 2014.
- Visual Basic 2015 (VB 14.0) — Visual Studio 2015 (.NET 4.6 та 4.6.1), призначена для Windows 10, але й надалі підтримує розробку для старших версій як попередня.
- Visual Studio 2013 Update 1 — листопад 2015.
- Visual Studio 2013 Update 2 — березень 2016.
- Visual Studio 2013 Update 3 — червень 2016.
- Visual Basic 2017 (VB 15.0) — Visual Studio 2017 (.NET 4.6.x та 4.7.x), призначена для Windows 10, але й надалі підтримує розробку для старших версій як попередня. Регулярно оновлюється разом з Visual Studio.
- Visual Basic 2019 (VB 16.0) — Visual Studio 2019 (.NET 4.7.x та 4.8.x), призначена для Windows 10, але й надалі підтримує розробку для старших версій як попередня. Регулярно оновлюється разом з Visual Studio.
- Visual Basic 2022 (VB 16.0) — Visual Studio 2019 (.NET Framework 4.7.x, 4.8.x та .Net 5, 6, 7), призначена для Windows 10 та 11, а також кросплатформної розробки (Windows 11, macOS, Linux, Android, iOS), але й надалі підтримує розробку для старших версій як попередня. Регулярно оновлюється разом з Visual Studio.
Починаючи з 2013 року Express замінено на Community Edition, що є повною версією з обмеженнями комерційного використання, тобто малі команди та індивідуальні розробники можуть користуватись нею безплатно.
Назва мови програмування
VB — абревіатура від Visual Basic — безпосереднього предка мови та .NET — використовувана платформа. (хоча повна назва мови — Visual Basic .NET її часто називають VB.NET для диференціації від попередніх версій така ситуація, імовірно, триватиме до повного виходу з ужитку версії 6.0).
Особливості мови
Реалізовано всі можливості CLR з деякими надбудовами (у більшості випадків це так званий синтаксичний цукор).
У зв'язку з наявністю традиційних назв типів у мові є також шість специфічних типів, що застосовуються поряд з загальновживаними, а саме:
Тип | BASIC-аналог | Опис |
---|---|---|
Int16 | Short | 16-бітне знаковане ціле число |
UInt16 | UShort | 16-бітне беззнакове ціле число |
Int32 | Integer | 32-бітне знаковане ціле число |
UInt32 | UInteger | 32-бітне беззнакове ціле число |
Int64 | Long | 64-бітне знаковане ціле число |
UIn64 | ULong | 64-бітне беззнакове ціле число |
Вважається, що ці назви зсуваються зі зміною технологій обчислення, тобто коли набудуть поширення 128-бітні процесори, усі назви посунуться, тому що вони не прив'язані до конкретної бітності, а є чвертю, половиною та повною бітностями, для системи з найвищою бітністю (на даний час - AMD64 / ).
Опис статичного класу здійснюється конструкцією «Module … End Module», що створює ілюзію ніби у мові є процедури, які не належать ніякому класу, бо доступ до всіх членів такого класу (за відсутності конфліктів імен) здійснюється через загальний простір імен. Це можна проілюструвати наступними прикладами:
Module MainModule Sub Main Console.WriteLine(Func1) Console.WriteLine(Func2) End Sub End Module Module M1 Public Function Func1() As Integer Return 1 End Function End Module Module M2 Public Function Func2() As Integer Return 2 End Function End Module
Функції з різних просторів імен викликаються з головного простору імен.
Module MainModule Sub Main Console.WriteLine(M1.Func1) Console.WriteLine(M2.Func1) End Sub End Module Module M1 Public Function Func1() As Integer Return 1 End Function End Module Module M2 Public Function Func1() As Integer Return 2 End Function End Module
Функції вимагають вказання класу до якого належать.
Особливим також є формування текстових констант: мова не підтримує так званих esc-послідовностей, тобто для вставки у текстову константу деяких символів необхідно використовувати вбудовані константи, наприклад:
Const TextConstant = "First line" & vbCrLf & "Second line"
вставка «перенесення рядка»
Особливим є обмеження текстових констант їх обмежують символи прямі лапки " але пара прямих лапок не обмежує константу, а служить заміною символу у ній в середині, тобто константа описана виразом: "This is «„word“» inside quotes" міститиме наступне значення This is «word» inside quotes
Також мова не має ключового слова для визначення розширення, тобто розширення класу пишеться наступним чином.
Public Module ListExtensions <Runtime.CompilerServices.Extension> Public Function CountGreaterThan(l As List(Of Integer), n As Integer) As Integer Return l.Where(Function(i) i > n).Count End Function End Module
В коді такі фунції викорстовужться як звичайні члени відповідного класу, хоча насправді вони є статичними функціями де екземпляр класу є першим аргументом.
Dim L As New List(Of Integer) From {1, 2, 3, 4, 5} Dim Greater2 = L.CountGreaterThan(2)
Порівняння з іншими мовами
Найближчою (майже ідентичною) за фукціональними властивостями є C#, найподібнішою за синтаксисом - VBA.
VB.NET | C# | VBA | |
---|---|---|---|
Синтаксис | BASIC-подібний з вкрапленнями C | майже ідентичний C | BASIC-подібний |
Об'єктна парадигма | часткова (як у .NET) | часткова (як у .NET) | у зародковому стані |
Типізація | строга з широкими, подекуди «розхлябаними», можливостями неявного приведення | строга з можливостями неявного приведення | вільна з типом Variant |
Компіляція (інтерпретація) | компілятор в IL | компілятор в IL | інтерпретатор |
Специфіка C# | C++ та інші тільки як скомпільовані бібліотеки | можна включати unmanaged code (C++) | обмежено, як скомпільовані бібліотеки |
Специфіка VB.NET | спрощені конструкції доступу до системи (наприклад до CurrentCulture), широкі можливості форматування даних при виводі | широкі можливості форматування даних при виводі |
Недоліки
- Успадковане від предка розхлябане приведення типів по замовчуванню та пізнє зв'язування (треба вимикати, режимом Option Strict).
- Досить велика, але рідко потрібна (для забезпечення належної роботи код необхідно переписувати) бібліотека сумісності з Visual Basic, починаючи з 2010 (10.0, .NET 4.00) — відсутня.
- C-подібні конструкції, що не вписуються у синтаксис (даний недолік — умовність, до якої досить швидко звикається).
Переваги
- Автоматичне визначення типу змінних з присвоюваного значення (вигідне при використанні у невеликих фрагментах коду таких, як наприклад, методи).
- Поєднання простоти та зрозумілості синтаксису з широкими можливостями .NET.
- Наявність зручних BASIC-подібних конструкцій (яких не було у попередніх мовах).
- Легка інтеграція з офісними програмами (аналогічний базовий синтаксис).
- Легкість переходу з інших мов при потребі.
Приклад коду «Hello World!»
Module MainModule Sub Main Console.WriteLine("Hello World!") End Sub End Module
Примітки
Посилання
http://msdn.microsoft.com/en-us/vbasic/default [ 11 грудня 2010 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Visual Basic NET najsuchasnisha BASIC bazovana mova programuvannya Stanom na lyutij 2022 roku najnovishoyu ye versiya VB NET 2022 chastina VS 2022 Visual Basic NETTipd Visokorivneva mova programuvannya d d multiparadigmalna mova programuvannya imperativna mova programuvannya mova funkcionalnogo programuvannya i dRozrobnikMicrosoftStabilnij vipuskVisual Basic 2022 17 9 2 27 lyutogo 2024 4 misyaci tomu 2024 02 27 Platforma NET Framework Mono i NETOperacijna sistemaWindows Android Berkeley Software Distribution iOS Linux macOS Solaris i UNIXLicenziyadRepozitorijhttps github com dotnet vblang https github com dotnet roslynVebsajtdocs microsoft com en us dotnet visual basic Mediafajli u Vikishovishi Pracyuye cya mova na bazi NET frejmvorku pracyuye za dopomogoyu CLR dlya roboti z yakim takozh rozroblena mova programuvannya C do 2005 roku isnuvala J a pochinayuchi z 2010 dodana F Z vihodom Net Core shabloni dlya VB NET ne buli vklyucheni tobto na nomu mozhna bulo pisati tilki dlya NET Framework a dlya Net Core tilki deyaki biblioteki sho viklikalo dumku sho rozvitok movi pripinenij ale z vihodom dodani usi shabloni za vinyatkom Unity proyektiv dlya yakih i nadali mozhe sluguvati yak mova rozrobki bibliotek VB NET ye pershoyu z simejstva povnistyu ob yektnooriyentovanoyu movoyu u nij pidtrimuyetsya vsi osnovni principi OOP za vinyatkom mnozhinnogo uspadkuvannya Chastkovo takozh pidtrimuyetsya frejmvorkom Mono IstoriyaVB NET rozvivayetsya yak chastina Visual Studio pochinayuchi z 2001 roku pershij oficijnij reliz u 2002 posiv misce Visual Basic i vidpovidno versiyi numeruyutsya pochinayuchi z chisla 7 Visual Basic NET VB 7 0 u 2002 roci z Visual C i ASP NET Visual Basic NET 2003 VB 7 1 z NET Framework 1 1 Visual Basic 2005 VB 8 0 kinec zhovtnya 2005 roku u skladi Visual Studio 2005 NET 2 0 chastkovo pidtrimuye proyekti poperednoyi versiyi Visual Basic 2005 Express urizana bezplatna versiya ne dlya komercijnih cilej Visual Basic 2008 VB 9 0 Visual Studio 2008 NET 3 5 u pershih relizah 3 0 povnistyu pidtrimuye proyekti poperednoyi versiyi Visual Basic 2008 Express urizanij poperednij Visual Basic 2010 VB 10 0 Visual Studio 2010 NET 4 0 povnistyu pidtrimuye dvi poperedni versiyi priznachena dlya programuvannya pid vindovs vid XP do 7 Visual Basic 2010 Express urizanij poperednij Visual Basic 2012 VB 11 0 Visual Studio 2012 NET 4 5 priznachena dlya Windows 8 ta Windows Store chastkovo bez tajl interfejsu ta vlasne Windows Store pidtrimuyetsya takozh Windows 7 i Windows Vista za umovi vstanovlennya frejmvorku povnistyu pidtrimuye usi versiyi NET vid 1 1 tobto dozvolyaye programuvati dlya poperednih versij Windows pochinayuchi z Windows 2000 Visual Basic 2012 Express urizanij poperednij isnuye tilki yak chastina Visual Studio Express bo Microsoft pochinayuchi z ciyeyi versiyi ne vipuskaye okremih mov u ekspres variantah Visual Basic 2013 VB 12 0 Visual Studio 2013 NET 4 5 1 ta 4 5 2 priznachena dlya Windows 8 1 ta Windows Store za sistemnimi vimogami ta mozhlivostyami pri zastosuvanni z poperednimi versiyami ne vidriznyayetsya vid poperednogo vipusku tilki ne pidtrimuye rozrobku pid Windows XP Visual Studio 2013 i vidpovidno Visual Basic NET maye nastupni Update Visual Studio 2013 Update 1 listopad 2013 Visual Studio 2013 Update 2 traven 2014 Visual Studio 2013 Update 3 serpen 2014 Visual Studio 2013 Update 4 listopad 2014 Visual Basic 2015 VB 14 0 Visual Studio 2015 NET 4 6 ta 4 6 1 priznachena dlya Windows 10 ale j nadali pidtrimuye rozrobku dlya starshih versij yak poperednya Visual Studio 2013 Update 1 listopad 2015 Visual Studio 2013 Update 2 berezen 2016 Visual Studio 2013 Update 3 cherven 2016 Visual Basic 2017 VB 15 0 Visual Studio 2017 NET 4 6 x ta 4 7 x priznachena dlya Windows 10 ale j nadali pidtrimuye rozrobku dlya starshih versij yak poperednya Regulyarno onovlyuyetsya razom z Visual Studio Visual Basic 2019 VB 16 0 Visual Studio 2019 NET 4 7 x ta 4 8 x priznachena dlya Windows 10 ale j nadali pidtrimuye rozrobku dlya starshih versij yak poperednya Regulyarno onovlyuyetsya razom z Visual Studio Visual Basic 2022 VB 16 0 Visual Studio 2019 NET Framework 4 7 x 4 8 x ta Net 5 6 7 priznachena dlya Windows 10 ta 11 a takozh krosplatformnoyi rozrobki Windows 11 macOS Linux Android iOS ale j nadali pidtrimuye rozrobku dlya starshih versij yak poperednya Regulyarno onovlyuyetsya razom z Visual Studio Pochinayuchi z 2013 roku Express zamineno na Community Edition sho ye povnoyu versiyeyu z obmezhennyami komercijnogo vikoristannya tobto mali komandi ta individualni rozrobniki mozhut koristuvatis neyu bezplatno Nazva movi programuvannyaVB abreviatura vid Visual Basic bezposerednogo predka movi ta NET vikoristovuvana platforma hocha povna nazva movi Visual Basic NET yiyi chasto nazivayut VB NET dlya diferenciaciyi vid poperednih versij taka situaciya imovirno trivatime do povnogo vihodu z uzhitku versiyi 6 0 Osoblivosti moviRealizovano vsi mozhlivosti CLR z deyakimi nadbudovami u bilshosti vipadkiv ce tak zvanij sintaksichnij cukor U zv yazku z nayavnistyu tradicijnih nazv tipiv u movi ye takozh shist specifichnih tipiv sho zastosovuyutsya poryad z zagalnovzhivanimi a same Tip BASIC analog Opis Int16 Short 16 bitne znakovane cile chislo UInt16 UShort 16 bitne bezznakove cile chislo Int32 Integer 32 bitne znakovane cile chislo UInt32 UInteger 32 bitne bezznakove cile chislo Int64 Long 64 bitne znakovane cile chislo UIn64 ULong 64 bitne bezznakove cile chislo Vvazhayetsya sho ci nazvi zsuvayutsya zi zminoyu tehnologij obchislennya tobto koli nabudut poshirennya 128 bitni procesori usi nazvi posunutsya tomu sho voni ne priv yazani do konkretnoyi bitnosti a ye chvertyu polovinoyu ta povnoyu bitnostyami dlya sistemi z najvishoyu bitnistyu na danij chas AMD64 Opis statichnogo klasu zdijsnyuyetsya konstrukciyeyu Module End Module sho stvoryuye ilyuziyu nibi u movi ye proceduri yaki ne nalezhat niyakomu klasu bo dostup do vsih chleniv takogo klasu za vidsutnosti konfliktiv imen zdijsnyuyetsya cherez zagalnij prostir imen Ce mozhna proilyustruvati nastupnimi prikladami Module MainModule Sub Main Console WriteLine Func1 Console WriteLine Func2 End Sub End Module Module M1 Public Function Func1 As Integer Return 1 End Function End Module Module M2 Public Function Func2 As Integer Return 2 End Function End Module Funkciyi z riznih prostoriv imen viklikayutsya z golovnogo prostoru imen Module MainModule Sub Main Console WriteLine M1 Func1 Console WriteLine M2 Func1 End Sub End Module Module M1 Public Function Func1 As Integer Return 1 End Function End Module Module M2 Public Function Func1 As Integer Return 2 End Function End Module Funkciyi vimagayut vkazannya klasu do yakogo nalezhat Osoblivim takozh ye formuvannya tekstovih konstant mova ne pidtrimuye tak zvanih esc poslidovnostej tobto dlya vstavki u tekstovu konstantu deyakih simvoliv neobhidno vikoristovuvati vbudovani konstanti napriklad Const TextConstant First line amp vbCrLf amp Second line vstavka perenesennya ryadka Osoblivim ye obmezhennya tekstovih konstant yih obmezhuyut simvoli pryami lapki ale para pryamih lapok ne obmezhuye konstantu a sluzhit zaminoyu simvolu u nij v seredini tobto konstanta opisana virazom This is word inside quotes mistitime nastupne znachennya This is word inside quotes Takozh mova ne maye klyuchovogo slova dlya viznachennya rozshirennya tobto rozshirennya klasu pishetsya nastupnim chinom Public Module ListExtensions lt Runtime CompilerServices Extension gt Public Function CountGreaterThan l As List Of Integer n As Integer As Integer Return l Where Function i i gt n Count End Function End Module V kodi taki funciyi vikorstovuzhtsya yak zvichajni chleni vidpovidnogo klasu hocha naspravdi voni ye statichnimi funkciyami de ekzemplyar klasu ye pershim argumentom Dim L As New List Of Integer From 1 2 3 4 5 Dim Greater2 L CountGreaterThan 2 Porivnyannya z inshimi movamiNajblizhchoyu majzhe identichnoyu za fukcionalnimi vlastivostyami ye C najpodibnishoyu za sintaksisom VBA VB NET C VBA Sintaksis BASIC podibnij z vkraplennyami C majzhe identichnij C BASIC podibnij Ob yektna paradigma chastkova yak u NET chastkova yak u NET u zarodkovomu stani Tipizaciya stroga z shirokimi podekudi rozhlyabanimi mozhlivostyami neyavnogo privedennya stroga z mozhlivostyami neyavnogo privedennya vilna z tipom Variant Kompilyaciya interpretaciya kompilyator v IL kompilyator v IL interpretator Specifika C C ta inshi tilki yak skompilovani biblioteki mozhna vklyuchati unmanaged code C obmezheno yak skompilovani biblioteki Specifika VB NET sprosheni konstrukciyi dostupu do sistemi napriklad do CurrentCulture shiroki mozhlivosti formatuvannya danih pri vivodi shiroki mozhlivosti formatuvannya danih pri vivodiNedolikiUspadkovane vid predka rozhlyabane privedennya tipiv po zamovchuvannyu ta piznye zv yazuvannya treba vimikati rezhimom Option Strict Dosit velika ale ridko potribna dlya zabezpechennya nalezhnoyi roboti kod neobhidno perepisuvati biblioteka sumisnosti z Visual Basic pochinayuchi z 2010 10 0 NET 4 00 vidsutnya C podibni konstrukciyi sho ne vpisuyutsya u sintaksis danij nedolik umovnist do yakoyi dosit shvidko zvikayetsya PerevagiAvtomatichne viznachennya tipu zminnih z prisvoyuvanogo znachennya vigidne pri vikoristanni u nevelikih fragmentah kodu takih yak napriklad metodi Poyednannya prostoti ta zrozumilosti sintaksisu z shirokimi mozhlivostyami NET Nayavnist zruchnih BASIC podibnih konstrukcij yakih ne bulo u poperednih movah Legka integraciya z ofisnimi programami analogichnij bazovij sintaksis Legkist perehodu z inshih mov pri potrebi Priklad kodu Hello World Module MainModule Sub Main Console WriteLine Hello World End Sub End ModulePrimitkiPosilannyahttp msdn microsoft com en us vbasic default 11 grudnya 2010 u Wayback Machine