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

Visual Basic .NET

Матеріал з Вікіпедії — вільної енциклопедії.

Visual Basic .NET — найсучасніша BASIC-базована мова програмування. Станом на листопад 2013 року найновішою є версія VB.NET 2013.
Працює ця мова на базі .NET-фреймворку (працює за допомогою CLR), для роботи з яким також розроблена мова програмування C#, до 2005 року існувала J#, а починаючи з 2010 додана F#.
VB.NET — є першою з сімейства повністю об'єктно-орієнтованою мовою, у ній підтримується всі основні принципи ООП, за винятком множинного успадкування.
Частково також підтримується фреймворком Mono.

Історія

VB.NET розвивається як частина Visual Studio починаючи з 2001 року, перший офіційний реліз у 2002 (посів місце Visual Basic і відповідно версії нумеруються починаючи з числа 7)

  1. Visual Basic.NET (VB 7.0) — в 2002 році з Visual C# і ASP.NET.
  2. Visual Basic.NET 2003 (VB 7.1) — з .NET Framework 1.1.
  3. Visual Basic 2005 (VB 8.0) — кінець жовтня 2005 року, у складі Visual Studio 2005 (.NET 2.0), частково підтримує проекти попередньої версії.
  4. Visual Basic 2005 Express — урізана безкоштовна версія не для комерційних цілей.
  5. Visual Basic 2008 (VB 9.0) — Visual Studio 2008 (.NET 3.5, у перших релізах — 3.0), повністю підтриммує проекти попередньої версії.
  6. Visual Basic 2008 Express — урізаний попередній.
  7. Visual Basic 2010 (VB 10.0) — Visual Studio 2010 (.NET 4.0), повністю підтримує дві попередні версії, призначена для програмування під віндовс від XP до 7.
  8. Visual Basic 2010 Express — урізаний попередній.
  9. 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.
  10. Visual Basic 2012 Express — урізаний попередній (існує тільки як частина Visual Studio Express, бо Microsoft починаючи з цієї версії не випускає окремих мов у експрес-варіантах).
  11. Visual Basic 2013 — Visual Studio 2013 (.NET 4.5.1), призначена для Windows 8.1 та Windows Store, за системними вимогами та можливостями (при застосуванні з попередніми версіями) не відрізняється від попереднього випуску, тільки не підтримує розробку під Windows XP.

На початок 2014 року вийшов також Update 1 до неї. На початку червня 2014 року вийшов Update 2.

Назва мови програмування

VB — абревіатура від Visual Basic — безпосереднього предка мови та .NET — використовувана платформа. (хоча повна назва мови — Visual Basic .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 / Intel64).
Опис статичного класу здійснюється конструкцією «Module ... End Module», що створює ілюзію ніби у мові є процедури, які не належать ніякому класу бо доступ до всіх членів такого класу (за вдсутності конфліктів імен) здійснюється через загальний простір імен. Це можна проілюструвати наступними прикладами:

Module MainModule
 Sub Main
  Console.WriteLine(Func1)
  Console.WriteLine(Func2)
 End Sub
End Module
Module M1
 Public Func1() As Integer
  Return 1
 End Function
End Module
Module M2
 Public 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 Func1() As Integer
  Return 1
 End Function
End Module
Module M2
 Public 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

Порівняння з іншими мовами

Найближчою (майже ідентичною) за фукціональними властивостями є 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).
  • Досить велика але рідко потрібна (для забезпечення належної роботи код необхідно переписувати) бібліотека сумісності з Visusl 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