Archive

Archive for the ‘دنیای ویژوال بیسیک’ Category

تكنولوژي دات نت مايكروسافت چيست؟

2009/04/13 9 دیدگاه

لوگوي جديد دات نت مايكروسافت تكنولوژي .net و نسخه هاي visual studio مايكروسافت نوآوري هاي عمده اي  براي برنامه نويسان و سازندگان نرم افزار محسوب مي شوند اين نسخه ها پيشرفتهاي چشمگيري در بهره وري. امنيت. اعتماد پذيري و قابليت ارئه deployability را با خود همرا داشت

پلتفرم يا محيط اجرايي:هر برنامه اي براي مهيا كردن خدمات زمان اجراي خود به محيط اجرا و كتابخانه هاي خود متكي است مثلا برنامه هايي كه با زبان ويژوال بيسك 6.0 نوشته مي شوند براي اجرا درست به visual basic runtime  يا نرم افزارهاي جاوا براي اجرا از java virtual machine استفاده مي كنند و چارچوب دات نت يك كتابخانه تقريبا كامل براي ايجاد برنامه هاي كاربردي براي اجرا روي پلتفرمي به نامCLR يا common language runtime است. محيط اجرايي CLR سرويسهاي اصلي مربوط به يك پلتفرم مانند مديريت حافظه و امنيت را فراهم مي كند. CLR يكي از بخشهاي مركزي دات نت فريم ورك است كه برنامه نوشته شده تحت دات نت را به اجرا در مي آورد برنامه در دو مرحله به دستورالعملهاي ماشين كامپايل مي شود ابتدا برنامه به زبان مياني ترجمه و سپس كامپايلر ديگري آن را به كد ماشين و پلتفرم مورد نظر كامپايل مي كند و در نهايت برنامه با توجه به ماشين اجرا مي شود استفاده از دو كامپايلر سبب به دست آوردن قابليتهاي مختلف  از جمله قابليت انتقال  و حمل  بين سيستم عاملها و زبانهاي ديگر و مديريت است

چارچوب دات نت همانقدر كه در ايجاد برنامه هاي كاربردي ويندوز قدرت و سادگي دارد در ساخت برنامه هاي وب نيز كاراست به طوري كه اين چارچوب تبديل به يكي از پرطرفدارترين تكنولوژي هاي براي برنامه هاي وب شده است (asp.net)

وقتي كدي را از هر زباني كه چار چوب دات نت را پشتيباني مي كند كامپايل كنيد به چيزي به نام MSIL يا Microsoft intermediate language يا زبان ميانه مايكروسافت تبديل مي شود MSIL باينري است اما كد ماشين نيست بلكه فرمتي است كه از محيط برنامه نويسي مستقل است و مي توان از آن در هر ماشين ديگري كه در حال اجراي چارچوب دات نت است استفاده كرد چرا كه در درون چارچوب .net كامپايلري به نامjust in time compiler  يا jit وجود دارد و كد زبان ميانه را به كد ماشين اختصاصي براي سخت افزار و سيستم عامل همان ماشين تبديل مي كند. دات نت ابزار اشكال زداي مجتمعي را فراهم كرده است و هر زباني كه اين چارچوب را هدف داشته باشد فقط با يك اشكال زداي واحد بررسي مي شود حتي اگر قسمتي از برنامه ي شما VB بوده و قسمت ديگر آن سي شارپ يا هر زبان ديگري بر پايه .net

چارچوب دات نت فقط پاسخگوي ويندوز نيست و مي تواند به هر سيستم عامل ديگري وارد شود يعني به آساني مي توانيد به قابليت چند محيطي يا cross plarform دست يابيد و اكنون مايكروسافت نسخه يك دات نت را براي سيستم عاملهاي بر پايه يونيكس مانند FreeBSD و همچينين Mac OS X ولي فقط براي آموزش و لاغير. دات نت بسياري از عمليات بنيادي را كه به ساخت آنها در زبانهاي برنامه نويسي پيشين عادت كرده بوديد را به صورت فشرده و آماده دارد عمل كامپايل به كد محلي از طريق ابزار كامپاير درست به موقع انجام مي شود.اگر نسخه مورد نياز از .net framework نصب شده باشد آن پلتفرم مي تواند هر برنامه دات نت را اجرا كند و هر زباني كه بتواند به MSIL تبديل شود زبان سازگار با دات نت ناميده مي شود مثل visual c++.net و visual basic.net و delphi و python وsmall talk و…

