VB.NET، یا Visual Basic .NET، یک زبان برنامهنویسی شیءگرا است که توسط مایکروسافت توسعه یافته است. این زبان بخشی از فریمورک .NET است و بهگونهای طراحی شده که تکاملیافته زبان Visual Basic باشد و محیطی قوی برای توسعهدهندگان فراهم کند تا برنامههای ویندوز، برنامههای وب و خدمات را ایجاد کنند. VB.NET به خاطر نحو (Syntax) آسانی که دارد شناخته شده است و این امر آن را در میان برنامهنویسان تازهکار و کسانی که از نسخههای قبلی Visual Basic به این زبان منتقل میشوند، محبوب کرده است.
VB.NET در اوایل دهه 2000 بهعنوان یک بهروزرسانی عمده برای زبان برنامهنویسی کلاسیک Visual Basic معرفی شد. هدف این بود که آن را قدرتمندتر و چندمنظورهتر کند با ادغام آن با فریمورک .NET، که دسترسی به تعداد زیادی کتابخانه و مؤلفه را فراهم میکند. VB.NET از ابتدا برای بهرهبرداری از قابلیتهای زمان اجرای زبان مشترک (CLR) ساخته شده است که ویژگیهایی مانند جمعآوری زباله، ایمنی نوع و بهبود عملکرد را به ارمغان آورد.
VB.NET از نسخههای قبلی Visual Basic الهام میگیرد و همچنین مفاهیم را از زبانهای برنامهنویسی دیگر مانند C# و Java ادغام میکند. طراحی آن نیاز به یک محیط برنامهنویسی مدرن را منعکس میکند در حالی که سادگیای که Visual Basic را مشخص میکند، حفظ میشود. بهعنوان بخشی از اکوسیستم .NET، ارتباط نزدیکی با C# و F# دارد که هر دو از CLR و کتابخانههای مشابهی استفاده میکنند.
امروز، VB.NET همچنان در حال تکامل است، اگرچه در مقایسه با C# برای توسعه برنامههای جدید کاهش محبوبیت را تجربه کرده است. مایکروسافت هنوز هم VB.NET را نگهداری میکند و این زبان در آخرین نسخههای Visual Studio پشتیبانی میشود و امکان توسعه برنامههای فرم ویندوز، برنامههای WPF و برنامههای وب ASP.NET را فراهم میکند.
VB.NET از برنامهنویسی شیءگرا بهطور کامل پشتیبانی میکند، از جمله کلاسها، وراثت، چندریختی و کپسولهسازی.
Public Class Animal
Public Overridable Sub Speak()
Console.WriteLine("حیوان صحبت میکند")
End Sub
End Class
متغیرها باید با یک نوع داده خاص اعلام شوند که ایمنی نوع را افزایش میدهد.
Dim num As Integer = 10
Dim name As String = "VB.NET"
VB.NET از مدیریت استثنا ساختاری با استفاده از بلوکهای Try...Catch استفاده میکند.
Try
Dim result As Integer = 10 / 0
Catch ex As DivideByZeroException
Console.WriteLine("نمیتوان بر صفر تقسیم کرد.")
End Try
ویژگیها اجازه کپسولهسازی فیلدها را با استفاده از getterها و setterها میدهند.
Public Property Age As Integer
Get
Return _age
End Get
Set(value As Integer)
_age = value
End Set
End Property
رویدادها و نمایندگان در VB.NET از شهروندان درجه یک هستند و برنامهنویسی مبتنی بر رویداد را امکانپذیر میسازند.
Public Event DataReceived As EventHandler
VB.NET دارای قابلیتهای داخلی زبان یکپارچه پرسوجو (LINQ) برای دستکاری دادهها است.
Dim numbers = New List(Of Integer) From {1, 2, 3, 4, 5}
Dim evenNumbers = From n In numbers Where n Mod 2 = 0 Select n
این زبان اجازه میدهد تا خوانایی بهتری با مجاز بودن ادامه خط ضمنی زمانی که عبارات در خطوط مختلف تقسیم میشوند، فراهم کند.
Dim query = "SELECT * FROM Users " &
"WHERE Age > 18"
VB.NET اجازه میدهد تا متدها پارامترهای اختیاری با مقادیر پیشفرض داشته باشند.
Public Sub DisplayMessage(Optional ByVal message As String = "سلام")
Console.WriteLine(message)
End Sub
با استفاده از کلمه کلیدی Dim
، VB.NET میتواند نوع یک متغیر را با استفاده از کلمه کلیدی As
استنتاج کند و نحو را سادهتر کند.
Dim age = 25 ' age به عنوان یک عدد صحیح استنتاج میشود
VB.NET از نظرات چندخطی با استفاده از '''
و REM
پشتیبانی میکند.
''' این یک نظر چندخطی است
''' میتواند شامل چندین خط باشد
ابزار اصلی برای توسعه برنامههای VB.NET، Microsoft Visual Studio است. این محیط توسعه یکپارچه (IDE) جامع را فراهم میکند که شامل ویرایشگر کد، ابزارهای اشکالزدایی و طراحان برای رابطهای کاربری است.
کد VB.NET با استفاده از کامپایلر Visual Basic .NET که بخشی از SDK .NET است، به زبان میانجی (IL) کامپایل میشود. IL حاصل میتواند بر روی هر پلتفرمی که از زمان اجرای .NET پشتیبانی میکند، اجرا شود.
برای ساخت یک پروژه در Visual Studio، توسعهدهندگان معمولاً یک پروژه جدید ایجاد میکنند، الگوی VB.NET را انتخاب میکنند، کد مینویسند و سپس از گزینه 'Build' در IDE استفاده میکنند. پروژهها همچنین میتوانند با استفاده از ابزارهای خط فرمان مانند MSBuild ساخته شوند.
VB.NET در برنامههای مختلفی استفاده میشود، از جمله:
VB.NET شباهتها و تفاوتهایی با سایر زبانهای برنامهنویسی دارد.
C# در رویکرد شیءگرا و نحو بسیاری از ساختارها مشابه است، اما C# به دلیل ویژگیهای مدرن و پشتیبانی قوی جامعه، بیشتر برای پروژههای جدید پذیرفته شده است.
Java و VB.NET اصول شیءگرا را به اشتراک میگذارند، اما در نحو و محیطهای کاربردی متفاوت هستند. Java مستقل از پلتفرم با فلسفه "یک بار بنویس، در هر جا اجرا کن" است، در حالی که VB.NET بهطور قوی به محیط ویندوز وابسته است.
Python اغلب به دلیل سادگی و کتابخانههای گستردهاش برای اسکریپتنویسی سریع و تحلیل داده ترجیح داده میشود، در حالی که VB.NET ساختاریافتهتر و نوعدارتر است.
برای برنامههای وب، JavaScript برای توسعه سمت کاربر مناسبتر از VB.NET است، زیرا بهطور بومی در مرورگرها اجرا میشود و برای تعاملات وب مدرن ضروری است.
Ruby، بهویژه با فریمورک Rails، به توسعهدهندگان اجازه میدهد تا برنامههای وب را به سرعت ایجاد کنند، در حالی که VB.NET بیشتر برای راهحلهای دسکتاپ و شرکتی مناسب است.
Go در همزمانی و عملکرد برای خدمات ابری برتری دارد، در حالی که VB.NET عمدتاً در برنامههای دسکتاپ و شرکتی استفاده میشود.
R برای تحلیلهای آماری تخصصی است، در حالی که VB.NET بیشتر عمومی و متمرکز بر کاربرد است.
در حال حاضر، ابزارهای محدودی بهطور خاص برای ترجمه منبع به منبع از VB.NET به زبانهای دیگر طراحی شدهاند. یکی از ابزارهای قابل توجه Tangibles است که میتواند کد VB.NET را به C# تبدیل کند. برخی نکات برای ترجمه شامل: