Перейти до вмісту

Visual Basic

Матеріал з K2 ERP Wiki Ukraine — База знань з автоматизації та санкцій в Україні

SEO title: Visual Basic — мова програмування Microsoft для .NET, Windows Forms, VBA-спадщини, desktop, legacy-систем і type-safe застосунків SEO description: Visual Basic — Wiki-стаття про мову програмування Microsoft Visual Basic: VB.NET, Windows Forms, .NET, Visual Studio, спадщину VB6 і VBA, type safety, класи, модулі, properties, events, LINQ, async/await, error handling, Windows desktop, Office automation, legacy systems, міграцію на C#, підтримку у .NET 10, стратегію Microsoft, обмеження, тестування й практичне використання Visual Basic у бізнесі, інтеграціях та підтримці старих систем. SEO keywords: Visual Basic, VB.NET, Visual Basic .NET, Microsoft Visual Basic, VB, Visual Basic 6, VB6, VBA, Visual Studio, .NET, .NET 10, Windows Forms, WinForms, type-safe .NET apps, Visual Basic language strategy, Visual Basic support, Visual Basic migration, VB to C#, Office automation, legacy systems, desktop apps, Microsoft.VisualBasic, LINQ Visual Basic, async await Visual Basic, програмування Visual Basic, підтримка Visual Basic Alternative to: повна міграція старих VB-систем без потреби; ручна підтримка legacy Windows-застосунків; VBA-макроси без структури; старі VB6-застосунки без плану модернізації; desktop-утиліти без Visual Studio; .NET-застосунки без type safety; підтримка Windows Forms без документації; переписування бізнес-логіки без аналізу ризиків


Visual Basic — це мова програмування Microsoft із довгою історією, яка сьогодні найчастіше означає Visual Basic .NET або VB.NET — об’єктно-орієнтовану мову для платформи .NET.

Visual Basic використовується для desktop-застосунків, Windows Forms, внутрішніх бізнес-утиліт, legacy-систем, Office/VBA-спадщини, автоматизації, підтримки старого коду й деяких .NET-застосунків.

Коротко: Visual Basic — це мова Microsoft із дуже читабельним синтаксисом. Сьогодні вона важлива насамперед для підтримки існуючих .NET/VB-систем, Windows Forms, Office/VBA-спадщини й бізнес-застосунків, які вже написані на VB.

Офіційна документація Microsoft описує Visual Basic як об’єктно-орієнтовану мову програмування, яка дозволяє швидко створювати type-safe .NET apps. [1]

Головна ідея

Головна ідея Visual Basic — зробити програмування більш доступним, читабельним і наближеним до природної мови.

Visual Basic історично був популярним тому, що дозволяв швидко створювати:

  • Windows-застосунки;
  • форми;
  • кнопки;
  • бізнес-утиліти;
  • desktop-програми;
  • автоматизацію Office;
  • внутрішні корпоративні інструменти;
  • scripts і макроси;
  • прості database-driven apps.

Проста аналогія: Visual Basic — це мова, яка довго була “вхідними дверима” у програмування для бізнес-користувачів, аналітиків і Windows-розробників.

Visual Basic, VB.NET, VB6 і VBA

Назва Visual Basic може означати різні речі.

Назва Що це
Visual Basic .NET / VB.NET сучасна Visual Basic-мова для .NET
Visual Basic 6 / VB6 класична стара Visual Basic-мова до .NET
VBA Visual Basic for Applications, мова макросів в Office
VBScript стара scripting-мова Windows, пов’язана з VB-синтаксисом

Ці технології схожі синтаксично, але це не одне й те саме.

Visual Basic .NET

Visual Basic .NET — це Visual Basic для платформи .NET.

Він підтримує:

  • класи;
  • об’єкти;
  • інтерфейси;
  • generics;
  • LINQ;
  • async/await;
  • events;
  • properties;
  • exception handling;
  • Windows Forms;
  • .NET libraries;
  • Visual Studio tooling.

Visual Basic є однією з трьох мов Microsoft у .NET разом із C# і F#. Microsoft Learn окремо описує Visual Basic documentation для .NET-розробників. [2]

