PDA

View Full Version : مقدمات فراگیری پلتفرم توسعه نرم افزار دات نت



Farhad.B.S
یک شنبه 13 اردیبهشت 1383, 00:42 صبح
با سلام ،
از اونجایی که خیلی از دوستان وی بی کار میخوان دانش خودشون رو آپگرید کرده و به دات نت رو بیارند ،
بر آن شدم تا در این راهنمای کوتاه ، مراحل این ارتقا را به صورت خلاصه بیان کنم.

به طور کلی برای فراگیری استفاده از پلتفرم دات نت ، برای تولید برنامه نیاز هست که به دو چیز مسلط شد.
یکی Class Library دات نت فریم ورک هست و دیگری زبانی هست که قراره با استفاده از اون برنامه تحت دات نت تولید بشه. (به عنوان مثال VB.Net).

در هیچ یک از زبان های برنامه نویسی تا به این حد قواعد زبان از Class Library جدا نشده است. به عنوان مثال به تکه کد لازم جهت جدا کردن قسمتی از یک رشته در زبان های مختلف توجه کنید :

VB :

Dim str As String
str = "This is a test"
str = Mid(str,6,2)

Object Pascal :

var str : string;
begin
str := 'This is a test';
str := MidStr(str,6,2);

Net Platform with VB.Net. :

Dim str As String
str = "This is a test"
str = str.SubString(6,2)


# Net Platform with C. :

string str;
str = "This is a test";
str = str.SubString(6,2);