visual basic بازيچه نيست:خدمت عزيزاني كه ويژوال بيسيك را به عنوان يك زبان خوب نمي دانند بايد گفت مايكروسافت با اعلام vb.net به عنوان يك زبان برتر د محيط دات نت قصد داشت در برابر انهايي كه به وي بي را به بازيچه بودن متهم مي كردند بايستد.ildasm

زبان مياني يا IL يك زبان جديد است و به صورتي طراحي شده است كه به طور موثري به كد محلي ماشيني كه در آن اجرا مي شود تبديل گردد زبان مياني نسبت به ويژوال بيسيك و سي شارپ  زبان سطح پايينتري محسوب مي شود ولي از كد ماشين بالاتر است يكي از ابزارهايي كه در چارچوب دات نت وجود دارد ILdasm.exe است ابزار IL Disassembler براي نمايش محتواي يك برنامه دات نت در كد مياني به صورتي است كه براي انسان قابل خواندن باشد مثل تصوير با اين توضيح كه هر

شكل نماد موضوعي است مثلا نماد فضاي نام ويژگي متد كلاس است

زبانهاي دات نت همه به IL كامپايل مي شوند پس هيچكدام از زبانهاي دات نت از ديگر زبانها سريعتر نيست ولي بايد در نظر

داشت كه تنظيمات متفاوت كامپايلر منجر به توليد IL هاي متفاوتي براي كد يكساني مي شود به عنوان مثال دريك حلقه for

در سي شارپ  مي توانيد انتخاب كنيد كه آيا سرريز overflow چك شود يا نه ولي در vb اين امكان وجود ندارد پس هنگامي

كه يك حلقه FOR در c# ايجاد مي كنيد از يك حلقه يكسان در VB سريعتر اجرا خواهد شد چرا كه سي شارپ به طور پيش فرض سرريزي را چك نمي كند ولي در وي بي اين كار انجام مي شود.

بيشتر برنامه نويسان .net به اين نتيجه رسيده اند كه براي تبديل شدن به يك برنامه نويس حرفه اي دات نت مهمترين كار يادگيري كتابخانه كلاس چارچوب دات نت است كتابخانه چارچوب دات نت مجموعه اي از DLL هاست كه بخش مهمي از اين چارچوب را تشكيل مي دهند هر DLL حاوي يك مجموعه كلاس هاي مرتبط با هم است براي مثال system.drawing.dll كلاسهايي را براي ايجاد گرافيك را ارئه مي دهد كتابخانه چارچوب دات نت شامل هرچيزي مي شود از ورودي و خروجي فايل گرفته تا كلاسهاي  asp.net و ado.net كه قبلا برنامه نويسان براي انجام آنها نياز به نوشتن مقدار زيادي كد يا خريد و استفاده از كدهاي نوشته شده قبلي در قالب مولفه و كامپوننت شركتي ديگر بودند به عنوان مثال براي ارسال ايميل با برنامه نويسي دات نت مي توان از كلاس smtpmail استفاده كرد فقط همين .از این جمله می‌توان به واسط های گرافیکی کاربر، دسترسی به پایگاه های داده، رمزنگاری، برنامه‌های تحت وب، الگوریتم های کار با اعداد و ارتباطات شبکه‌ای را نام برد.

 

و اما مفهوم دات نت از ديد برنامه نويسان مختلف . چيزي متفاوت است در اينجا با تكيه بر مطالبي كه در مورد دات نت خوانده و شنيده ام سعي كردم مفهوم اين تكنولوژي را با استفاده از كمترين اصطلاحات و ساده ترين عبارت توضيح دهم هر چند خودم هم هنوز در تلاش براي شناسايي آن هستم

بد نيست بخوانيد:

منابع:ديتل ويكيپديا مايكروسافت ويژوال بيسك 2005 انتشارات مايكروسافت

در مورد پروژه شركت ناول هم اينجا بخونيد Mono

ساخت یک بازی ساده ولی جالب با ویژوال بیسیک 6.0

2009/02/14 25 دیدگاه

توابع مورد استفاده

Line برای کشیدن خطوط و مستطیل(تابع اصلی برنامه)

