ورود

View Full Version : سوال: آیا VB.Net ، شی گراست ؟



mdssoft
سه شنبه 24 اردیبهشت 1387, 01:14 صبح
سلام
یه بار یکی از دوستان می گفت VB.NET ، شی گرا Object Oriented نیست .
بلکه Text Oriented هست.

آیا این صحت داره ؟

Xcalivorse
جمعه 21 تیر 1387, 09:24 صبح
vb.net یک زبان Net. با قابلیت های شی گرایی میباشد. و امکان برنامه نویسی به صورت OOP را برای برنامه نویسان فراهم می کند ولی به دلیل اینکه اغلب برنامه نویسان VB به برنامه نویسی شی گرا روی نمی آوردند و برنامه نویسان ++C و ++Visual C برنامه های خود را به صورت OOP طراحی می کردند هم اکنون این زبانها بر طبق عادت برنامه نویسان استفاده می شود.

mdssoft
جمعه 21 تیر 1387, 15:20 عصر
یعنی تو VB.NET هم میشه شی گرا کار کرد هم ساخت یافته ؟

m.hamidreza
جمعه 21 تیر 1387, 17:54 عصر
یعنی تو VB.NET هم میشه شی گرا کار کرد هم ساخت یافته ؟
بله قربان!

FARHAD_IMANY
شنبه 22 تیر 1387, 13:43 عصر
بلي.
مطمئنا شي گراست.

مهرداد تاجدینی
پنج شنبه 31 مرداد 1387, 14:13 عصر
vb.net یک زبان Net. با قابلیت های شی گرایی میباشد. و امکان برنامه نویسی به صورت OOP را برای برنامه نویسان فراهم می کند ولی به دلیل اینکه اغلب برنامه نویسان VB به برنامه نویسی شی گرا روی نمی آوردند و برنامه نویسان ++C و ++Visual C برنامه های خود را به صورت OOP طراحی می کردند هم اکنون این زبانها بر طبق عادت برنامه نویسان استفاده می شود.

دوست عزیز برنامه نویسان Vb6 به برنامه نویسی شی گرا روی نمی آوردند چون اصلا VB6 از شیی گرایی به صورت کامل پشتیبانی نمی کنه !!! وراثت و چندریختی که از اصلی ترین مباحث شی گرایی هست توسط VB6 ثاپورت نمی شه!
ضمنا مبحث شی گرایی به اینکه از کدام زبان برنامه نویسی استفاده می کنید مربوط نمی شه. شی گرایی یک مدل برنامه نویسیه و ربطی به نوع زبان برنامه نویسی نداره. فقط زبان برنامه نویسی باید از اون ثاپورت کنه, حالا هر زبانی می خواد باشه.
---
بله, همانطور که بقیه دوستان جواب هم دادن VB.net کاملا شیی گراست.

C_Sharp_Dot_Net
شنبه 05 بهمن 1387, 04:30 صبح
خودت هم داری می گی وی بی دات نت نمی گی که اسمبلی
آره شک نکن که شی گرا هست
این زبان در شی گرایی پیشرفت زیادی داشته
الان به طور کامل میشه گفت شی گراست

mdssoft
شنبه 05 بهمن 1387, 06:42 صبح
الان به طور کامل میشه گفت شی گراست
اما m.hamidreza تو پست #4 (http://barnamenevis.org/forum/showpost.php?p=551203&postcount=4) که اینو رد کرده و گفته میشه تو VB.Net ساخت یافته هم برنامه نوشت.

masoud.t123
شنبه 05 بهمن 1387, 17:05 عصر
به نظر بنده هم شی گراست یعنی استادمون می گفت

Sajjad1364
دوشنبه 07 بهمن 1387, 20:22 عصر
با سلام هرچند این بحث به نتیجه رسیده اما حیفم اومد یه چیزایی رو نگم
و اما VB.NET و شئ گرایی
من واقعا از طراحان استانداردهای وی بی دات نت خیلی متعجب شدم.چونکه اونا سعی کردن که شئ گرایی رو از برنامه نویسی با این زبان دور نگه دارند.یعنی اینکه وی بی هیچ وقت شما رو درگیر مثلا سازنده فرم نمیکنه در عوض میگه که از لود فرم استفاده کن. از طرفی هنوز دسترسی به اعضای مختلف فرمها در فرمهای دیگر محدود نشده است و هیچ اجباری هم برای تبعیت از قوانین برنامه نویسی شئ گرا وجود نداره.تمام دغدغه طراحان این زبان محبوب فقط راضی نگه داشتن برنامه نویسان ویژوال بیسیک 6 است ، نه تغییر در نحوه برنامه نویسی.
هر زبانی بخودی خود علاوه بر امکان نوشتن برنامه های شئ گرا میبایست زیر ساخت های مناسب رو هم برای توسعه و طراحی برنامه های شئ گرا فراهم کنه.اما ویژوال بیسیک با اجازه دسترسی به کنترلهای یک فرم در هر فرمی ، وجود چنین زیرساختی رو در خودش زیر سوال میبره.از طرفی برخورد ویژوال بیسیک با بسیاری از جنبه های شئ گرایی هنوز دو پهلو هست.چرا باید ویژوال بیسیک اجازه بده که کاربر بدون ساختن شئ فرم اون فرم رو نمایش بده:متعجب:.مگر مثلا Form1 متد استاتیکی به نام Show داره که میشه یه فرم رو بدون نمونه سازی اینطور (Form1.Show) نمایش داد.
ویژوال بیسیک هنوز خودشو غرق در کنترلها میبینه نه در اشیاء واین مساله وجود زیر ساخت روزیر سوال میبره. زبانی شئ گرا محسوب میشه که معمولا برنامه نویسا رو مجبور به نوشتن برنامه های شئ گرا بکنه.یعنی خود زبان یه سری قوانین اصلی رو به عنوان روال عادی خودش به شما تحمیل کنه . مثلا سی شارپ با خصوصی قرار دادن تمامی کنترل ها در داخل کنتاینرهاشون این محدودیت رو در غالب Encapsulation ایجاد میکنه . اما ویژوال بیسیک اول بسم الله بر عکس این کار رو انجام میده و اولین اصل برنامه نویسی شئ گرا رو به گند میکشه.

