Visual Basic
Visual Basic і формування звітів
Це оптимізує: Приклад:
Console.WriteLine("Animal sound")
Приклад MSTest:
Return _name
- Windows-застосунки;
- форми;
- кнопки;
- бізнес-утиліти;
- desktop-програми;
- автоматизацію Office;
- внутрішні корпоративні інструменти;
- scripts і макроси;
- прості database-driven apps. Для підтримки краще поступово вводити:
Architecture
Приклад: End If Public Class Dog Legacy означає: desktop-застосунків забезпечується через Visual Basic застосовується для; так само реалізовано Windows Forms, внутрішніх бізнес-утиліт, legacy-систем, Office/VBA-спадщини, автоматизації, підтримки старого коду й деяких .NET-застосунків. Але для нової звітності краще розглядати централізований reporting layer, API, BI або web-based reports. Але Visual Basic зазвичай матиме consumption-only підхід і не буде розширюватися на нові workloads. Підхід до legacy VB-коду має бути обережним: спочатку зрозуміти, потім покривати тестами, потім змінювати. Visual Studio — головна IDE для Visual Basic. Це покращує сумісність із сучасними runtime APIs і користувачі можуть вибирати кращі overloads.== Visual Basic і API ==
Public Sub Add_ReturnsSum()
Тестування особливо важливе для legacy-систем перед міграцією.[1]
У desktop apps async оптимізує не блокувати UI thread.== Хороші практики ==
- класи;
- об’єкти;
- інтерфейси;
- generics;
- LINQ;
- async/await;
- events;
- properties;
- exception handling;
- Windows Forms;
- .NET libraries;
- Visual Studio tooling. Visual Basic має читабельний синтаксис.
- підтримки існуючих VB.NET систем;
- Windows Forms legacy apps;
- Office/VBA automation;
- внутрішніх desktop tools;
- простих бізнес-утиліт;
- підтримки старих процесів;
- міграційних проєктів;
- читання й розуміння старого коду;
- швидких змін у вже існуючому VB-проєкті. # Для нових .NET-проєктів порівнювати VB із C#. Для важливих production-систем Access/VBA здатна бути ризиковим через обмеження масштабованості, безпеки й супроводу. У VB.NET застосовують, коли потрібно structured exception handling. Практичний висновок: Visual Basic не “мертвий”, але він стабільний, а не агресивно інноваційний. * SQL injection;
- hardcoded passwords;
- слабку авторизацію;
- доступ до файлів;
- небезпечні COM components;
- старі libraries;
- macros;
- Office automation risks;
- insecure connection strings;
- відсутність logging;
- права користувачів Windows;
- outdated runtime. * .NET — платформа Microsoft для застосунків і бібліотек. * MSTest;
- NUnit;
- xUnit. {| class="wikitable"
Змінні оголошуються через Dim. Не варто робити великий refactoring без tests і backup. End Sub
Сильні сторони: == Classes == Visual Basic здатна використовувати більшість .NET libraries. Visual Basic не виступає як ERP-системою. Тому дисципліна перевірок на Nothing дуже важлива. Це зменшує “магію” й робить поведінку коду передбачуванішою.<div style="background:#f6ffed;border-left:6px solid #27ae60;padding:14px 18px;margin:16px 0;border-radius:8px;"> == Interfaces == Visual Basic особливо тісно пов’язаний із Visual Studio, бо історично сила VB була не тільки в мові, а й у drag-and-drop розробці форм.== Visual Basic і ERP-системи == == Modules == Public Overrides Sub Speak() </div> Catch ex As Exception Visual Basic підтримує async/await. Це робить код схожим на структурований текст. VB6 був дуже популярним для Windows desktop-застосунків. Refactoring Visual Basic-коду здатна включати: * фільтрації; * сортування; * групування; * запитів до collections; * Entity Framework; * XML; * data transformations. * '''VB.NET''' — Visual Basic для платформи .NET. # Виносити бізнес-логіку з UI forms. # Перевіряти hardcoded secrets. Public Property Name As String * [[C Sharp]] * [[PowerShell]] * [[Python]] * [[Go]] * [[Розробка в K2 ERP]] * [[Тестування коду]] * [[API K2 ERP]] * [[Інтеграції K2 ERP]] * [[Звітність K2 ERP]] * [[GitHub Copilot]] * [[Cursor]] * [[Tabnine]] * [[Deep Learning]] * [[Великі мовні моделі]] * [[GPT]] * [[Claude Models]] * [[Штучний інтелект]] * [[Генеративний AI]]
- Microsoft Learn — Visual Basic documentation
- Microsoft Learn — Visual Basic language strategy
- Microsoft Learn — What's new in .NET 10
- Microsoft Learn — Visual Basic Programming Guide
- Microsoft Learn — Visual Basic Language Reference
- Microsoft Learn — LINQ in Visual Basic
- Microsoft Learn — Async programming with Async and Await
- Microsoft Learn — Microsoft.VisualBasic namespace
- Microsoft Learn — Get started with Visual Basic in Visual Studio
- Windows Forms documentation
- Microsoft — .NET support policy
- MediaWiki — Help:Formatting
- MediaWiki — Help:Links
<div style="background:#eef6ff;border-left:6px solid #2f80ed;padding:14px 18px;margin:16px 0;border-radius:8px;"> <pre> У .NET 10 Visual Basic отримав compiler improvements. * internal tools; * desktop utilities; * legacy business apps; * data entry forms; * admin panels; * Windows-only applications. End Namespace
У контексті K2 ERP Visual Basic здатна бути актуальним як:
Option Infer дає можливість компілятору виводити тип змінної. * Property — властивість класу.
Dim name As String = "Visual Basic"
'''Проста аналогія:''' Visual Basic — це мова, яка довго була “вхідними дверима” у програмування для бізнес-користувачів, аналітиків і Windows-розробників. * '''Refactoring''' — покращення структури коду без зміни поведінки. # Міграцію робити поетапно. Implements IReportService.GenerateReport
Dim name = "Visual Basic"
Visual Basic виступає як однією з трьох мов Microsoft у .NET разом із C# і F#.== Синтаксис Visual Basic ==
Для нових інтеграцій із Microsoft 365 часто краще розглядати Graph API, Power Automate або сучасні add-ins, але VBA досі живе в багатьох компаніях. Option Infer On
Microsoft.VisualBasic namespace містить типи й modules.== Visual Studio ==
* макросів;
* автоматизації Excel;
* звітів;
* обробки таблиць;
* форм;
* Office workflows. * '''LINQ''' — Language Integrated Query.== Refactoring ==
Обмеження:
* Excel;
* Word;
* Access;
* Outlook;
* PowerPoint. # Зберігати код у Git. * '''WinForms''' — скорочення від Windows Forms. * '''Migration''' — перенесення системи на іншу платформу, мову або архітектуру. * VB.NET projects;
* Windows Forms;
* .NET libraries;
* debugging;
* designers;
* IntelliSense;
* refactoring;
* testing;
* NuGet packages;
* Git integration. Console.WriteLine("Hello, Visual Basic")
* COM components;
* ActiveX controls;
* старі форми;
* database access;
* business logic;
* UI behavior;
* deployment;
* Windows APIs;
* third-party components;
* hidden assumptions;
* відсутність тестів. # Документувати критичні сценарії. Handles ButtonSave.Click
Потрібно перевіряти об’єкти перед використанням:
Public Property Name As String
Потрібно контролювати:
COM-інтеграції можуть бути в:
<div style="background:#fff0f0;border-left:6px solid #eb5757;padding:14px 18px;margin:16px 0;border-radius:8px;">
'''Visual Basic .NET''' — це Visual Basic для платформи .NET. Міграція з VB6 на VB.NET або C# здатна бути складною, бо змінюється runtime, модель об’єктів, бібліотеки й технічна архітектура. * Excel reports;
* Access reports;
* data export;
* formatting;
* printing;
* Office templates. Private Sub ButtonSave_Click(sender As Object, e As EventArgs) _
Dim total = 100
End Class
Приклад:
Для нових .NET-проєктів частіше обирають C#. Function GenerateReport(reportId As Integer) As Byte()
Where p.Price > 1000
# Уточнити, йдеться про VB.NET, VB6 чи VBA. Visual Basic підтримує LINQ. Для VB6 часто краще робити поетапну модернізацію:
Для старих VB6/VBA API-виклики теж можливі, але часто складніші й потребують COM/WinHTTP/XMLHTTP або wrapper. Для багатьох сценаріїв interfaces і composition можуть бути кращими.
Return a + b
Namespaces допомагають уникати конфліктів і підтримувати структуру великого проєкту. Catch ex As IOException
- розбиття великих процедур;
- виділення functions;
- заміна глобальних змінних;
- додавання tests;
- увімкнення Option Strict;
- видалення дублювання;
- заміна On Error Resume Next;
- покращення names;
- розділення UI і бізнес-логіки;
- поступова міграція на services;
- заміна старих data access підходів. * VBScript — стара scripting-мова Windows із VB-подібним синтаксисом.
<pre> Interface описує контракт. # Не використовувати <code>On Error Resume Next</code> без крайньої потреби. VBA застосовується для в Microsoft Office: * невеликих баз даних; * форм; * внутрішніх інструментів; * швидких business apps; * legacy workflows.<ref>https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/overview</ref> Visual Basic-проєкти часто мають стару архітектуру: [[Категорія:Desktop]] Public Property Name As String Добра практика: Міграція з VB6 складніша, ніж міграція з VB.NET. * '''Option Explicit''' — конфігурація, яке вимагає оголошення змінних. Назва !! Що це Public Function FirstOrDefaultValue(Of T)(items As List(Of T)) As T == VBA == Select p Implements IReportService == Office automation == End Module Приклад ідеї: End Sub == Inheritance == == Properties == <div style="background:#f6ffed;border-left:6px solid #27ae60;padding:14px 18px;margin:16px 0;border-radius:8px;"> * бізнес-сутностей; * сервісів; * DTO; * forms; * models; * data access; * domain logic. * '''Async/Await''' — механізм асинхронного програмування.<pre> Приклади: == Legacy code == * Excel reports; * Word documents; * Outlook automation; * Access forms; * data import/export; * templates; * macros; * бухгалтерські таблиці; * внутрішні офісні процеси. Modules зручні для utility functions, але надмірне використання modules здатна привести до procedural spaghetti code.<TestClass> End Function Return items(0) Visual Basic здатна використовувати Entity Framework або Entity Framework Core для роботи з базами даних. # Перевіряти підтримку libraries і workloads. * паролі; * tokens; * персональні інформаційні дані без потреби; * повні фінансові документи без політики. Перед технічними рішеннями потрібно уточнити контекст. Core libraries .NET підтримуватимуть Visual Basic, а багато покращень .NET Runtime і libraries автоматизовано будуть корисні VB-користувачам. * '''ActiveX''' — технологія компонентів, часто пов’язана зі старими VB/COM-рішеннями. Dim count As Integer = 10 Приклад: * старі ERP/CRM-утиліти; * бухгалтерські програми; * внутрішні Windows tools; * ActiveX-компоненти; * COM-інтеграції; * старі форми; * database applications. Класи використовуються для: Для нових інтеграцій краще використовувати сучасний .NET або окремий backend-service.<ref>https://learn.microsoft.com/en-us/dotnet/api/microsoft.visualbasic</ref> Dim text = File.ReadAllText("data.txt") </div> Приклад: Не варто логувати: '''Коротко:''' Visual Basic — це мова Microsoft із дуже читабельним синтаксисом. Visual Basic історично був популярним тому, що дозволяв оперативно створювати: VB.NET здатна викликати REST API. Приклад: WinForms підходить для: <pre> * додати Button; * додати TextBox; * додати DataGridView; * налаштувати properties; * підключити event handler. * '''Module''' — тип Visual Basic для shared procedures і helpers. * '''Legacy code''' — старий, але бізнес-критичний код. Сьогодні VB6 часто зустрічається в legacy-системах: Public Function Add(a As Integer, b As Integer) As Integer End Class End Function == LINQ == Але в бізнес-коді явні типи часто роблять код зрозумілішим. # Використовувати <code>Option Explicit On</code>. Microsoft Learn окремо описує Visual Basic documentation для .NET-розробників. # Не переписувати систему без бізнес-причини. Приклад: Це означає: Legacy не означає “поганий”. * '''Function''' — процедура, яка повертає значення. Переписуйте, якщо виступає як зрозуміла бізнес-причина: ризики, супровід, найм, інтеграції, безпека або дорожня карта розвитку. Ці технології схожі синтаксично, але це не одне й те саме.<ref>https://learn.microsoft.com/en-us/dotnet/visual-basic/</ref> End Sub == Дивіться так само == {| class="wikitable" Сценарії: * код давно функціонує; * він важливий для бізнесу; * його складно змінювати; * документації здатна не вистачати; * автори могли піти; * тести можуть бути відсутні; * залежності можуть бути старими. Сильні сторони == Джерела == Головна ідея Visual Basic — зробити програмування більш доступним, читабельним і наближеним до природної мови. Добре логувати: <pre> Visual Studio Designer дає можливість створювати форми через drag-and-drop. '''Не плутати:''' якщо користувач системи каже “Visual Basic”, він здатна мати на увазі VB.NET, VB6 або VBA.[[Категорія:VB6]] == Міграція з Visual Basic на C# == Він не веде обліковий облік сам по собі, не проводить документи й не керує складом без прикладної бізнес-логіки. Visual Basic особливо корисний для: * UI + business logic в одній формі; * SQL прямо в event handlers; * глобальні modules; * shared mutable state; * відсутність layers; * hidden dependencies. Dim customer As Customer = Nothing
Generic function:
Events
Приклад: |- | 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, VB.NET, VB6 і VBA
End Module
Але нову бізнес-логіку ERP краще будувати в основному технологічному стеку системи, а Visual Basic використовувати там, де це виправдано підтримкою старих процесів.== Коли Visual Basic здатна бути невдалим вибором ==
VBA корисний для:
Return New Byte() {}
Await Task.Delay(1000) Public Function GenerateReport(reportId As Integer) As Byte() _
Приклад:
Console.WriteLine("Done")
Public Property Id As Integer
Public Property Price As Decimal
Це оптимізує уникати помилок через опечатки в назвах змінних. Get
Inheritance треба використовувати обережно. * '''Option Infer''' — конфігурація автоматичного виведення типів. '''Практичне правило:''' не переписуйте VB-систему тільки тому, що “VB старий”. ! Під час роботи з Visual Basic варто:
Офіційна документація Microsoft описує Visual Basic як об’єктно-орієнтовану мову програмування, яка дає можливість оперативно створювати type-safe .NET apps. End Sub
MessageBox.Show("Saved")
== Типові помилки у Visual Basic-проєктах ==
End Class
* VB6 apps;
* Office automation;
* ActiveX controls;
* legacy ERP/CRM;
* desktop components;
* industrial software. # Робити code review навіть для legacy changes. '''критично:''' найбільший ризик старих VB-систем часто не в мові, а в архітектурі: hardcoded passwords, прямий доступ до бази, відсутність ролей, logs і тестів. * '''Sub''' — процедура без значення, що повертається. Visual Basic/VBA часто використовували для звітності:
End Get
End Try
</div>
<div style="background:#fff7e6;border-left:6px solid #f2994a;padding:14px 18px;margin:16px 0;border-radius:8px;">
[[Категорія:Microsoft]]
Dim isActive As Boolean = True
У legacy VB-системах часто зустрічаються старі технології доступу до даних: ADO, ADO.NET, typed DataSets, Access database, SQL Server. Сьогодні вона важлива насамперед для підтримки існуючих .NET/VB-систем, Windows Forms, Office/VBA-спадщини й бізнес-застосунків, які вже написані на VB. Мова !!== Windows Forms ==
Public Class Customer
== Variables ==
End Interface
names.Add("Anna")
Namespaces організовують код. Console.WriteLine("File error: " & ex.Message)
== Error handling ==
* System.IO;
* System.Net.Http;
* System.Text.Json;
* System.Data;
* System.Threading.Tasks;
* Microsoft.VisualBasic namespace;
* third-party NuGet packages. Окремо варто відзначити які підтримують Visual Basic runtime, string operations і інші VB-специфічні функції ERP. Properties можуть мати custom getter/setter:
Міграція COM-залежностей — одна зі складних частин модернізації VB6/VB.NET систем. Public Class CalculatorTests
Console.WriteLine("Bark")
== Коли Visual Basic особливо корисний ==
If customer IsNot Nothing Then
У сучасному VB.NET краще використовувати <code>Try/Catch</code>, а не старий стиль <code>On Error Resume Next</code>. Для нових .NET-проєктів частіше обирають C#, а VB часто залишається для підтримки й еволюції існуючих систем.
Для звітності K2 ERP Visual Basic здатна бути доречним, якщо потрібно підтримувати старі Excel/VBA-звіти. Private _name As String
Public Async Function LoadDataAsync() As Task(Of String)
- починається новий .NET backend;
- потрібен ASP.NET Core cloud-native сервіс;
- потрібен cross-platform UI;
- потрібна велика community для найму;
- потрібні найновіші .NET language features;
- проєкт активно розвиватиметься багато років;
- команда вже функціонує на C#;
- потрібна AI/data engineering ERP-платформа;
- потрібно створювати modern web frontend. Dim client As New HttpClient()
Methods у Visual Basic бувають Sub і Function. End Set Visual Basic підтримує класи. У бізнес-системах це небезпечно: програма здатна продовжити роботу після збою й пошкодити інформаційні дані або сформувати неправильний результат. Для нових .NET-проєктів варто серйозно розглядати C#, але для діючих VB-рішень часто розумніше не переписувати все, а поступово покращувати, тестувати й модернізувати.== Visual Basic у .NET 10 ==
== Designer == це мова програмування Microsoft із довгою історією, яка сьогодні найчастіше означає '''Visual Basic виступає ключовою рисою '''Visual Basic'''.NET''' або '''VB.NET''' — об’єктно-орієнтовану мову для платформи .NET.== Security == == Міграція з VB6 ==
Microsoft Access історично тісно пов’язаний із VBA. Visual Basic найкраще сприймати як мову підтримки, модернізації й еволюції існуючих бізнес-систем.== Visual Basic і Access ==
NuGet робить доступними багато .NET-бібліотек, але потрібно перевіряти сумісність із Visual Basic і конкретним типом проєкту. * Class — клас, SEO-опис об’єкта. * Visual Studio — основна IDE для Visual Basic.
<pre> End Class <pre> Він підтримує: |- | '''Visual Basic''' || читабельність, legacy VB/VBA-світ, Windows Forms, прості бізнес-застосунки |- | '''C#''' || активний дорожня карта розвитку, нові .NET workloads, ASP.NET Core, cloud, modern backend, ширша community |} == Практичний висновок ==
End Class * команда вже функціонує на C#; * потрібні нові .NET workloads; * застосунок активно розвивається; * VB-код складно підтримувати; * потрібно залучати більше розробників; * потрібен ASP.NET Core, cloud або modern backend; * legacy architecture заважає розвитку. Public Overridable Sub Speak() Option Strict On Міграція на C# здатна бути доречною, якщо: Але міграція не завжди потрібна.
- мова має stable design, а не активний інноваційний дорожня карта розвитку;
- нові workloads зазвичай не додаються;
- C# має активнішу ecosystem і community;
- VB6/VBA/VB.NET швидко плутати;
- legacy-код часто має архітектурні й security-проблеми;
- для нових cloud/backend/web-проєктів VB рідко виступає як першим вибором.== Logging ==
Пояснення термінів
Visual Basic .NET здатна використовувати NuGet packages. End Sub
Return "Done"
Event-driven programming була однією з причин популярності Visual Basic для desktop-застосунків.== NuGet ==
Microsoft documentation має окремий напрям Windows Forms apps для Visual Basic.== Visual Basic 6 == Visual Basic — важлива мова Microsoft із великою спадщиною в бізнес-застосунках, Windows Forms, Office automation і legacy-системах.[2]
== Option Strict ==
'''Function''' повертає значення:
Це зробило Visual Basic дуже популярним для швидкої розробки Windows desktop-застосунків.[[Категорія:VB.NET]]
If items.Count = 0 Then
Dim names As New List(Of String)()
VBA не виступає як VB.NET, але синтаксис схожий. У старих Windows-системах Visual Basic часто працював із COM. '''Windows Forms''' або '''WinForms''' — класичний framework для desktop-застосунків Windows. # Для VB.NET вмикати <code>Option Strict On</code>. Dim response = Await client.GetStringAsync("https://api.example.com/items")
</div>
Try
Visual Basic і VBA часто використовують для Office automation. Sub Main()
Properties — стандартний спосіб описати інформаційні дані класу. * '''COM''' — Component Object Model, стара Windows component technology. Visual Basic і C# працюють на .NET. Visual Studio застосовується для для:
! Public Function Add(a As Integer, b As Integer) As Integer
== Methods ==
End Property Багато Visual Basic-коду виступає як legacy code. У Visual Basic блоки часто завершуються словами:
Visual Basic 6 або VB6 — класична реліз системи Visual Basic до переходу на .NET. Console.WriteLine(response)
Return Nothing
Приклад:
- читабельний синтаксис;
- низький поріг входу;
- Visual Studio tooling;
- Windows Forms;
- Office/VBA-спадщина;
- .NET libraries;
- type-safe .NET apps;
- зручність для старих бізнес-процесів;
- багато існуючого legacy-коду. Sub не повертає значення:
Приклад:
- HTTP-запитів;
- роботи з файлами;
- database operations;
- UI-застосунків;
- background operations.
Добра практика:
- CRUD;
- database-first;
- model-first historically;
- code-first;
- LINQ queries;
- migrations;
- business data apps. Public Module MathHelpers
Приклад:
Приклад:
- ловити помилки на етапі компіляції;
- уникати випадкових conversion bugs;
- писати type-safe code;
- зробити код ближчим до сучасного .NET-стилю. * Event — подія, часто застосовується для в UI. Console.WriteLine("Unexpected error: " & ex.Message)
VBA — Visual Basic for Applications. Assert.AreEqual(5, result)
* '''Visual Basic''' — мова програмування Microsoft. * '''Option Strict''' — конфігурація, яке обмежує небезпечні неявні перетворення. End Function
Реалізація: Visual Basic .NET здатна використовувати стандартні .NET test frameworks:
VB6 не виступає як VB.NET. Visual Basic-застосунки мають ті самі security-ризики, що й інші бізнес-програми.[3]
Module Program Dim count = 10
Null і Nothing
Visual Basic підтримує generics. Червоний прапорець: On Error Resume Next здатна приховати помилки. Option Strict контролює неявні перетворення типів і late binding. End Function
Visual Basic і тестування
Events — важлива частина Visual Basic, особливо для Windows Forms. * VBA — Visual Basic for Applications, мова макросів Office. Console.WriteLine(text)
Стратегія Microsoft щодо Visual Basic
End Function
<pre> Public Class PdfReportService '''Option Explicit''' вимагає оголошення змінних перед використанням.
Сценарії: Console.WriteLine(customer.Name) Dim result = Calculator.Add(2, 3) Public Property Id As Integer == Option Infer == _name = value Приклад: через Документація .NET 10 зазначає, що Visual Basic compiler тепер інтерпретує й застосовує <code>unmanaged</code> generic constraint, а так само враховує <code>OverloadResolutionPriorityAttribute</code>. '''Практична порада:''' для сучасного VB.NET-коду краще використовувати <code>Option Strict On</code>. * '''Interface''' — контракт для класів. Dim title = "Report"
Public Class ReportGenerator
Головна ідея
- legacy desktop utility;
- старий інтеграційний компонент;
- Office/VBA-звіт;
- Windows Forms admin tool;
- проміжний інструмент імпорту/експорту;
- старий компонент, який треба мігрувати;
- автоматизація процесів Excel-звітів;
- клієнт ERP до API K2 ERP.
Приклад:
[[Категорія:Програмування]]
Set(value As String)
Access використовують для:
{{SEO|title=Visual Basic — мова програмування Microsoft для .NET, Windows Forms, VBA-спадщини, desktop, legacy-систем і type-safe застосунків|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 у бізнесі, інтеграціях та підтримці старих систем.|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|alternativeTo=повна міграція старих VB-систем без потреби; ручна підтримка legacy Windows-застосунків; VBA-макроси без структури; старі VB6-застосунки без плану модернізації; desktop-утиліти без Visual Studio; .NET-застосунки без type safety; підтримка Windows Forms без документації; переписування бізнес-логіки без аналізу ризиків}}
Назва Visual Basic здатна означати різні речі. * '''VB6''' — класичний Visual Basic 6 до .NET.<TestMethod>
Для існуючих VB-систем часто логічно підтримувати Visual Basic, якщо переписування не дає бізнес-користі.== Visual Basic і .NET libraries ==
Розробник здатна:
* не вмикати Option Strict;
* використовувати On Error Resume Next;
* писати всю логіку у формах;
* не мати tests;
* зберігати SQL у UI event handlers;
* використовувати глобальні змінні без контролю;
* не документувати legacy workflows;
* тримати паролі в коді;
* боятися змінювати legacy-код без тестів;
* переписувати все одразу без плану;
* плутати VBA, VB6 і VB.NET;
* не перевіряти сумісність із сучасним .NET. End Class
Visual Basic здатна бути невдалим вибором, якщо:
Сучасний C# має nullable reference types, але Visual Basic не розвиває новий синтаксис так активно.== Entity Framework ==
From p In products
'''Module''' — тип, який містить shared functions, procedures або variables. * <code>End If</code>;
* <code>End Sub</code>;
* <code>End Function</code>;
* <code>End Class</code>;
* <code>End Module</code>.== Namespaces ==
Visual Basic дуже часто використовували саме з Windows Forms. End If
Console.WriteLine(message)
== Visual Basic і C# ==
End Class
Async/Await
У Visual Basic застосовується для Nothing. # інвентаризація;
- тестування критичних сценаріїв;
- виділення бізнес-логіки;
- заміна залежностей;
- wrapper або API layer;
- поступове переписування;
- паралельна експлуатація;
- архівування старої системи. Order By p.Name
LINQ корисний для:
Interfaces корисні для testing, dependency injection і clean architecture. * service layer;
- repository/data access layer;
- DTO;
- validation layer;
- logging;
- tests;
- configuration;
- dependency boundaries. Inherits Animal
Namespace Company.Project.Reports * Newtonsoft.Json; * Entity Framework Core; * Dapper; * Serilog; * xUnit; * NUnit; * MSTest. Dim expensiveProducts = Async/await корисний для:
Поширені помилки: Finally Generics потрібні для type-safe collections, services, repositories і reusable code. # Поступово покривати legacy-код тестами. * Windows Forms — desktop UI framework для Windows-застосунків. End Sub
Visual Basic підтримує inheritance. Legacy Visual Basic-застосунки часто мають слабке logging. Public Interface IReportService
Visual Basic .NET
- Visual Basic підтримується;
- Visual Studio experience для VB продовжує покращуватися;
- VB здатна використовувати нові .NET APIs;
- новий синтаксис додається обережно;
- нові workloads зазвичай не додаються;
- C# залишається головною мовою для активних нових .NET-напрямів.
Компілятор сам визначить, що total — Integer, а title — String.== Generics ==
Потрібно врахувати: == Option Explicit == Офіційна стратегія Microsoft каже, що Visual Basic залишиться straightforward and approachable language зі stable design. Вони можуть використовувати ті самі .NET libraries, але мають різний синтаксис і різну стратегію розвитку. # Додавати logging. Visual Basic підтримує type inference: Option Explicit On Microsoft зберігає Visual Basic як стабільну й підтримувану мову, але не розвиває її так активно, як C#. * '''Nothing''' — відсутність значення або null-like значення у Visual Basic.
Public Class Product
Visual Basic і COM
як приклад: