آشنایی با ویژوال بیسیک 2005

در این مقاله علاوه بر آشنایی با قابلیت های ویژوال بیسیک دات نت 2 که ویژوال بیسیک 2005 نیز نامیده می شود،باویژگی های مهم نرم افزاری ویژوال استودیوی 2005 نیز آشنا خواهید شد.

این ویژگی ها کم و بیش در سایر زبان های دات نت 2 حضور دارند. در این مقاله فرض بر این است که شما قبلا با زبان برنامه نویسی ویژوال بیسیک دات نت آشنا هستید و اکنون مایلید بدانید نسخه جدید چه ویژگی هایی نسبت به نسخه فبلی دارد. در این مقاله تغییر وتحولات زبان ویژوال بیسیک دات نت در دو گروه از پیشرفت ها بررسی شده است. این دو دسته عبارتند از : پیشرفت های مربوط به ویرایشگر کد(Code Editor) و IDE، قابلیت های جدید زبان برنامه نویسی ویژوال بیسیک دو گروه از قابلیت های جدید و مهم دیگر هم وجود دارند: یکی امکانات جدیدی که ویژوال بیسیک2005برای ساختن برنامه نصب و انتشار از طریق وب تعبیه کرده است و دیگری قابلیت های بهبود یافته IDE برای کار باSQL Server که امیدواریم هر یک از این دو را مفصلا در مقالات جداگانه ای تشریح کنیم.
منبع اصلی برای نگارش این مقاله سایت MSDN و مقالات آن بوده است؛هر چند برای بررسی دقیق تر قابلیت های مورد بحث ،نرم افزار ویژوال بیسیک 2005 را نصب کردم تا از نزدیک کارایی این قابلیت ها و امکانات را بیازماییم.

هم قوی تر ،هم آسان تر
زبان ویژوال بیسیک از قدیم به آسان بودن معروف بوده است. بسیاری از برنامه نویسان به این دلیل به سمت ویژوال بیسیک روی آوردند که مایلند از امکانات یک زبان برنامه نویسی خوب استفاده کنند:بدون اینکه مجبور باشند با سطوح پیشرفته و پیچیده برنامه نویسی که در زبان های دیگر وجود دارد،در گیر شوند. به همین دلیل نسخه 6 ویژوال بیسیک به آسان بودن معروف بود.

در حالی که اغلب برنامه نویسان حرفه ای ،زبان C++ و جاوا را برای کارها و پروژه های پیشرفته ترجیح می دادند. با ورود پلتفرم دات نت به دنیای سیستم عامل ویندوز ،در این وضعیت تغییرات اساسی به وجود آمد. به طوری که برنامه نئیسان پس از گذشت چند ماه از معرفی رسمی زبان های ویژوال بیسیک دات نت و سی شارپ متوجه شدند که این دو زبان از نظر قابلیت های برنامه نویسی تقریبا برابرند و هر دو حتی از C++ هم بهتر نتیجه می دهند.

اما برنامه نویسان ویژوال بیسیک6 خیلی زود به دشوار بودن مهاجرت از یک زبان غیر شی گرا به یک زبان واقعا شی گرا مانند VB.NET پی بردند. با این حال برنامه نویسانی که این مرحله انتقالی را طی کردند و به این نتیجه رسیدند که ویژوال بیسیک دات نت باز هم زبان آسان و جذابی است هر چند برنامه نویس را مجبور می کند خود را به سطح بالاتر و پیشرفته از برنامه نویسی،یعنی دنیای برنامه نویسی شی گرا برساند.