Visual Basic 6

Visual Basic 6 або VB6 — класична версія Visual Basic до переходу на .NET.

VB6 був дуже популярним для Windows desktop-застосунків.

Сьогодні VB6 часто зустрічається в legacy-системах:

  • старі ERP/CRM-утиліти;
  • бухгалтерські програми;
  • внутрішні Windows tools;
  • ActiveX-компоненти;
  • COM-інтеграції;
  • старі форми;
  • database applications.

VB6 не є VB.NET. Міграція з VB6 на VB.NET або C# може бути складною, бо змінюється runtime, модель об’єктів, бібліотеки й архітектура.

VBA

VBA — Visual Basic for Applications.

VBA використовується в Microsoft Office:

  • Excel;
  • Word;
  • Access;
  • Outlook;
  • PowerPoint.

VBA корисний для:

  • макросів;
  • автоматизації Excel;
  • звітів;
  • обробки таблиць;
  • форм;
  • Office workflows.

VBA не є VB.NET, але синтаксис схожий.

Не плутати: якщо користувач каже “Visual Basic”, він може мати на увазі VB.NET, VB6 або VBA. Перед технічними рішеннями потрібно уточнити контекст.

Стратегія Microsoft щодо Visual Basic

Microsoft зберігає Visual Basic як стабільну й підтримувану мову, але не розвиває її так активно, як C#.

Офіційна стратегія Microsoft каже, що Visual Basic залишиться straightforward and approachable language зі stable design. Core libraries .NET підтримуватимуть Visual Basic, а багато покращень .NET Runtime і libraries автоматично будуть корисні VB-користувачам. Але Visual Basic зазвичай матиме consumption-only підхід і не буде розширюватися на нові workloads. [3]

Це означає:

  • Visual Basic підтримується;
  • Visual Studio experience для VB продовжує покращуватися;
  • VB може використовувати нові .NET APIs;
  • новий синтаксис додається обережно;
  • нові workloads зазвичай не додаються;
  • C# залишається головною мовою для активних нових .NET-напрямів.

Visual Basic у .NET 10

У .NET 10 Visual Basic отримав compiler improvements.

Документація .NET 10 зазначає, що Visual Basic compiler тепер інтерпретує й застосовує unmanaged generic constraint, а також враховує OverloadResolutionPriorityAttribute. Це покращує сумісність із сучасними runtime APIs і допомагає вибирати кращі overloads. [4]

Практичний висновок: Visual Basic не “мертвий”, але він стабільний, а не агресивно інноваційний. Для нових .NET-проєктів частіше обирають C#, а VB часто залишається для підтримки й еволюції існуючих систем.

Visual Studio

Visual Studio — головна IDE для Visual Basic.

Visual Studio використовується для:

  • VB.NET projects;
  • Windows Forms;
  • .NET libraries;
  • debugging;
  • designers;
  • IntelliSense;
  • refactoring;
  • testing;
  • NuGet packages;
  • Git integration.

Visual Basic особливо тісно пов’язаний із Visual Studio, бо історично сила VB була не тільки в мові, а й у drag-and-drop розробці форм.

Синтаксис Visual Basic

Visual Basic має читабельний синтаксис.

Приклад:

Module Program
    Sub Main()
        Console.WriteLine("Hello, Visual Basic")
    End Sub
End Module

У Visual Basic блоки часто завершуються словами:

  • End If;
  • End Sub;
  • End Function;
  • End Class;
  • End Module.

Це робить код схожим на структурований текст.

Variables

Змінні оголошуються через Dim.

Приклад:

Dim name As String = "Visual Basic"
Dim count As Integer = 10
Dim isActive As Boolean = True

Visual Basic підтримує type inference:

Dim name = "Visual Basic"
Dim count = 10

Але в бізнес-коді явні типи часто роблять код зрозумілішим.

Option Strict

Option Strict контролює неявні перетворення типів і late binding.

Добра практика:

Option Strict On

Це допомагає:

  • ловити помилки на етапі компіляції;
  • уникати випадкових conversion bugs;
  • писати type-safe code;
  • зробити код ближчим до сучасного .NET-стилю.

Практична порада: для сучасного VB.NET-коду краще використовувати Option Strict On. Це зменшує “магію” й робить поведінку коду передбачуванішою.

Option Explicit

Option Explicit вимагає оголошення змінних перед використанням.

Добра практика:

Option Explicit On

Це допомагає уникати помилок через опечатки в назвах змінних.

Option Infer

Option Infer дозволяє компілятору виводити тип змінної.

Приклад:

Option Infer On

Dim total = 100
Dim title = "Report"

Компілятор сам визначить, що total — Integer, а title — String.

Classes

Visual Basic підтримує класи.

Приклад:

Public Class Customer
    Public Property Id As Integer
    Public Property Name As String
End Class

Класи використовуються для:

  • бізнес-сутностей;
  • сервісів;
  • DTO;
  • forms;
  • models;
  • data access;
  • domain logic.

Properties

Properties — стандартний спосіб описати дані класу.

Приклад:

Public Class Product
    Public Property Id As Integer
    Public Property Name As String
    Public Property Price As Decimal
End Class

Properties можуть мати custom getter/setter:

Private _name As String

Public Property Name As String
    Get
        Return _name
    End Get
    Set(value As String)
        _name = value
    End Set
End Property

Methods

Methods у Visual Basic бувають Sub і Function.

Sub не повертає значення:

Public Sub PrintMessage(message As String)
    Console.WriteLine(message)
End Sub

Function повертає значення:

Public Function Add(a As Integer, b As Integer) As Integer
    Return a + b
End Function

Modules

Module — тип, який містить shared functions, procedures або variables.

Приклад:

Public Module MathHelpers
    Public Function Add(a As Integer, b As Integer) As Integer
        Return a + b
    End Function
End Module

Modules зручні для utility functions, але надмірне використання modules може привести до procedural spaghetti code.

Interfaces

Interface описує контракт.

Приклад:

Public Interface IReportService
    Function GenerateReport(reportId As Integer) As Byte()
End Interface

Реалізація:

Public Class PdfReportService
    Implements IReportService

    Public Function GenerateReport(reportId As Integer) As Byte() _
        Implements IReportService.GenerateReport

        Return New Byte() {}
    End Function
End Class

Interfaces корисні для testing, dependency injection і clean architecture.

Inheritance

Visual Basic підтримує inheritance.

Приклад:

Public Class Animal
    Public Overridable Sub Speak()
        Console.WriteLine("Animal sound")
    End Sub
End Class

Public Class Dog
    Inherits Animal

    Public Overrides Sub Speak()
        Console.WriteLine("Bark")
    End Sub
End Class

Inheritance треба використовувати обережно. Для багатьох сценаріїв interfaces і composition можуть бути кращими.

Events

Events — важлива частина Visual Basic, особливо для Windows Forms.

Приклад:

Private Sub ButtonSave_Click(sender As Object, e As EventArgs) _
    Handles ButtonSave.Click

    MessageBox.Show("Saved")
End Sub

Event-driven programming була однією з причин популярності Visual Basic для desktop-застосунків.

Windows Forms

Windows Forms або WinForms — класичний framework для desktop-застосунків Windows.

Visual Basic дуже часто використовували саме з Windows Forms.

WinForms підходить для:

  • internal tools;
  • desktop utilities;
  • legacy business apps;
  • data entry forms;
  • admin panels;
  • Windows-only applications.

Microsoft documentation має окремий напрям Windows Forms apps для Visual Basic. [5]

Designer

Visual Studio Designer дозволяє створювати форми через drag-and-drop.

Розробник може:

  • додати Button;
  • додати TextBox;
  • додати DataGridView;
  • налаштувати properties;
  • підключити event handler.

Це зробило Visual Basic дуже популярним для швидкої розробки Windows desktop-застосунків.

LINQ

Visual Basic підтримує LINQ.

Приклад:

Dim expensiveProducts =
    From p In products
    Where p.Price > 1000
    Order By p.Name
    Select p

LINQ корисний для:

  • фільтрації;
  • сортування;
  • групування;
  • запитів до collections;
  • Entity Framework;
  • XML;
  • data transformations.

Async/Await

Visual Basic підтримує async/await.

Приклад:

Public Async Function LoadDataAsync() As Task(Of String)
    Await Task.Delay(1000)
    Return "Done"
End Function

Async/await корисний для:

  • HTTP-запитів;
  • роботи з файлами;
  • database operations;
  • UI-застосунків;
  • background operations.

У desktop apps async допомагає не блокувати UI thread.

Error handling

У VB.NET використовується structured exception handling.

Приклад:

Try
    Dim text = File.ReadAllText("data.txt")
    Console.WriteLine(text)
Catch ex As IOException
    Console.WriteLine("File error: " & ex.Message)
Catch ex As Exception
    Console.WriteLine("Unexpected error: " & ex.Message)
Finally
    Console.WriteLine("Done")
End Try

У сучасному VB.NET краще використовувати Try/Catch, а не старий стиль On Error Resume Next.

Червоний прапорець: On Error Resume Next може приховати помилки. У бізнес-системах це небезпечно: програма може продовжити роботу після збою й пошкодити дані або сформувати неправильний результат.

Null і Nothing

У Visual Basic використовується Nothing.

Приклад:

Dim customer As Customer = Nothing

Потрібно перевіряти об’єкти перед використанням:

If customer IsNot Nothing Then
    Console.WriteLine(customer.Name)
End If

Сучасний C# має nullable reference types, але Visual Basic не розвиває новий синтаксис так активно. Тому дисципліна перевірок на Nothing дуже важлива.

Generics

Visual Basic підтримує generics.

Приклад:

Dim names As New List(Of String)()
names.Add("Anna")

Generic function:

Public Function FirstOrDefaultValue(Of T)(items As List(Of T)) As T
    If items.Count = 0 Then
        Return Nothing
    End If

    Return items(0)
End Function

Generics потрібні для type-safe collections, services, repositories і reusable code.

Namespaces

Namespaces організовують код.

Приклад:

Namespace Company.Project.Reports
    Public Class ReportGenerator
    End Class
End Namespace

Namespaces допомагають уникати конфліктів і підтримувати структуру великого проєкту.

NuGet

Visual Basic .NET може використовувати NuGet packages.

Приклади:

  • Newtonsoft.Json;
  • Entity Framework Core;
  • Dapper;
  • Serilog;
  • xUnit;
  • NUnit;
  • MSTest.

NuGet робить доступними багато .NET-бібліотек, але потрібно перевіряти сумісність із Visual Basic і конкретним типом проєкту.

Entity Framework

Visual Basic може використовувати Entity Framework або Entity Framework Core для роботи з базами даних.

Сценарії:

  • CRUD;
  • database-first;
  • model-first historically;
  • code-first;
  • LINQ queries;
  • migrations;
  • business data apps.

У legacy VB-системах часто зустрічаються старі технології доступу до даних: ADO, ADO.NET, typed DataSets, Access database, SQL Server.

Office automation

Visual Basic і VBA часто використовують для Office automation.

Сценарії:

  • Excel reports;
  • Word documents;
  • Outlook automation;
  • Access forms;
  • data import/export;
  • templates;
  • macros;
  • бухгалтерські таблиці;
  • внутрішні офісні процеси.

Для нових інтеграцій із Microsoft 365 часто краще розглядати Graph API, Power Automate або сучасні add-ins, але VBA досі живе в багатьох компаніях.

Visual Basic і Access

Microsoft Access історично тісно пов’язаний із VBA.

Access використовують для:

  • невеликих баз даних;
  • форм;
  • внутрішніх інструментів;
  • швидких business apps;
  • legacy workflows.

Для важливих production-систем Access/VBA може бути ризиковим через обмеження масштабованості, безпеки й супроводу.

Visual Basic і COM

У старих Windows-системах Visual Basic часто працював із COM.