به کد مورد نظر در زبان های VB و Object Pascal توجه کنید ، برای جدا کردن قسمتی از یک رشته در هر زبان دستوری خاص وجود دارد (Mid و MidStr) ، اما در پلتفرم دات نت این رابطه بین زبان و کتابخانه کلاس کاملا قطع شده است.
همانطور که میبینید چه در #C و چه در VB.Net فقط یک متغیر از جنس string تعریف میشه و بعد با استفاده از توابع کلاس string کار جدا سازی انجام میشود.
به عبارت ساده تر شما لازم نیست برای نوشتن برنامه تحت دات نت با زبان های مختلف ، دستورات خاص هر زبان را فرا بگیرید ، بلکه در صورت آشنایی با Class Library ، برای نوشتن برنامه با زبانی دیگر فقط لازم است به تفاوت های قواعد این دو زبان بپردازید. (به عنوان مثال سمی کولونی که در آخر دستورات C# قرار میگیرد ولی در وی بی دات نت خیر ! )

دقیقا همین مسئله باعث میشه که انتخاب زبان نوشتن برنامه هیچ محدودیتی در کارایی رو برای شما به وجود نیاره . به عبارت دیگه قدرت تمامی زبان ها "تقریبا++" در یک سطح قرار میگیره.
در نتیجه مسئله شناختن کتابخانه کلاس و اینکه برای هر کاری از چه کلاسی استفاده میشه از درک قواعد خود زبان مهمتر هستش.

کتاب VB.Net Developers Guide برای فراگیری خود زبان توصیه میشه (در صورتی که قبلا وی بی کار میکردید در هنگام مطالعه خواهد دید که بسیاری از قواعد همون ها هستند.)
کتاب Oreily .Net Framework Essential برای فراگیری Class Library و مفاهیم این پلتفرم توصیه میشه و بعد از اون کار زیاد با کلاس های مختلف دات نت فریم ورک (ته و توی همشون رو در آوردن :mrgreen: ! ) و انجام کار ها با استفاده از خود کلاس ها به جای استفاده از Windows APIs و کد های مدیریت نشده.

نکته ای که باید به اون توجه داشت اینه که چیزی که باعث میشه VB از VB.Net بسیار متفاوت باشه ، Class Library مورد استفاده هستش . قواعد زبانی وی بی تحول چندانی نکرده به جز اضافه شدن چندین قاعده دستوری جدید.
بنابراین دوستانی که سابق وی بی کار میکردند و حالا میخوان رو به این پلتفرم بیارند ، سعی کنند بیشتر توجه خودشون رو به Class Library معطوف کنند.



موفق باشید.

مهدی کرامتی
یک شنبه 13 اردیبهشت 1383, 01:27 صبح
به کد مورد نظر در زبان های VB و Object Pascal توجه کنید ، برای جدا کردن قسمتی از یک رشته در هر زبان دستوری خاص وجود دارد (Mid و MidStr) ، اما در پلتفرم دات نت این رابطه بین زبان و کتابخانه کلاس کاملا قطع شده است.
میشه این مورد رو بیشتر توضیح بدید؟

این به چه مفهومی است؟

Farhad.B.S
یک شنبه 13 اردیبهشت 1383, 17:49 عصر
به این معنی که تمامی امکانات فقط و فقط از طریق اجزاء کتابخانه کلاس به دست میاد.
هیچ امکانی برای انجام کاری ، به زبانی خاص داده نمیشه . به عبارت دیگه یک کتابخانه کلاس کاملا شئ معابانه که زبان ها دور اون جمع شده و از این کتابخانه کلاس، نیاز های خودشون رو درخواست میکنند. (تمامی این زبان ها در استفاده از این مرکز به یک اندازه سهم دارند - همگی در پیشگاه این مرکز یکسان هستند !)
هر چند که VCL یا MFC هم هدفشون این بوده که چنین چیزی بوجود بیارند ولی در هیچیک تا به این حد اصول شی گرایی رعایت نشده.
همون مثال بالا رو در نظر بگیرید ، تابع MidStr هر چند که جزئی از VCL به شمار میاد ، ولی به جای عضوی از یک کلاس بودن فقط یک پراسیجر است.
نمونه دیگری از این کتابخانه کلاس منظم و شی گرا رو میتونید در کتابخانه کلاس های پلتفرم جاوا ببینید .

الهام تفریشی
یک شنبه 13 اردیبهشت 1383, 17:57 عصر
اگه میشه در مورد همین Class Library توضیح بدید و مثالهای هم بزنید
از لطفتون ممنون

Farhad.B.S
یک شنبه 13 اردیبهشت 1383, 19:39 عصر
کتابخانه کلاس چیزی نیست به جز کلاس های مختلف مثل IO.FileStream ، Data.Dataset ، System.Drawing.Graphics که برای مقاصد مختلف (ترسیم اشیا و نقاشی ، دریافت اطلاعات از منابع مختلف و ذخیره آنها در خود ، کار با فایل ها) ساخته شده اند و کنار هم قرار گرفته اند.
همونطور که گفته شده برای شناختن این کلاس ها باید دید چطور میشه با استفاده از هر کدوم به تامیین نیاز های مختلف پرداخت.

Vahab
یک شنبه 13 اردیبهشت 1383, 20:13 عصر
ممنون مفید بود

مهدی کرامتی
یک شنبه 13 اردیبهشت 1383, 20:51 عصر
من باز هم متوجه نشدم اینکه فلان پروسیجر یا تابع بجای اینکه مستقل باشه، عضو یک کلاس باشه چه مزیتی داره و به چه درد میخوره. در کل از نقطه نظر من بعنوان برنامه نویس این چیزی رو عوض نمیکنه و تفاوت خاصی ایجاد نمی‌کنه.

h_rezaei
یک شنبه 13 اردیبهشت 1383, 22:15 عصر
دیدگاه Object Oriented دنبال classified کردن همه چیزه. یه جور طبقه بندی کردن مثل همون کاری که شما در این سایت کردید و اون رو به بخشهای مختلف تقسیم کردین.و خوب این دسته بندی کردن هم باعث میشه که اشیا در یه نظام سلسله مراتبیبه طور منظم قرار بگیرند و خواص مراتب بالا تر رو به ارث ببرند و....
مطالعه مستندات دیدگاه شی گرا (مثلا کتاب Thinking Java که با یه search ساده تو اینترنت پیدا میشه ) در این خصوص می تونه مفید باشه .

mehrzad007
دوشنبه 14 اردیبهشت 1383, 07:58 صبح
این کلاس لایبرری رو چه جوری میشه یاد گرفت؟ کتابی؟ منبعی؟ یا لینک یه ای بوک ...

sh
دوشنبه 14 اردیبهشت 1383, 13:58 عصر
توی خود MSDN کاملا توضیح داده شده