اکنون آن دسته از برنامه نویسانی که سرانجام باVB.NET خو گرفته اند از خود می پرسند: زبان VB.NET 2.0 واقعا چه مزیتی نسبت به نسخه قبلی دارد؟ آیا باز هم باید طی یک روند دشوار ،به نسخه جدید مهاجرت کنیم؟ یا این که ویژوال بیسیک 2005 اساسا نسبت به VB.NET ارتقای مهمی محسوب نمی شود؟
اگر این مقاله را تا انتها دنبال کنید،متوجه خواهید شد که مایکروسافت در نسخه 2005ویژوال استودیو(که شامل ویژوال بیسیک دات نت 2 نیز هست) کوشیده است در کنار ارتقای کیفیت عملکرد Framework 2.0 بار دیگر آن فضای دوست داشتنی و دلچسب دوران ویژوال بیسیک6 را به عرصه برنامه نویسی بازگرداند. بنابر این آنچه که باید در VB.NET منتظرش باشید،یک IDE قدرتمند تر است که برنامه نویسی را از پیش آسان کرده است.
به ویژه باید به مایکروسافت به دلیل دلنشین کردن و ساده تر کردن کار با ابزار های اشکال زدایی و نیز آسان سازی روند مدیریت خطا ها (Exception Handlind) که بسیاری از برنامه نویسان تازه کار از آن فراری هستند، تبریک گفت.
در حقیقت مایکروسافت در نسخه جدید سعی کرده است برنامه نویسان را به کمک یک دو جین ابزار جانبی سودمند با پیچیده ترین تکنیک های برنامه نویسی شی گرا آشتی دهد و اهمیت ویژوال استودیوی 2005 نیز در همین موضوع نهفته است.مجموعه ابزارها و امکانات جدید ویژوال بیسیک دات نت2 در راستای تعهد مایکروسافت به نظریه و رهیافت RAD (Rapid Application Development) که زبان برنامه نویسی ویژوال بیسیک اساسا برای تحقق آن پدیده آمده است،قابل توصیف هستند.

قابلیت های جدید
ویژوال بیسیک دات نت 2 در بر گیرنده چند قابلیت هیجان انگیز ،سودمند و مهم است که مسلما مورد توجه برنامه نویسان علاقمند به این زبان قرار خواهد گرفت .قابلیت اول این است که اگر معتقد بودیم که زبان های ویژوال بیسیک دات نت و سی شارپ حدود 90 درصد مشابه یکدیگرند،اکنون همان اندک تفاوت میان قابلیت های این دو در نسخه دوم دات نت از میان رفته است و به جرات می توان گفت هیچ تفاوت مهمی میان این دو زبان وجود ندارد؛جز اینکه برخی برنامه نویسان گرامر و Syntax زبان سی شارپ را که (شباهت زیادی به جاوا دارد)بیشتر می پسندند.

دو مورد از تفاوتهای جزئی این دو زبان که در نسخه اول دات نت وجود داشت و اینک به مجموعه قابلیت های ویژوال بیسیک افزوده شده است عبارتند از:امکان مستند سازی سورس کد با استفاده از XML و قابلیت Overloading Operator یا تعریف عملگر های اضافی.

XML Documentation
به کمک این قابلیت می توانید اجزای مختلف سورس کد برنامه خود را با فرمت XML مستند کنید. این مستندات قطعه قطعه بعدا می توانند یک سند راهنمای کامل در باره سورس کد بسازد. ویژگی مذکور در ویژوال سی شارپ 2003 وجود دارد، اما ویژوال بیسیک2003 فاقد آن است.

اکنون این فابلیت در نسخه جدید افزوده شده است. استفاده از این فابلیت بسیار آسان است. مثلا اگر تابعی بنویسید و بالای اولین خط آن (قبل از نام تابع) سه بار کاراکتر کوتیشن را تایپ کنید و سپس Enter کنید،با توجه به نام تابع و پارامتر های آن یک قطعه راهنمای خالی با فرمت XML درج می شود که می توانید آن را اصلاح و کامل کنید.

“` <summary>

“`

“` <summary>

“`