COM-інтеграції можуть бути в:

  • VB6 apps;
  • Office automation;
  • ActiveX controls;
  • legacy ERP/CRM;
  • desktop components;
  • industrial software.

Міграція COM-залежностей — одна зі складних частин модернізації VB6/VB.NET систем.

Visual Basic і .NET libraries

Visual Basic може використовувати більшість .NET libraries.

Наприклад:

  • System.IO;
  • System.Net.Http;
  • System.Text.Json;
  • System.Data;
  • System.Threading.Tasks;
  • Microsoft.VisualBasic namespace;
  • third-party NuGet packages.

Microsoft.VisualBasic namespace містить типи й modules, які підтримують Visual Basic runtime, string operations та інші VB-специфічні можливості. [6]

Visual Basic і C#

Visual Basic і C# працюють на .NET.

Вони можуть використовувати ті самі .NET libraries, але мають різний синтаксис і різну стратегію розвитку.

Мова Сильні сторони
Visual Basic читабельність, legacy VB/VBA-світ, Windows Forms, прості бізнес-застосунки
C# активний розвиток, нові .NET workloads, ASP.NET Core, cloud, modern backend, ширша community

Для нових .NET-проєктів частіше обирають C#.

Для існуючих VB-систем часто логічно підтримувати Visual Basic, якщо переписування не дає бізнес-користі.

Міграція з Visual Basic на C#

Міграція на C# може бути доречною, якщо:

  • команда вже працює на C#;
  • потрібні нові .NET workloads;
  • застосунок активно розвивається;
  • VB-код складно підтримувати;
  • потрібно залучати більше розробників;
  • потрібен ASP.NET Core, cloud або modern backend;
  • legacy architecture заважає розвитку.

Але міграція не завжди потрібна.

Практичне правило: не переписуйте VB-систему тільки тому, що “VB старий”. Переписуйте, якщо є зрозуміла бізнес-причина: ризики, супровід, найм, інтеграції, безпека або розвиток.

Міграція з VB6

Міграція з VB6 складніша, ніж міграція з VB.NET.

Потрібно врахувати:

  • COM components;
  • ActiveX controls;
  • старі форми;
  • database access;
  • business logic;
  • UI behavior;
  • deployment;
  • Windows APIs;
  • third-party components;
  • hidden assumptions;
  • відсутність тестів.

Для VB6 часто краще робити поетапну модернізацію:

  1. інвентаризація;
  2. тестування критичних сценаріїв;
  3. виділення бізнес-логіки;
  4. заміна залежностей;
  5. wrapper або API layer;
  6. поступове переписування;
  7. паралельна експлуатація;
  8. архівування старої системи.

Visual Basic і тестування

Visual Basic .NET може використовувати стандартні .NET test frameworks:

  • MSTest;
  • NUnit;
  • xUnit.

Приклад MSTest:

<TestClass>
Public Class CalculatorTests
    <TestMethod>
    Public Sub Add_ReturnsSum()
        Dim result = Calculator.Add(2, 3)
        Assert.AreEqual(5, result)
    End Sub
End Class

Тестування особливо важливе для legacy-систем перед міграцією.

Legacy code

Багато Visual Basic-коду є legacy code.

Legacy не означає “поганий”.

Legacy означає:

  • код давно працює;
  • він важливий для бізнесу;
  • його складно змінювати;
  • документації може не вистачати;
  • автори могли піти;
  • тести можуть бути відсутні;
  • залежності можуть бути старими.

Підхід до legacy VB-коду має бути обережним: спочатку зрозуміти, потім покривати тестами, потім змінювати.

Refactoring

Refactoring Visual Basic-коду може включати:

  • розбиття великих процедур;
  • виділення functions;
  • заміна глобальних змінних;
  • додавання tests;
  • увімкнення Option Strict;
  • видалення дублювання;
  • заміна On Error Resume Next;
  • покращення names;
  • розділення UI і бізнес-логіки;
  • поступова міграція на services;
  • заміна старих data access підходів.

Не варто робити великий refactoring без tests і backup.

Architecture

Visual Basic-проєкти часто мають стару архітектуру:

  • UI + business logic в одній формі;
  • SQL прямо в event handlers;
  • глобальні modules;
  • shared mutable state;
  • відсутність layers;
  • hidden dependencies.

Для підтримки краще поступово вводити:

  • service layer;
  • repository/data access layer;
  • DTO;
  • validation layer;
  • logging;
  • tests;
  • configuration;
  • dependency boundaries.

Logging

Legacy Visual Basic-застосунки часто мають слабке logging.

Добре логувати:

  • помилки;
  • critical operations;
  • імпорт/експорт;
  • database updates;
  • user actions;
  • integration calls;
  • background jobs;
  • migration steps.

Не варто логувати:

  • паролі;
  • tokens;
  • персональні дані без потреби;
  • повні фінансові документи без політики.

Security

Visual Basic-застосунки мають ті самі security-ризики, що й інші бізнес-програми.

Потрібно контролювати:

  • SQL injection;
  • hardcoded passwords;
  • слабку авторизацію;
  • доступ до файлів;
  • небезпечні COM components;
  • старі libraries;
  • macros;
  • Office automation risks;
  • insecure connection strings;
  • відсутність logging;
  • права користувачів Windows;
  • outdated runtime.

Важливо: найбільший ризик старих VB-систем часто не в мові, а в архітектурі: hardcoded passwords, прямий доступ до бази, відсутність ролей, logs і тестів.

Visual Basic і ERP-системи

Visual Basic не є ERP-системою.

Він не веде облік сам по собі, не проводить документи й не керує складом без прикладної бізнес-логіки.

У контексті K2 ERP Visual Basic може бути актуальним як:

  • legacy desktop utility;
  • старий інтеграційний компонент;
  • Office/VBA-звіт;
  • Windows Forms admin tool;
  • проміжний інструмент імпорту/експорту;
  • старий модуль, який треба мігрувати;
  • автоматизація Excel-звітів;
  • клієнт до API K2 ERP.

Але нову бізнес-логіку ERP краще будувати в основному технологічному стеку системи, а Visual Basic використовувати там, де це виправдано підтримкою старих процесів.

Visual Basic і звітність

Visual Basic/VBA часто використовували для звітності:

  • Excel reports;
  • Access reports;
  • data export;
  • formatting;
  • printing;
  • Office templates.

Для звітності K2 ERP Visual Basic може бути доречним, якщо потрібно підтримувати старі Excel/VBA-звіти.

Але для нової звітності краще розглядати централізований reporting layer, API, BI або web-based reports.

Visual Basic і API

VB.NET може викликати REST API.

Приклад ідеї:

Dim client As New HttpClient()
Dim response = Await client.GetStringAsync("https://api.example.com/items")
Console.WriteLine(response)

Для старих VB6/VBA API-виклики теж можливі, але часто складніші й потребують COM/WinHTTP/XMLHTTP або wrapper.

Для нових інтеграцій краще використовувати сучасний .NET або окремий backend-service.

Коли Visual Basic особливо корисний

Visual Basic особливо корисний для:

  • підтримки існуючих VB.NET систем;
  • Windows Forms legacy apps;
  • Office/VBA automation;
  • внутрішніх desktop tools;
  • простих бізнес-утиліт;
  • підтримки старих процесів;
  • міграційних проєктів;
  • читання й розуміння старого коду;
  • швидких змін у вже існуючому VB-проєкті.

Коли Visual Basic може бути невдалим вибором

Visual Basic може бути невдалим вибором, якщо:

  • починається новий .NET backend;
  • потрібен ASP.NET Core cloud-native сервіс;
  • потрібен cross-platform UI;
  • потрібна велика community для найму;
  • потрібні найновіші .NET language features;
  • проєкт активно розвиватиметься багато років;
  • команда вже працює на C#;
  • потрібна AI/data engineering екосистема;
  • потрібно створювати modern web frontend.

Типові помилки у Visual Basic-проєктах

