**Visual Basic.NET** là một công cụ lập trình hỗ trợ ngôn ngữ lập trình **Visual Basic.NET** trong bộ công cụ lập trình Microsoft Visual Studio 2005. Trong Microsoft Visual Studio 2005, có thể kết hợp các project (dự án) viết bằng các ngôn ngữ khác như C#, J#,... với VB2005.

VB2005 được chạy trên nền *.NET Framework* 2.0, khi đóng gói chương trình cũng cần bộ Framework này để chạy chương trình. Cũng như VB 6.0, VB2005 cũng là ngôn ngữ lập trình hướng đối tượng.

Lịch sử
-------

Microsoft Visual Basic. NET hay còn gọi là VB.NET được Microsoft phát triển từ cuối thập niên 1990 và ra phiên bản đầu vào năm 2002 (cùng với Visual C# và ASP.NET). Phiên bản mới nhất hiện nay là Visual Basic. NET 2015.

Cú pháp
-------

Cũng như Visual Basic, chú thích trong Visual Basic.NET sử dụng dấu nháy đơn ('), các lệnh trên cùng một dòng phân cách nhau bởi dấu hai chấm (:), và câu lệnh quá dài có thể nối xuống dòng dưới bằng dấu gạch dưới (\_).

Một chương trình Visual Basic. NET mang tên "Hello, World":

```
 Module HelloWorld
 Sub Main()
 Console.WriteLine("Hello, World")
 Console.ReadLine() 
 End Sub
 End Module

```

Đây là một loại chương trình cổ điển nhưng đầy đủ về mặt cú pháp thường dùng.

Kết quả xuất ra màn hình như sau:

```
Hello, World
```

Các câu lệnh trong thân chương trình
------------------------------------

* Từ Khoá `Module`... `End Module`

Module có nghĩa là Đơn thể, một chương trình có thể chứa nhiều đơn thể. Từ khoá End Module là từ khoá kết thúc chương trình không giống, không như Pascal hoặc các ngôn ngữ khác như: C/C++, J#, Java. Visual Basic không cần có dấu phân cách giữa các câu lệnh, các câu lệnh phải nằm khác dòng.
* Từ khoá `Sub`... `End Sub`

Sub (thủ tục) một chương trình có thể chứa một hoặc nhiều thủ tục. Thủ tục chính có mang hàm `Main()` là `Sub Main()`. Hàm `Main()` của VB.NET là hàm bắt đầu của một chương trình. Khi viết chương trình VB.NET bạn phải đặt hàm Main() tại một "Sub chính" trong chương trình. nếu không đặt hàm `Main()` vào chương trình thì chương trình không thể chạy được. Có thể nói hàm `Main()` là đầu mối của chương trình.
`End Sub` là câu lệnh kết thúc thủ tục.
* Câu lệnh Console.WriteLine()

Câu lệnh này dùng để xuất chuỗi ra màn hình cụ thể là chuỗi "Hello, World".
* Dấu nháy kép ("")

Chuỗi ký tự trong Visual Basic. NET được rào trong dấu nháy kép ("")
* Câu lệnh Console.ReadLine()

Câu lệnh này dùng để đọc dữ liệu từ bàn phím
Câu lệnh này chờ khi bạn nhấn Enter để thoát khỏi màn hình Console (Màn hình của MS-DOS).

* Các cú pháp khác:

Khai báo biến sử dụng hai từ khoá `Dim` và `As` sau đó là kiểu dữ liệu. Ví dụ:

```
Dim A As Integer

```

Trong đó:
`Dim` và `As` là từ khoá khai báo biến A và `Integer` (số tự nhiên) là kiểu dữ liệu.

Ví dụ chương trình
------------------

Chương trình tính diện tích chu vi hình chữ nhật

```
 Module Chunhat
 Sub Main()
 Console.Write("\_ Nhập vào chiều dài hình chữ nhật: ")
 Dim a As Decimal = Console.ReadLine() 'Decimal nghĩa là số thập phân
 Console.Write("\_ Nhập vào chiều rộng hình chữ nhật: ")
 Dim b As Decimal = Console.ReadLine()
 
 Dim KetQua1 As Decimal = (a+b)\*2 'Có thể đặt tên biến là CV
 WriteLine("\_ Chu vi hình chữ nhật là: {0}",KetQua1)

 Dim KetQua2 As Decimal = a\*b 'Có thể đặt tên biến là DT 
 WriteLine("\_ Diện tích hình chữ nhật là: {0}",KetQua2)'{0} ở đây là chỗ chứa dữ liệu của biến khi xuất dữ liệu nếu không có nó dữ liệu sẽ không được xuất
 End Sub
 End Module

```

Các phát triển của VB2005 so với VB6
------------------------------------

### 1/ Tự động hoàn thành cấu trúc

VB2005 có khả năng tự hoàn thành các cấu trúc như vòng lặp, rẽ nhánh. Ví dụ, bạn nhập:

```
For i = 0 to 10

```

Và nhấn `Enter`, VB2005 tự động trả về:

```
For i = 0 to 10
 
Next

```

Và đặt vị trí con trỏ ở giữa.

### 2/ Gọi gián tiếp API và chuyển đổi kiểu dữ liệu

- Trong VB2005, việc gọi API có thể nói là rất ít, vì VB2005 có nhiều hàm, thủ tục gọi gián tiếp. Ví dụ: Trong VB6, bạn cần gọi API ShellExecute để Windows chạy một tập tin bằng ứng dụng đúng thì với VB2005 thì chỉ cần gọi Process.Start
- Ngoài ra, kiểu dữ liệu trong VB2005 có thay đổi đôi chút, ví dụ kiểu Integer của VB2005 tương ứng với Long trong VB6.0, còn kiểu Long của VB2005 là kiểu Int64 có tới tối đa là hơn 9.000.000.000.000, vì vậy khả năng Overflow là rất thấp.

### 3/ Tự động thụt vào đầu dòng

Đây là chức năng rất hay của VB2005, nó giúp code gọn, dễ xem và bẫy lỗi.

### 4/ Debug lỗi thông qua cửa sổ Watch

Đây là chức năng giúp người dùng biết giá trị của biến mà không cần phải nhập ?<tên biến>  và nhấn Enter, rất thích hợp với các code dài.

Tham khảo
---------

1. 1 2
2. ↑  Dollard, Kathleen. "Visual Basic in.NET Core 3.0". *blogs.msdn.microsoft.com*.
3. ↑

| * x
* t
* s
Các biến thể của ngôn ngữ lập trình BASIC |
| --- |
| Cổ điển | 
* Altair BASIC
* Applesoft BASIC
* Atari BASIC
* Atari Microsoft BASIC
* Atari ST BASIC
* BASICA
* BASIC A+
* BASIC Programming
* BASIC XE
* BASIC XL
* Casio BASIC
* Chipmunk Basic
* Color BASIC
* Commodore BASIC
* Extended Color BASIC
* Dartmouth BASIC
* Disk Extended Color BASIC
* Family BASIC
* GFA BASIC
* GW-BASIC
* HP BASIC for OpenVMS
* HP Time-Shared BASIC
* IBM BASIC
* Integer BASIC
* Locomotive BASIC
* Mallard BASIC
* Microsoft BASIC
* MSX BASIC
* Pure Basic
* Rocky Mountain BASIC
* S'-BASIC (Tandy, Casio, Sharp Pocket Computers)
* ScriptBasic
* Sinclair BASIC
* Southampton BASIC System
* STOS BASIC
* TI BASIC (TI 99/4A)
* TI-BASIC (calculators)
* TI Extended BASIC (aka XBasic)
* Tiny BASIC
* Turbo-Basic XL
* Tymshare SUPER BASIC
* UBASIC
* Vilnius BASIC
* XBasic

 |
| Hướng thủ tục | 
* AmigaBASIC
* AMOS BASIC
* ASIC
* BBC BASIC
* Beta BASIC
* DarkBASIC
* FreeBASIC
* FutureBASIC
* GFA BASIC
* GLBasic
* Liberty BASIC
* Microsoft Small Basic
* PowerBASIC
* PureBasic
* QBasic
* QB64
* QuickBASIC
* SmallBASIC
* SuperBASIC
* ThinBasic
* True BASIC
* Turbo Basic
* XBasic
* Xblite
* Basic4ppc
* Visual Test
* B4J

 |
| Với mở rộng đối tượng | 
* AutoIt
* Basic For Qt (KBasic)
* BlitzMax
* Chipmunk Basic
* FreeBASIC
* Gambas
* GLBasic
* Monkey X
* OpenOffice Basic
* PowerBASIC
* ProvideX
* RapidQ
* REALbasic
* Run BASIC
* Visual Basic
* Visual Basic .NET
* Xojo

 |
| Cho thiết bị di động | 
* B4X
* Basic4android (B4A)
* Basic4ppc
* GLBasic
* NS Basic
* Basic4ios (B4i)

 |
| Microsoft | 
* Microsoft BASIC
	+ MBASIC
	+ IBM BASIC/BASICA
	+ GW-BASIC
	+ QuickBASIC
	+ QBasic
* VBScript
* Visual Basic
* VBA
* Visual Basic .NET
* Embedded Visual Basic
* VB 5 for Microsoft Excel 5.0
	+ VSTO
	+ VSTA
* WordBASIC
* TRS-80 Basics (Level I, Level II, Level III)
* Microsoft Small Basic

 |
| Phần mềm của hãng thứ 3 mô phỏng VB | 
* B4X
* Basic For Qt
* Gambas
* Hummingbird Basic
* LotusScript
* WinWrapBasic
* Xojo

 |