<param name="param”> </param>
“` <remarks></remarks>
Sub Testsub(ByVal param1 As Integer)
End Sub

Operator Overloading
یکی دیگر از قالبیت های سودمندی که ویژوال بیسیک 2003 از آن محروم بود،امکان تعریف کردن عملگرهای عمومی ریاضی (4 عمل اصلی )، عملگر های منطقی (NOT , OR, AND) و عملگر های مقایسه ای (مثل >,<,=) برای انواع داده ها،کلاس ها و اشیای تعریف شده توسط برنامه نویس بود. چنان که می دانید در حالت عادی از عملگری مانند + فقط می توان برای جمع زدن دو عدد یا متغییر عددی استفاده کرد.

اما قالبیت Operator Overloading که در دل منطق شی گرایی پلتفرم دات نت وجود دارد،امکان پیوند دادن دو مقدار رشته ای را از طریق این عملگر فراهم می سازد. مثلا می توانید یک متغیر رشته ای با مقدار I am را با یک متغیر دیگر با مقدار a developer به وسیله علامت + جمع بزنید. در این صورت آن عبارت به صورت I am a developer خواهد بود. این ویژگی در برخی از کلاس های دیگر چارچوب دات نت نیز وجود دارد. اما متاسفانه در VB.NET برنامه نویس نمی توانست برای کلاس ها و اشیایی که خود می سازد،از این قابلیت استفاده کند. این محدودیت در VB.NET 2.0 برطرف شده است. مثلا شما می توانید یک نوع داده جدید(Type) تعریف کنید که شامل یک آرایه دو بعدی باشد(مثل یک نقطه در فضای برداری x-y) و برای این کلاس یک عملگر + مخصوص تعریف کنید که وقتی دو متغیر از این نوع را با هم جمع می زنید،مقدارهای بعد اول (X)با هم و مقدارهای بعد دوم (Y) نیز به طور جداگانه با هم جمع شوند.

Reg – Free COM
قابلیت بسیار مهم و جالبی که به ویژوال بیسیک 2005 افزوده شده است،تکنیک Reg – Free COM نام دارد که حتما بسیاری از برنامه نویسان دات نت منتظر آن بودند.

اغلب برنامه نویسان ویژوال بیسیک6 به خاطر می آوردند که یکی از دردسرهای مهم برنامه نویسی برای سیستم عامل ویندوز ،ساختن برنامه نصب (Installation) و ثبت کامپوننت های عناصر اصلی برنامه در رجیستری ویندوز بود. دو کابوس همیشگی برنامه نویسان ،نحوه نصب عناصر ActiveX وDLL های حاوی اشیا COM وCOM+ بود.
این مشکل چندان اهمیت داشت که برنامه نویسان به شوخی نام DLL Hell یا جهنم DLL را بر آن نهاده بودند. خوشبختانه پلتفرم دات نت این مشکل را به طور عمده حل کرد؛زیرا به دلیل حضور چهارچوب دات نت در سیستم عاملی که قرار است یک برنامه نوشته شده با Visual Studio.NET روی آن اجرا شود، دیگر نیازی به رجیستر کردن کامپوننت ها و اشیای برنامه نیست و عمل نصب برنامه خیلی ساده با کپی کردن فایل های نرم افزار داخل پوشه روی هارد دیسک انجام می شود.

با این حال عیب کار در اینجا بود که برنامه نویسی که با هزار زحمت توانسته بودند یک شی COM یا ActiveX بی درد سر و بی عیب بسازد،در صورت مهاجرت به پلتفرم دات نت مجبور بودند یا به کلی از خیر این اشیا استفاده می کردند،همچنان ناگزیر از نصب این اشیا به روش قدیمی (به رقم نصب آسان سایر قسمت های ساخته شده بر اساس چارچوب دات نت ) بودند.

اکنون ویژوال بیسیک 2005 با معرفی تکنیک Reg –Free COM این معضل را به طور عمده از پیش روی برنامه نویسان برداشته است. به کمک این تکنیک می توانید اغلب اشیای COM و ActiveX سابق خود را با یک اینترفیس دات نتی بپوشانید. به طوری که بتوان آن ها را مانندDLL های تولید شده بر اساس دات نت خیلی ساده داخل پوشه برنامه کپی کرد و بدون نیاز به ثبت در ریجیستری ویندوز مورد استفاده قرار داد. برای استفاده از این قابلیت کافی است در قسمت Refrence های پروژه به DLL حاوی ActiveX یا COM ارجاعی تعریف کنید. سپس در پنجره Properties گزینه Isolated را معادل ‏True قرار دهید. البته این قابلیت محدودیت هایی هم دارد:یکی اینکه به ویندوز XP یا نسخه های بالا تر نیاز دارد. دیگر اینکه فقط برای کامپوننت های in-proccess قابل استفاده است . این قابلیت همچنین برای آن دسته از اشیای COM که جزیی از سیستم عامل ها هستند کار نمی کند و نهایتا این که نمی توانید از قابلیت مذکور برای آن دسته از اشیای COM و ActiveX که به حضور نرم افزارهای بزرگی مثل Word وابسته هستنداستفاده کنید. این گونه ActiveX ها فقط وقتی کار می کنند که نرم افزار مربوطه (مثلا اکسس) قبلا روی کامپیوتر نصب و رجیستر شده باشد.

My Namespace
یکی از اقداماتی که مایکروسافت برای آسان کردن برنامه نویسی با ویژوال بیسیک دات نت یا به قول مایکروسافت تحقق ایده RAD انجام داده، افزون یک Namespace با نام My است. به کمک این Namespace می توانید به برخی از قابلیت های پر مصرف سیستم عامل ویندوز مانند دسترسی به فایل سیستم ،پخش صوت ،امنیت و تنظیمات سیستم دسترسی سریع داشته باشید. این Namespace شامل اجزای اصلی زیر است:

Application : امکانات مختلفی در اختیار برنامه نویس قرار می دهد. مثلا می تواند داخل سیستم EventLog ویندوز بنویسد و بخواند.
Computer :دسترسی آسان و سریع به برخی قسمت های کامپیوتر مانند فایل سیستم،ماوس،صفحه کلید،ساعت،کلیپ بورد،صوت ،رجیستری،شبکه،پورت سریال و چند بخش دیگر را فراهم می کند.
Forms : از طریق این کلکسیون برنامه نویسان می توانند به instanceهای فرم هایی که ساخته اند دسترسی سریع داشته باشند.
Resources : این کلکسیون یک دسترسی مستقیم به کلاس های زیر را فراهم می کند.

System.Globalization.CultureInfo
System.Resources.ResourceManager

Setting : این کلکسیون دسترسی به تنظیماتی که برای نرم افزار خود ایجاد کرده اید را آسان می سازد.
User : این شی درباره وضعیت امنیتی کاربر کنونی سیستم اطلاعات میدهد. با این کلاس می توانید بفهمید هم اکنون کدام کاربر با چه سطح دسترسی وارد سیستم شده است. قطعه کد 2 چند مثال از کاربرد My را نشان میدهد. قسمت اول داخل تابع Form1Load تمام پارتیشن های هارد دیسک را مرور می کند و میزان فضای خالی آن ها را نشان می دهد.

قسمت دوم کنترل می کند که نام کاربر فعلی چیست و آیا عضو گروه Administrator هست یا نه . قسمت سوم هم یک فایل صوتی را پخش می کند.از آنجا که My فقط یک Namespace است ،می توانید با ایجاد کتابخانه های جدید آن را توسعه دهید و قابلیت ها،کلاس ها و کلکسیون های جدیدی به آن اضافه کنید. بنابراین My در واقع نوعی تفکر برنامه نویسی است. تفکری که بر اساس آن ،کلاس ها و دیگر قابلیت های زبان پر کاربرد ویژوال بیسیک دات نت را می توانید دم دست خود بگذارید تا استفاده از آن ها در سراسر سورس کد سریع و آسان باشد.

Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)
For Each drv As IO.DriveInfo In My.Computer.FileSystem.Drives
If drv.IsReady Then
Debug.WriteLine(drv.AvailableFreeSpace)
End If
Next
MsgBox(My.User.Name & “ : ” & My.User.IsInRole(“Administrators”))
My.Computer.Audio.Play(“C:sound.wav”)
End Sub

منبع : مجله شبکه 65

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اجرا شده توسط: همیار وردپرس