Поширені помилки:

  • не вмикати Option Strict;
  • використовувати On Error Resume Next;
  • писати всю логіку у формах;
  • не мати tests;
  • зберігати SQL у UI event handlers;
  • використовувати глобальні змінні без контролю;
  • не документувати legacy workflows;
  • тримати паролі в коді;
  • боятися змінювати legacy-код без тестів;
  • переписувати все одразу без плану;
  • плутати VBA, VB6 і VB.NET;
  • не перевіряти сумісність із сучасним .NET.

Хороші практики

Під час роботи з Visual Basic варто:

  1. Уточнити, йдеться про VB.NET, VB6 чи VBA.
  2. Для VB.NET вмикати Option Strict On.
  3. Використовувати Option Explicit On.
  4. Поступово покривати legacy-код тестами.
  5. Не використовувати On Error Resume Next без крайньої потреби.
  6. Виносити бізнес-логіку з UI forms.
  7. Додавати logging.
  8. Перевіряти hardcoded secrets.
  9. Документувати критичні сценарії.
  10. Міграцію робити поетапно.
  11. Не переписувати систему без бізнес-причини.
  12. Для нових .NET-проєктів порівнювати VB із C#.
  13. Перевіряти підтримку libraries і workloads.
  14. Зберігати код у Git.
  15. Робити code review навіть для legacy changes.

Практичний висновок

Visual Basic — важлива мова Microsoft із великою спадщиною в бізнес-застосунках, Windows Forms, Office automation і legacy-системах.

Сильні сторони:

  • читабельний синтаксис;
  • низький поріг входу;
  • Visual Studio tooling;
  • Windows Forms;
  • Office/VBA-спадщина;
  • .NET libraries;
  • type-safe .NET apps;
  • зручність для старих бізнес-процесів;
  • багато існуючого legacy-коду.

Обмеження:

  • мова має stable design, а не активний інноваційний розвиток;
  • нові workloads зазвичай не додаються;
  • C# має активнішу ecosystem і community;
  • VB6/VBA/VB.NET легко плутати;
  • legacy-код часто має архітектурні й security-проблеми;
  • для нових cloud/backend/web-проєктів VB рідко є першим вибором.

Visual Basic найкраще сприймати як мову підтримки, модернізації й еволюції існуючих бізнес-систем. Для нових .NET-проєктів варто серйозно розглядати C#, але для діючих VB-рішень часто розумніше не переписувати все, а поступово покращувати, тестувати й модернізувати.

Пояснення термінів

  • Visual Basic — мова програмування Microsoft.
  • VB.NET — Visual Basic для платформи .NET.
  • VB6 — класичний Visual Basic 6 до .NET.
  • VBA — Visual Basic for Applications, мова макросів Office.
  • VBScript — стара scripting-мова Windows із VB-подібним синтаксисом.
  • Visual Studio — основна IDE для Visual Basic.
  • .NET — платформа Microsoft для застосунків і бібліотек.
  • Windows Forms — desktop UI framework для Windows-застосунків.
  • WinForms — скорочення від Windows Forms.
  • Option Strict — налаштування, яке обмежує небезпечні неявні перетворення.
  • Option Explicit — налаштування, яке вимагає оголошення змінних.
  • Option Infer — налаштування автоматичного виведення типів.
  • Module — тип Visual Basic для shared procedures і helpers.
  • Class — клас, опис об’єкта.
  • Property — властивість класу.
  • Sub — процедура без значення, що повертається.
  • Function — процедура, яка повертає значення.
  • Interface — контракт для класів.
  • Event — подія, часто використовується в UI.
  • LINQ — Language Integrated Query.
  • Async/Await — механізм асинхронного програмування.
  • Nothing — відсутність значення або null-like значення у Visual Basic.
  • COM — Component Object Model, стара Windows component technology.
  • ActiveX — технологія компонентів, часто пов’язана зі старими VB/COM-рішеннями.
  • Legacy code — старий, але бізнес-критичний код.
  • Refactoring — покращення структури коду без зміни поведінки.
  • Migration — перенесення системи на іншу платформу, мову або архітектуру.

Дивіться також

Джерела