Visual Basic .NET

**Visual Basic .NET** (VB.NET), օբյեկտ կողմնորոշված ծրագրավորան լեզու, որը կարելի է համարել Microsoft .NET ծրագրում իրականացվող Visual Basic ծրագրավորման լեզվի էվոլյուցիայի հերթական փուլը։ Ավելի հին վերսիաների հետ (Visual Basic 6.0) VB.NET-ը չունի ոչ մի ընդհանրություն։ VB.NET-ի կողմից հին տարբերակների (*.vbp) նախագծերի մշակումը հնարավոր է միայն հատուկ ծրագրով (Migration Wizard) նախնական վերափոխումից հետո։ Սակայն, որպես կանոն, վերափոխելուց հետո պահանջվում է տեքստերի լրացուցիչ ստուգում։

## Տարբերակներ
VB.NET-ի տարբերակներն են՝
* **Visual Basic .NET** (VB 7.0), թողարկվել է 2002 թվականին C Sharp-ի և ASP.NET-ի հետ 
* **Visual Basic .NET 2003** (VB 7.1), թողարկվել է .NET Framework 1.1 հետ 
* **Visual Basic 2005** (VB 8.0), թողարկվել է 2005 թվականի հոկտեմբերի վերջին
* **Visual Basic 2005 Express**, թողարկվել է 2005 թվականի նոյեմբերի սկզբին Express-ի այլ ծրագրերի հետ միասին, ներառյալ SQL Server 2005-ը։ Պահանջում է .NET Framework 2.0
* **Visual Basic 2008** (VB 9.0)
* **Visual Basic 2008 Express**, անվճար պարզեցված տարբերակը, որը թողարկվել է նոր արտադրանքին զուգահեռ։ Այն առաջարկվում է անվճար ներբեռնման և օգտագործման համար։ Պահանջում է .NET Framework 3.5.
* **Visual Basic 2010** (VB 10.0) պահանջում է.NET Framework 4.
* **Visual Basic 2010 Express**, այն առաջարկվում է անվճար ներբեռնման և օգտագործման համար։ Պահանջում է .NET Framework 4
* **Visual Basic 2012** (VB 11.0) պահանջում է .NET Framework 4.5
* **Visual Basic 2013** (VB 12.0) պահանջում է .NET Framework 4.5.1
* **Visual Basic 2015** (VB 14.0) պահանջում է .NET Framework 4.6
* **Visual Basic 2017** (VB 15.0) պահանջում է .NET Framework 4.6
***Visual Basic 2019** (VB 16.0) պահանջում է .NET Framework 4.8

## Փոփոխություններ VB 6.0-ի հետ համեմատ
VB.NET-ի հիմնական փոփոխություններն են.
 
# Օբյեկտ կողմնորոշված ծրագրավորման հասկացությունների աջակցությունը կոնստրուկտորների և դեստրուկտորների, ժառանգման, մեթոդի համընկնման (Overrides) հետ և այլն։ 
#  Կոմպիլիացիա բայթկոդում, որը կատարվում է common language runtime (CLR) վիրտուալ մեքենայով։
#  Օգտագործում է .NET Framework-ում ներառված օբյեկտների գրադարանների ամբողջ հավաքածուն, ներառյալ ֆորմաների հետ աշխատանքի հզոր միջոցներ (Windows Forms), տվյալների բազաները (ADO.NET), գրաֆիկները (GDI+), անվտանգության սարքավորումները, վեբ էջերը (ASP.NET) և այլն։
#  Բազմաշերտ աջակցություն
#  Կառուցվածքային բացառությունների գործարկման աջակցություն (structured exception handling, SEH)

### Ծրագրի կառուցվածք
* Interface խումբը՝ դասի նախատիպեր, Implements՝ նրանց ռեալիզացիան
* Namespaces խումբը, որն ապահովում է անունների կոնֆլիկտների բախման կանխարգելումը։