در سی شارپ وجود ژنریک ها ، Delegate , Lambda Expression,LINQ نقطه عطف محسوب میشه ولی در وی بی کنترل ها و کامپاننت ها و .... .
این موارد وجود زمینه را برای برنامه نویسی شئ گرا و طراحی آسان رو برای یه پروژه شئ گرا سخت میکنه.
بنظر من ویژوال بیسیک از نقطه ای غیر شئ گرا برنامه رو آغاز و اونو بدست یه شئ میسپاره و این یعنی اینکه ویژوال بیسیک یه چیزایی رو برای راحتی برنامه نویساش مخفی میکنه . با این تفاسیر میشه گفت خود برنامه در ویژوال بیسیک بصورت شئ در نمیاد.:متفکر:
با این وجود توانایی بالایی برای ایجاد برنامه های شئ گرا در لین زبان نهفته است. اما بیاین قبول کنیم که ویژوال بیسیک برای راضی نگه داشتن برنامه نویس ها ، همچنان خودشو دورگه (هایبرید) نگه داشته.مثل C++ که میخاست خودشو با C سازگار کنه. نتیجه اینکه دو جمله زیر باهم متفاو ت هستند .
ذاتا شئ گرا بودن یک زبان : #C یا Java
اجازه و توانایی نوشتن برنامه های شئ گرا را دادن : ,Visula Basic - سی شارپ - C++ - Java

xxxxx_xxxxx
جمعه 18 بهمن 1387, 20:39 عصر
بحث خيلي مفيدي اينجا صورت گرفته كه پيشنهاد مي كنم حتماً تا آخر بخونيدش.
البته در مورد VB 6 هست.
آیا VB 6.0 شی گرا است ؟ (http://barnamenevis.org/forum/showthread.php?t=51755)

Microsoft.net
پنج شنبه 13 فروردین 1388, 12:57 عصر
از طرفی هنوز دسترسی به اعضای مختلف فرمها در فرمهای دیگر محدود نشده است و هیچ اجباری هم برای تبعیت از قوانین برنامه نویسی شئ گرا وجود نداره

عجببببببب! vb.net تمام قواعد محدود کننده بازه رو از قبیل Friend , Private ,Public, Protected رو به خوبی ساپورت می کنه



چرا باید ویژوال بیسیک اجازه بده که کاربر بدون ساختن شئ فرم اون فرم رو نمایش بده.مگر مثلا Form1 متد استاتیکی به نام Show داره که میشه یه فرم رو بدون نمونه سازی اینطور (Form1.Show) نمایش داد.

این که دلیل نمیشه جان من . توی ++c هم دستور goto وجود داره پس باید گفت شی گرایی ++c رو زیر سوال می بره؟


اما ویژوال بیسیک اول بسم الله بر عکس این کار رو انجام میده و اولین اصل برنامه نویسی شئ گرا رو به گند میکشه.


این شمایید که با تفکر غلط کیفیت یک نرم افزار رو پایین میارید نه زبان برنامه نویسی ! این زبان زیرساخت شیگرایی رو برای شما فراهم کرده فقط باید به خودتون زحمت استفاده ازش رو بدید !


در سی شارپ وجود ژنریک ها ، Delegate , Lambda Expression,LINQ نقطه عطف محسوب میشه ولی در وی بی کنترل ها و کامپاننت ها و ....

خوب این حرف هم از روی ناآگاهی شما نسبت به این زبانه ! تمامی اینها به خوبی توسط vb.net هم پشتیبانی میشن

من خودم یکی از طرفدار های #C هستم و اینم قبول دارم که سی شارپ زبانی ذاتا Early binding هست ولی ویبی زبانی ذاتا Late binding و همچنین وی بی سعی میکنه پیچیدگی های پیاده سازی رو تا جای ممکن از دید برنامه نویس مخفی کنه و همینها باعث تفاوت بین این دو زبان میشه

mdssoft
پنج شنبه 13 فروردین 1388, 13:19 عصر
اما می شه پاسخ بدید چرا از VB مثل C# در Game Programming استفاده نمیشه .

Sundown
پنج شنبه 13 فروردین 1388, 14:45 عصر
پس باید گفت شی گرایی c رو زیر سوال می بره

:متعجب:از کی تا حالا سی شی گرا شده ؟ احتمالا منظورتون سی پلاس پلاس بوده . آره ...

Microsoft.net
پنج شنبه 13 فروردین 1388, 16:00 عصر
:متعجب:از کی تا حالا سی شی گرا شده ؟ احتمالا منظورتون سی پلاس پلاس بوده . آره ...

بله اشتباه تایپی بود .