PDA

View Full Version : ماژول در Vb.Net



sepehr.net
چهارشنبه 18 دی 1387, 21:26 عصر
سلام
برای من جالب است که بدونم جایگاه ماژول در VisualBasic.Net کجاست؟
یعنی چه جوریه ؟ تمامی کلاس ها از این ماژول ارث میبرند؟
اگه نه پس چه جوری توابع و متغیر های تعریف شده در ماژول در همه ی کلاس ها شناخته شده هستند؟
ایا وجو ماژول باعث شده که ویبی را یک زبان کامل شی گرا ندونند؟
در کل وجود ماژول در visualBacis.Net خوب هست یا خیر؟

Chabok
پنج شنبه 19 دی 1387, 13:41 عصر
با سلام . به نظر من :
یه جورایی میشه گفت یک ماژول ، یک کلاس استاتیک است که همه محتویاتش نیز استاتیک هستند .
که با ذکر نام کلاس و سپس متدها و ویژگی های عمومی ، به آن ها دسترسی دارید .

اگر تعریف بالای من صحیح باشه تمامی سوالات زیر پاسخ داده شد :


یعنی چه جوریه ؟ تمامی کلاس ها از این ماژول ارث میبرند؟ خیر
اگه نه پس چه جوری توابع و متغیر های تعریف شده در ماژول در همه ی کلاس ها شناخته شده هستند؟ چون استاتیک است و همه بر اساس ویژگی ها عمومی دسترسی دارند
در کل وجود ماژول در visualBacis.Net خوب هست یا خیر؟ آیا استاتیک بودن کلاس ها خوب است یا خیر ؟

در ضمن vb.net فرق زیادی در شی گرایی با سی شارپ نداره .
در کل همشون از قوانین شی گرایی دات نت پیروی میکنند . شاید با کمی تغییر

و احتمالا vb6 را گفته اند که کامل شی گرا نیست .

موفق باشید . یا حق

sepehr.net
پنج شنبه 19 دی 1387, 16:05 عصر
یه جورایی میشه گفت یک ماژول ، یک کلاس استاتیک است که همه محتویاتش نیز استاتیک هستند .
که با ذکر نام کلاس و سپس متدها و ویژگی های عمومی ، به آن ها دسترسی دارید .

اگر به این صورت هست پس چرا :
از ماژول نمیتوان شی ایجاد کرد؟
از وراثت پشتیبانی نمیکند؟
همچنین از اینترفیس؟
و ...
من فکر میکنم ماژول ها چیزی شبیه به ساختار (Structure) هستند تا شبیه به کلاس !!!
ولی اگر این طور باشه پس چرا ماژول میتونه مثل کلاس فیلد هم داشته باشه درصورتی که در ساختار نمیتونیم فیلد داشته باشیم ؟؟

در ضمن vb.net فرق زیادی در شی گرایی با سی شارپ نداره .
بله در vb.net تمامی پارامتر های لازم برای برنامه نویسی oop وجود داره ولی به نظر من ماژول باعث شده که vb.net یک زبان کاملا" شی گرا نباشه!!!
در کل استفاده از ماژول در برنامه نویسی پیشرفته رو چه طور ارزیابی میکنید؟

Chabok
پنج شنبه 19 دی 1387, 16:56 عصر
باز هم نظر شخصی :
در اصل مایکروسافت ، ماژول رو از vb6 به دات نت هم انتقال داد تا یه جورایی برنامه نویس هاش در اثر مهاجرت دلسرد نشن .
چون ماژول در وی بی ، قطعه کدهایی بود که در همه جای برنامه قابل استفاده بود .

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

برای همین من تصورم اینه که چون استخوان دات نت بر اساس شی گرایی طراحی شده و حالا در vb.net میخواستن ماژول رو هم جا بدن ، ساختار ماژول رو بصورت یک کلاس استاتیک طراحی کرده اند .
و این ساختار یه جورایی قفل شده . و مثلا به قول شما

از ماژول نمیتوان شی ایجاد کرد؟
از وراثت پشتیبانی نمیکند؟
همچنین از اینترفیس؟
و ...این مطالب رو بر اساس تجربه شخصی عرض کردم . شاید اصلا داستان چیز دیگری باشد که امیدوارم اگر سایر دوستان نظری دارند مطرح کنند .

موفق باشید . یا حق

sepehr.net
پنج شنبه 19 دی 1387, 20:27 عصر
در اصل مایکروسافت ، ماژول رو از vb6 به دات نت هم انتقال داد تا یه جورایی برنامه نویس هاش در اثر مهاجرت دلسرد نشن .
چون ماژول در وی بی ، قطعه کدهایی بود که در همه جای برنامه قابل استفاده بود .
با نظر شما موافقم. شاید مایکروسافت دیده اگه ماژول رو از vb.net برداره برنامه نویساش (که خیلی راحت طلبند) به مشکل برمیخورند!!
حالا به نظر شما استفاده از ماژول در برنامه ها میتونه مفید باشه یا نه؟

Chabok
جمعه 20 دی 1387, 16:02 عصر
سلام
چرا ضرر داشته باشه ؟
شما به هر حال یک سری توابع اصلی دارید و یا یک سری متدها و فیلدهایی که در سراسر برنامه هم باهاش کار دارین .

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

حالا این کلاس استاتیک در vb.net برای شما فراهم شده است و فقط با تعریف کردن بصورت public قطعه کدهای شما در همه قسمت های برنامه قابل اجراس .

به نظر من فرق زیادی با یک کلاس استاتیک نداره . پس نمی تونه مضر باشه و در جای خودش در صورت استفاده صحیح مشکلی ایجاد نخواهد کرد .

موفق باشید . یا حق

sepehr.net
شنبه 21 دی 1387, 19:33 عصر
مثل اینکه کس دیگری نمیخواد جواب سوال من رو بده !!!

جایگاه ماژول د ربرنامه نویسی لایه ایی در کجا قرار داره؟
اصلا" استفاده از آن صحیح هست؟