### Տվյալներ
* * Տիպերի կոշտ ստուգման ռեժիմ (Option Strict)  
* *  Նոր կամ փոփոխված տվյալների տեսակներ․  
*    * Char (առանց նշանի բառ, պարունակում է Unicode սիմվոլը)
*    * String պարունակում է Unicode սիմվոլներ
*    * Short, 16 բիթ ( −32768 մինչև 32767)
*    * Integer, 32 բիթ ( −2147483648 մինչև 2147483647)
*    * Long (ամբողջ թիվ, 64 բիթ, −9223372036854775808 մինչև 9223372036854775807)
*    ** Նրանց առանց նշան տարբերակները
* *** UShort (0 մինչև 65535)
* *** UInteger (0 մինչև4294967295)
* *** ULong (0 մինչև18446744073709551615)
* ** Նշանով բայթ։ SByte.
* ** Decimal (96 բիթային ամբողջ, մասշտաբավորված պահանջվող 10-ի աստիճանի), մոտ 8 \times 10^{28}.
* ** Տվյալների կառուցվածքը Structure-ը Type-ի փոխարեն, և դա, ինչպես դասը թույլ է տալիս մեթոդներ օգտագործել
* ** Variant տիպը անվանափոխվել է Object-ի։ Currency, String* երկարություն տիպերը հեռացվել են
* * Նկարագրելիս կարող ենք նշել նախնական արժեքը

### Լեզվի նոր գործիքներ
* Կառուցվածքային բացառությունների մշակում․ Try/Catch/Finally/Throw օպերատորները, Exception օբյեկտը
* Գործողությունների օպերատորների նոր տեսակները։ +=, -=, >>= և այլն
* 2005-ի տարբերակում ավելացել է Continue օպերատորը՝ ցիկլի նոր շրջադարձը {For|Do|While}
* Return օպերատորը վերադարձնում է ցիկլի արժեքը
* AndAlso, OrElse տրամաբանական օպերատորները արգելակում են օպերանդի ավելորդ հաշվարկները։ Eqv, Imp տրամաբանական գործողությունները հեռացվել են
* Ստանդարտ ֆունկցիաների ամբողջությունը և շատ այլ գործառույթներ էապես փոխվել են։

## Օրինակներ
Visual Basic .NET- ի ամենապարզ ալգորիթմի դիագրամը, որը թույլ է տալիս փոխել օբյեկտի հատկության նշանակությունը․
«օբյեկտի անվանում».«հատկություն» = «նշանակություն»

Visual Basic .NET ծրագրի կոդի օրինակ․

```vbnet
Public Class Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Գրաֆիկա
        Using CG = Me.CreateGraphics
             CG.DrawBezier(New System.Drawing.Pen(Color.Blue), 0, 0, 100, 100, 600, 600, 0, 400)
             CG.DrawBezier(New System.Drawing.Pen(Color.Blue), 0, 0, 600, 600, 100, 100, 400, 0)
             CG.DrawLine(New System.Drawing.Pen(Color.Blue), 0, 0, 600, 600)
        End Using
        'Համակարգ
        MessageBox.Show("User name: " + My.User.Name.ToString + vbCrLf + _
                        "Screen name: " + My.Computer.Screen.DeviceName.ToString + vbCrLf + _
                        "Ports count: " + My.Computer.Ports.SerialPortNames.Count.ToString, _
                         "Box Caption", MessageBoxButtons.OK, MessageBoxIcon.Error)
        'Ցանց
        Using WC As New System.Net.WebClient
            WC.DownloadFile("http://server.net/filename.exe", "C:\myfile.exe")
        End Using
    End Sub
    End Class
```

Hello, World

Ծրագրի վահանակում՝

```vbnet
Module Module1
    Sub Main()
        Console.WriteLine("Hello, World!")
    End Sub
End Module
```

Ֆորմայում՝

```vbnet
Private Sub HW()
Dim helloworld As New Label 'объявление новой переменной типа label
        With helloworld 'позволяет указывать свойства объекта без написания его имени
            .Text = "Hello, World"
            .AutoSize = vbYes
            .Font = New Font(.Text, 48)
            .Location = new point(100, 100)
            .Visible = True
        End With
        Me.Controls.Add(helloworld) 'добавление созданного объекта на форму
End sub
```


## Ծանոթագրություններ

## Գրականություն
* 
* 
* 

## Արտաքին հղումներ
* Страница загрузки Visual Basic 2010 Express 
* Практические видео-материалы по Visual Basic 
* Новые возможности Visual Basic 2010 
* Стартовые комплекты и пакеты Power Pack для Visual Basic 
* Статьи, демонстрации, обзор средств и другие сведения о веб-разработке на языке Visual Basic. 
* Bit.Pirit.Info

Կատեգորիա:Microsoft Visual Studio
Կատեգորիա:Ինֆորմատիկա
Կատեգորիա:Համակարգչային լեզուներ
Կատեգորիա:Մայքրոսոֆթ
Կատեգորիա:Օբյեկտ կողմնորոշված ծրագրավորման լեզուներ