[object.Line [Step] (x1, y1) [Step] – (x2, y2), [color], [B][F

 

object (اختیاری) شی است که تابع نتیجه اش را بر آن اعمال می کند (در صورت ذکر نشدن به طور پیش فرض فرم را انتخاب می کند)

Step (اختیاری) مشخص کننده مختصات نقطه شروع بر اساس نقطه فعلی (CurrentX مقدار X نقطه فعلی و CurrentY مقدار Y نقطه فعلی را ذخیره کرده است)

(x1, y1) (اختیاری) مختصات نقطه شروع رسم خط یا مستطیل (در صورتی که ذکر نشود از CurrentX و CurrentY  استفاده می شود)

Step (اختیاری) مشخص کننده مختصات نقطه پایان بر اساس نقطه شروع خط

(x2, y2) (اجباری) مختصات نقطه  پایان  خط رسم شده

color (اختیاری) یک عدد صحیح بلند(Long) که رنگ خط رسم شده را نگهداری می کند( در صورتی که ذکر نشود ForeColor استفاده می شود)

B (اختیاری) با عث می شود یک چهارگوش کشیده شود (رسم box )

F (اختیاری) اگر B ذکر شود می توانید با ذکر F چهارگوش رنگ شده رسم خواهد شد (رسم Filled Box ) (اگر B ذکر نشده باشد از F نمی توان استفاده کرد) رنگ و سبک پر کننده از FillColor و  FillStyle پیروی می کند

[Randomize [number

Randomize برای مقدار دهی اولیه تابع تولید عدد تصادفی

Rnd[(number)] r

Rnd برای تولید اعداد تصادفی

(object.Point(x, y

Point رنگ نقطه داده شده را بر اساس RGB باز می گرداند این تابع فرمها و PictureBox را پشتیبانی می کند

object.PSet [Step] (x, y), [color] a

Pset نقطه داده شده را به رنگ مورد نظر تغییر می کند

Timer تعداد ثانیه های سپری شده از نیمه شب را باز می گرداند

متغیرهای مورد استفاده

Score امتیاز بازی را در خود نگهداری می کند

posx  و posy مختصات نقاط x , y

jahat جهت حرکت ;(کد کلیدها در رویداد Form_KeyDown  در متغیر jahat ذخیره می شود)

اگر مساوی صفر باشد به این معنی است که بازی هنوز آغاز نشده است

اگر مساوی 37 باشد به این معنی است که جهت حرکت به سمت چپ است

اگر مساوی 38 باشد به این معنی است که جهت حرکت به سمت بالا است

اگر مساوی 39 باشد به این معنی است که جهت حرکت به سمت راست است

اگر مساوی 40 باشد به این معنی است که جهت حرکت به سمت  پایین ست

منطق بازیبازی خطها با ویژوال بیسک

بازی که می خواهیم بسازیم بازی خطها است (snake ) هنگام لود شدن برنامه با استفاده از تابع Line

چهارگوشی با رنگ زرد در اطراف فرم کشیده می شود و سپس در یک حلقه 25 مربع پر شده از رنگ

در نقاطی اتفاقی از صفحه رسم می شود و یک نقطه به عنوان نقطه شروع بازی در محلی که  قبلا مربع

قرمزی رسم نشده باشد انتخاب می شود.

باقی اتفاقات در بازی با استفاده از یک تایمر با وقفه زمانی یک میلی ثانیه انجام می شود

در اتفاقات تایمر با توجه به کد کلید فشرده شده (جهت مناسب) نقطه فعلی جا به جا شده و سپس خطی کشیده می شود و امتیاز نیز افزایش می یابد

هنگام کشیدن خط در هر جهت ابتدا رنگ نقاطی که که قرار است خط  به انجا برود بررسی می شود و

در صورتی که این رنگ جز سیاه باشد معلوم می شود که آن نقطه یا دیواره زرد یا مربعی قرمز یا بدنه خط خودمان بوده است در نتیجه کاربر بازی را باخته است و از او سوالی برای بازی دوباره پرسیده می شود

 

سورس کامل و فایل کامپایل شده این برنامه را می توانید با حجم 6 کیلوبایت از اینجا دانلود کنید

کپی رایت سورس این برنامه در اختیار Karthik SC,Bangalore,India با آدرس ایمیل karthik_ch@rediffmail.com است