PDA

View Full Version : آیا VB 6.0 شی گرا است ؟



Mojgan110
پنج شنبه 09 شهریور 1385, 18:24 عصر
ببخشید در بحث با دوستانم ، این ابهام برایم پیش آمد که آیا VB 6.0 ، به مفهوم واقعی شی گرا است ؟:اشتباه:


من خودم ویبی کار نکرده ام که باهاش آشنایی داشته باشم ... شما که کارکرده اید ، لطفا کمی موضوع را روشن کنید برایم.


خیلی ممنون از شما .

oVERfLOW
شنبه 11 شهریور 1385, 13:08 عصر
مسلما شیء گراست
ولی با یه سری محدودیت‌ها مثل عدم پشتیبانی از اشاره گرها که یه کم کار رو مشکل می‌کنه
ولی اگه قرار باشه جواب بله یا خیر داده بشه جواب بله خواهد بود...

Inprise
شنبه 11 شهریور 1385, 13:24 عصر
ویژوال بیسیک یک زبان شیء گرا نیست . پشتیبانی یا عدم پشتیبانی از اشاره گر هم ارتباطی با OO ندارد .

Arash_VBScripts
دوشنبه 13 شهریور 1385, 08:52 صبح
مسلم که شی گراست
یک زبان برنامه نویسی oop که یعنی همون شی گرا که تا حالا ساده ترین زبان برنامه نویسی
که هم پرکاربرد برای مبتدیان و حرفه ای هاست
سخت ترین زبان برنامه نویسی از نظر من Assembly هست که تحت داس هستش

حامد مصافی
دوشنبه 13 شهریور 1385, 09:15 صبح
سلام
همونطوری که Inprise (http://barnamenevis.org/forum/member.php?u=1341) فرمودند زبان برنامه نویسی وی بی یک زبان برنامه نویسی شی گرا نیست
وی بی یک زبان برنامه نویسی ماژولار ه
به این معنی که شما وقتی قصد دارید از توابع وی بی استفاده کنید یک Instance جدید از اونو ایجاد نمی کنید. بلکه با ذکر نام اون متد مستقیماً بهش دسترسی پیدا می کنید

کلیدواژه ایجاد یک شی در وی بی New هست. شما در طول نوشتن یک برنامه چند باره این کلمه رو به کار می بریدة؟


یه وقت نری سراغش
به سبک احمقانه ای oop است البته من vb کار نیستم ولی یه نگاهی به اون کردم
بهترین زبان برنامه نویسی عمومی(ساده برای همه) ==>> python

شما با یک نگاه به یک زبان اینقدر اطلاعات کسب می کنید که می تونید دربارش نظر بدید؟
ضمناً مطمئنی پیتون به اندازه کافی عمومی هست؟؟؟

oVERfLOW
دوشنبه 13 شهریور 1385, 10:14 صبح
ویژوال بیسیک یک زبان شیء گرا نیست . پشتیبانی یا عدم پشتیبانی از اشاره گر هم ارتباطی با OO ندارد .

اگه شیء گرا نیست ممکنه بگید که Class module ها یا خود فرم‌ها چی‌هستن
اگه شیء نیستن حتما فایل Bitmap هستن

و در مورد اشاره‌گر هم اگه یه ذره با برنامه‌نویسی شیء گرا آشنا باشید می‌فهمید که اشاره‌گرها یکی از نیازهای مهم توی این جور برنامه‌نویسی هستن و با نبودن اونها یه سری مشکلات و محدودیت‌ها پیش میاد
البته VB راه‌های جایگزین هم داره که باید یواش یواش یاد بگیرید
فعلا بهتره اول با دلفی آشنا بشید بعدش بیاید سراغ محیط‌های پیشرفته‌ی مایکروسافت...

و یه دوست دیگه‌ی ما هم گفته بودن که ما چه‌قدر از New استفاده می‌کنیم !!!
اگه شما استفاده نمی‌کنی دلیل می‌شه که VB شیء گرا نیست؟؟؟؟؟

M.GhanaatPisheh
دوشنبه 13 شهریور 1385, 18:18 عصر
دوست عزیز
وقتی به یه زبان شی گرا گفته می شه که چند فاکتور اساسی شی گرائی را پشتیبانی کنه.
Encapsulation
Inheritance
Polymorphism
Composition
Conclusion

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

حفظ احترام دیگران در ادبیات نوشتاری یکی از اصول اولیه زندگی (زنده ماندن) در این انجمن است.

Inprise
دوشنبه 13 شهریور 1385, 18:55 عصر
@oVERFLOW : شاید بعد از اینکه در مورد تئوری زبانهای برنامه نویسی به اندازه کافی مطالعه کنی و تجربه کار کردن با چند تاشون رو در عمل داشته باشی، این نکات بیش از حد بدیهی به نظر برسند اما چون به نظرم میاد برای تو و دوستان کم تجربه مفید هستند مینویسمشون .

مفهوم Object Oriented به معنای "امکان وجود داده ها و روتین های کپسوله شده" در زبان برنامه نویسی نیست ، به معنای "مبتنی بر شیء" بودن روند برنامه نویسی هست . تو وقتی از C و Win32 API استفاده میکنی ، با CreateWindow فرم و پنجره و کنترل میسازی ، با SetText کپشن و تکست بهشون میدی ، و ... در حال برنامه نویسی با C و روتینهای سیستم عامل هستی ، برنامه ات کامل و حتی بی نظیر هم میتونه باشه ، ولی به هر حال شی گرا نیست ؛ ویژوال بیسیک هم مبتنی بر چنین فرهنگی هست ، یعنی بجای استفاده از متدی که کل روند توسعه رو مبتنی بر تولید کلاس و ساختن شیء و مدیریت اونها بکنه ، فقط توابع ویندوز رو در روتینها و ساختارهائی بسته بندی کرده که بشه به سرعت باهاش برنامه نوشت . محیطهائی مثل دات نت ، جاوا ، و تا حدی دلفی ، بر اساس OO کار میکنند ، اما وقتی با Borland C++5 و Win32 API کد مینویسی ، یا با ویژوال بیسیک ، یا با فاکس پرو ، در حال تجربهء OO نیستی . شاید اگر لازم شد بعدا" در مورد نقش وجود اشاره گر ، در تولید اشیاء و VTable ها و غیره توضیح بدم ، اما نحوهء ساختن کلاسها و اشیاء ، قانون و فرمول به خصوصی نداره . یعنی لازم نیست ما همواره یک چیزی رو new کنیم که خیال کنیم برنامه ما شی گراست . یک برنامه نویس دلفی همیشه برنامه های شیء گرا مینویسه ، بدون اینکه لازم باشه در تمام عمرش یکبار از new استفاده کنه فی المثل . نحوه تولید و برخورد با کلاسها و اشیاء بستگی به طراحی زبان داره ، و در هر حال ویژوال بیسیک یک زبان شیء گرا نیست . این نه لزوما" خوب هست و نه لزوما" بد .

yashar666
سه شنبه 14 شهریور 1385, 02:37 صبح
به نظر من بله شی گرا من 3 سال vb کار میکردن ولی یه چیزی بگم واقا بیخود الان دارم
delphi کار میکنک به نظر من واقا عالی هست من که خیلی راضی ام و زبان خیلی قوی هست

Mojgan110
سه شنبه 14 شهریور 1385, 10:24 صبح
من فکر کنم پاسخ شماره 9 که جناب Inprise لطف کردند و توضیح مستدل دادند ، را بهتره بخونیم و 10 بار از روش توی دفتر مخشمون بنویسیم !

این بحث با صحبتهای فنی جناب Inprise ، تموم شده حساب میشه ..
متشکرم.

oVERfLOW
سه شنبه 14 شهریور 1385, 10:29 صبح
من که قبلا هم گفتم می‌تونید پست‌های بالاتر رو بخونید

در VB امکان برنامه‌نویسی شیء گرا هست - نه به پیشرفتگی C++ - ولی باید بلد باشید
می‌شه با VB برنامه‌ی ساخت یافته نوشت و می‌شه برنامه‌ی مبتنی بر شیء نوشت
باید بلد بود...

اگه شما با VB برنامه‌ی ساخت یافته می‌نویسید دلیل نمی‌شه که VB هم کاملا ساخت یافته باشه.

همون طور هم که قبلا گفتم اگه بنا باشه جواب ما بله یا خیر باشه
جواب بله خواهد بود
ولی اگه بخوایم وارد جزئیات بشیم و بگیم چون فلان چیز رو نداره پس نیست من هم می‌گم چون فلان چیز رو داره پس هست

بابای

odiseh
سه شنبه 14 شهریور 1385, 10:51 صبح
دوست عزیز
vb6.0 ، Object Oriented نیست بلکه Object Based است یعنی گرچه در ظاهراز اشیاء پشتیبانی می کند اما مفاهیم اصلی برنامه نویسی شی گرایی مثل وراثت و Polymorphism رو نداره

M.GhanaatPisheh
سه شنبه 14 شهریور 1385, 16:54 عصر
من که قبلا هم گفتم می‌تونید پست‌های بالاتر رو بخونید

در VB امکان برنامه‌نویسی شیء گرا هست - نه به پیشرفتگی C++ - ولی باید بلد باشید
می‌شه با VB برنامه‌ی ساخت یافته نوشت و می‌شه برنامه‌ی مبتنی بر شیء نوشت
باید بلد بود...

اگه شما با VB برنامه‌ی ساخت یافته می‌نویسید دلیل نمی‌شه که VB هم کاملا ساخت یافته باشه.

همون طور هم که قبلا گفتم اگه بنا باشه جواب ما بله یا خیر باشه
جواب بله خواهد بود
ولی اگه بخوایم وارد جزئیات بشیم و بگیم چون فلان چیز رو نداره پس نیست من هم می‌گم چون فلان چیز رو داره پس هست

بابای


پستهای شماره 8 و 9 رو با دقت نخوندی دوست عزیز.
ارائه اطلاعات اشتباه و از روی نادانسته ها یکی از مواردی است در این انجمن به سختی نکوهش می شود.

Developer Programmer
سه شنبه 14 شهریور 1385, 22:04 عصر
در VB امکان برنامه‌نویسی شیء گرا هست - نه به پیشرفتگی C++ ولی باید بلد باشید.می‌شه با VB برنامه‌ی ساخت یافته نوشت و می‌شه برنامه‌ی مبتنی بر شیء نوشت
باید بلد بود...

تعجب میکنم از اینکه چطور، بعد از اینهمه توضیح ، بازهم دست از عقیده تون برنمی دارید.
اینپرایز به صراحت بحث رو توضیح دادن و جناب قناعت پیشه هم دلایل کافی آوردند؛
یکی از مشکلاتی که این فوروم به شدت باهاش دست و پنجه نرم میکنه اینه که اعضای محترم اون ، عقیده شخصی خودشون رو به فرم قضیه اثبات میکنند.
واقعا اگر با Delphi که اینپرایز هم بهش اشاره کرد کار کرده بودید، تفاوت شی گرایی Delphi و VB رو متوجه می شدید؛
تصور نمیکنم VB از Override و Overload و Inherited و Dynamic و Abstract و نظیر اینها پشتیبانی کنه.
چیزی که شما اونرو شی گرایی میدونید، شی گرایی نیست.

Armanprogrammer
چهارشنبه 15 شهریور 1385, 12:12 عصر
جناب آقای overflow بنده مثل شما قدرت برنامه نویسی ندارم ولی تا اونجا که اطلاعات محدود من جواب میده شی گرایی اولین بار زمانی به وجود اومد که ++c شکل گرفت یعنی خیلی بعد از اسمبلی شی گرایی درکل به نسبت دادن چندین حالت خاص به یک شی اطلاق میشه که یک سری از حالتهاش به صورت private است و در شر گرایی وراثت که مهمترین چیز شی گرایی است شکل گرفت در کل شی گرایی به خاطر security آن شکل گرفت در صورتی که ما اگر بخواهیم یک تابعی درست کنیم که نشانه یک شی باشد حتی به قول شما با اسمبلی هم میشه و راحتتر از اون با ساختمان داده در c ولی هیچ کدوم از اونها حالت خصوصی نداره ممنون از حسن توجه تون

titbasoft
چهارشنبه 15 شهریور 1385, 12:23 عصر
در VB امکان برنامه‌نویسی شیء گرا هست - نه به پیشرفتگی C++ - ولی باید بلد باشید
می‌شه با VB برنامه‌ی ساخت یافته نوشت و می‌شه برنامه‌ی مبتنی بر شیء نوشت
باید بلد بود... به عنوان یک طرفدار VB خیلی مشتاقم بدونم چطوری OO، VB میشه؟ یک روش های عجیب و غریب از قبیل Implement کردن کلاس ها با اعمال شاقه رو دیدم، اما برام جالبه که چطوری میشه اصولی رو که آقای غناعت پیشه ذکر کردند، توی VB پیاده سازی بشه؟؟

Developer Programmer
چهارشنبه 15 شهریور 1385, 12:46 عصر
به عنوان یک طرفدار VB خیلی مشتاقم بدونم چطوری OO، VB میشه؟ یک روش های عجیب و غریب از قبیل Implement کردن کلاس ها با اعمال شاقه رو دیدم، اما برام جالبه که چطوری میشه اصولی رو که آقای غناعت پیشه ذکر کردند، توی VB پیاده سازی بشه؟؟
تا جایی که من می دونم؛ دات نت، این امکان رو در اختیار VB.Net گذاشته.

Inprise
چهارشنبه 15 شهریور 1385, 13:00 عصر
برام جالبه که چطوری میشه اصولی رو که آقای غناعت پیشه ذکر کردند، توی VB پیاده سازی بشه؟؟

"بعضی" از امکاناتی که در زبانهای شیء گرای واقعی مانند جاوا وجود دارند با روشهائی در VB هم در دسترس هستند ، و برخی از اونها ( مثلا" وراثت ) وجود ندارند ، هر چند دلیل شیء گرا نبودن VB این نیست ، اما یک برنامه نویس تازه کار با درک خیلی مقدماتی از زبانهای برنامه نویسی میتونه این رو درک کنه که شیء گرائی در عمل وقتی وراثتی در کار نیست ، قرار نیست مشکل به خصوصی رو حل کنه ، چون در هر حال از یک کلاس استفاده از به جز کپسوله ای از اطلاعات نمیشه کرد . یعنی اگر هدف از استفاده از شی گرائی چیزهای مثل reusability باشند ، ویژوال بیسیک امکانات کافی رو داره ، ولیکن این به معنی OO بودن زبان VB نیست . این یه نکته خیلی ساده و ابتدائیه که برای درکش لازم نیست مخاطب هوش بالائی داشته باشه . به عنوان یک مثال کاملتر میشه در مورد Perl صحبت کرد . پرل بر خلاف ویژوال بیسیک کلیه امکاناتی که یک زبان OO بهش نیاز داره ، داره ؛ اما هنوز کسی پرل رو به عنوان یک زبان شیء گرا نمیشناسه ، و علاقه مندان و طرفداران زبان پرل در این باره بحث به خصوصی نمیکنند ، در عین حالیکه در کتابهای آموزش پرل چند فصل به تولید کلاسها و اشیاء و مدیریت اونها اختصاص داره ، و باز هم تفاوت بین این دو مسئله کاملا" روشن هست .

جاوا یک زبان شی گراء و شیء-محور هست ، و یک برنامه فقط از شیء تشکیل میشه ، و هر وقت قرار باشه حرکتی انجام بشه ، تکلیف برنامه نویس روشنه ، اون یه کلاس میسازه ؛ اما زبانهای برنامه نویسی متعددی هستند که "بخشی" از ویژگیهای یک زبان OO رو پیاده سازی کردن ، تا از قسمتی از اون مزایا در صورت نیاز استفاده بشه ، که به چنین زبانی OO گفته نمیشه . وقتی میگوئیم پرل OO نیست ، نه منظور این هست که این زبان ضعیف و ناکاراست ، نه منظور این هست که لزوما" ناقص است ، فقط منظور این است که OO نیست ، و وقتی گفته میشه جاوا OO هست ، نه به این معنی است که یک زبان ایده آل است ، نه چیز دیگر .

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

M.GhanaatPisheh
چهارشنبه 15 شهریور 1385, 13:25 عصر
@Inprise عزیز
دستنوشته های شما همیشه خوندنی و قابل تامله



هر چند دلیل شیء گرا نبودن VB این نیست

مگر OO بر سر چیزی غیر از قوانین چند گانه ای که احتمالا امکانات مبتنی بر شیء رو به ذات یک زبان اضافه می کنه بحث می کنه؟

Inprise
چهارشنبه 15 شهریور 1385, 13:32 عصر
بله . شیء گرائی باید ما به ازای Runtime هم داشته باشه ، یعنی تو یک شیء میسازی ، و در زمان اجرا یک شیء ساخته میشه ، و Runtime برنامه ، یک شیء رو مدیریت کنه ؛ اما کدهای VB اصطلاحا" Native نیستند ( کدهای VB یا اصطلاحا" P-Code ها در زمان اجرا توسط Runtime اش ترجمه میشه ) و در فضای آدرسی یک برنامه نوشته شده با VB چیزی بنام شیء وجود خارجی نداره . به این دلیل VB شیء گرا نیست ، بسادگی ، یعنی برنامه ، از اشیاء تشکیل نشده ، حتی اگر در زمان طراحی کد ، با همان ویژگیهای ناقص بتونی یک کلاس تولید کنی و ...

M.GhanaatPisheh
چهارشنبه 15 شهریور 1385, 13:56 عصر
حق با شماست.
قوانین چند گانه OO الزاما ذات مبتنی بر شیء رو بوجود نمیاره.
ولی قانون لازم برای اعمال OO بر یک زبان هست (نه کافی).

نظرتون راجع به این مطلب که :
"این که زبانی از قوانین فوق تبعیت نکنه نمی تونه یه زبان مبتنی بر شیء باشه و زبانی که از قوانین فوق تبعیت کنه در صورت داشتن مابه ازای زمان اجرا ، شیءگرا تلقی می شه"
چیه؟

titbasoft
چهارشنبه 15 شهریور 1385, 15:09 عصر
اما کدهای VB اصطلاحا" Native نیستن ولی می تونن باشن؟

من این رو توی یکی از کتابهای MS Press دیدم:

With the Professional or Enterprise edition of Visual Basic, you can compile your code either in standard Visual Basic pseudo code (p-code) or in native code. In the Standard edition of Visual Basic, you can compile programs only in p-code. Compiling your programs in native code provides several options for optimizing and debugging that are not available with p-code.

titbasoft
چهارشنبه 15 شهریور 1385, 15:15 عصر
ضمنا این هم از یک کتاب دیگر است: (نوشته فرانچسکو بالنا):
فکر می کنم جالب باشه:


Classes and Objects

Since Microsoft Visual Basic 4 introduced the concept of class modules, a furious debate has raged among Visual Basic developers about the object-oriented nature of the language. Is Visual Basic a real object-oriented programming (OOP) language? Is it just an object-based language? Or is it somewhere between these two extremes?

For what it's worth, my position on the question is a compromise: Visual Basic definitively is not a true OOP language and it won't be one until it possesses some essential OOP features, such as inheritance. But this deficit shouldn't excuse your not learning in depth what classes and objects have to offer developers. This is what I'll show in this chapter and in the remainder of this book:
Class modules can immensely improve your productivity, help you solve many common and intricate programming problems, and even permit you to perform tasks that would be extremely difficult, if not impossible, otherwise.
Even if Visual Basic isn't a full-fledged object-oriented programming language, you can still use its classes to better organize your code into truly reusable modules and design your applications entirely using concepts derived from the Object-Oriented Design discipline. In this sense, the inclusion of a tool such as Visual Modeler in the Enterprise Edition is a clear sign of Microsoft's will to pursue this goal.
Most important, objects are the base on which almost every feature of Visual Basic is implemented. For example, without objects you can't do serious database programming, you can't deliver Internet applications, and you can't write components for COM, DCOM, or MTS. In short, you can do little or nothing without a firm grasp on what objects are and how you can take advantage of them.If you're absolutely new to object-oriented programming, this could be the most difficult chapter of the entire book for you to grasp. To understand how objects can help you write better programs in less time, you must be ready for a conceptual leap, not unlike the leap that many programmers had to take when switching from pure procedural MS-DOS languages such as QuickBasic to newer and more sophisticated event-driven programming environments such as Visual Basic. But once you grasp the basic concepts of OOP, you'll probably agree that objects are the most exciting thing to happen to Visual Basic since its first version. When you dive into object-oriented programming, you'll soon find yourself devising new, concise, and elegant solutions to old problems, often in less time and with less code. But I don't want to sound intimidating. As a Visual Basic programmer, you've already learned to master many advanced programming techniques concerned with, for example, events, database programming, and user interface issues. OOP isn't more difficult, it's merely different. And it's certainly a lot of fun.
If you've ever read books or articles about OOP, you surely found dozens of different definitions for the term object. Most of the definitions are correct and confusing at the same time. The definition I like most is this one:
An object is an entity that embeds both data and the code that deals with it

alireza_vb
چهارشنبه 15 شهریور 1385, 17:53 عصر
مسلم که شی گراست
یک زبان برنامه نویسی oop که یعنی همون شی گرا که تا حالا ساده ترین زبان برنامه نویسی
که هم پرکاربرد برای مبتدیان و حرفه ای هاست
سخت ترین زبان برنامه نویسی از نظر من Assembly هست که تحت داس هستش

VB یه زبان تمامان شی گرا نیست یلکه نیمه شی گراست . فقط VB.NET به معنای واقعی شی گراست
--------------------

بله . شیء گرائی باید ما به ازای Runtime هم داشته باشه ، یعنی تو یک شیء میسازی ، و در زمان اجرا یک شیء ساخته میشه ، و Runtime برنامه ، یک شیء رو مدیریت کنه ؛ اما کدهای VB اصطلاحا" Native نیستند ( کدهای VB یا اصطلاحا" P-Code ها در زمان اجرا توسط Runtime اش ترجمه میشه ) و در فضای آدرسی یک برنامه نوشته شده با VB چیزی بنام شیء وجود خارجی نداره . به این دلیل VB شیء گرا نیست ، بسادگی ، یعنی برنامه ، از اشیاء تشکیل نشده ، حتی اگر در زمان طراحی کد ، با همان ویژگیهای ناقص بتونی یک کلاس تولید کنی و ...

VB یه زبان شی گراست البته اگه بخوای در سطح بالا از اون استفاده کنی نه برای جمع و تفریق
--------------------

سلام
همونطوری که Inprise (http://barnamenevis.org/forum/member.php?u=1341) فرمودند زبان برنامه نویسی وی بی یک زبان برنامه نویسی شی گرا نیست
وی بی یک زبان برنامه نویسی ماژولار ه
به این معنی که شما وقتی قصد دارید از توابع وی بی استفاده کنید یک Instance جدید از اونو ایجاد نمی کنید. بلکه با ذکر نام اون متد مستقیماً بهش دسترسی پیدا می کنید

کلیدواژه ایجاد یک شی در وی بی New هست. شما در طول نوشتن یک برنامه چند باره این کلمه رو به کار می بریدة؟



شما با یک نگاه به یک زبان اینقدر اطلاعات کسب می کنید که می تونید دربارش نظر بدید؟
ضمناً مطمئنی پیتون به اندازه کافی عمومی هست؟؟؟


VB تمامان MODULAR نیست بلکه در اون از اشیا استفاده هم میشه مثل MICROSOFT SCRIPTING RUNTIME

alireza_vb
چهارشنبه 15 شهریور 1385, 18:02 عصر
اگه شیء گرا نیست ممکنه بگید که Class module ها یا خود فرم‌ها چی‌هستن
اگه شیء نیستن حتما فایل Bitmap هستن

و در مورد اشاره‌گر هم اگه یه ذره با برنامه‌نویسی شیء گرا آشنا باشید می‌فهمید که اشاره‌گرها یکی از نیازهای مهم توی این جور برنامه‌نویسی هستن و با نبودن اونها یه سری مشکلات و محدودیت‌ها پیش میاد
البته VB راه‌های جایگزین هم داره که باید یواش یواش یاد بگیرید
فعلا بهتره اول با دلفی آشنا بشید بعدش بیاید سراغ محیط‌های پیشرفته‌ی مایکروسافت...

و یه دوست دیگه‌ی ما هم گفته بودن که ما چه‌قدر از New استفاده می‌کنیم !!!
اگه شما استفاده نمی‌کنی دلیل می‌شه که VB شیء گرا نیست؟؟؟؟؟

ولی خودمونیم VB کاملان هم سی گرا نیست اگه تو با #C.NET 2005 کار کنی معنای شی گرایی تمام رو میفهمی یعنی همه چی شیعه همه چی
--------------------

@oVERFLOW : شاید بعد از اینکه در مورد تئوری زبانهای برنامه نویسی به اندازه کافی مطالعه کنی و تجربه کار کردن با چند تاشون رو در عمل داشته باشی، این نکات بیش از حد بدیهی به نظر برسند اما چون به نظرم میاد برای تو و دوستان کم تجربه مفید هستند مینویسمشون .

مفهوم Object Oriented به معنای "امکان وجود داده ها و روتین های کپسوله شده" در زبان برنامه نویسی نیست ، به معنای "مبتنی بر شیء" بودن روند برنامه نویسی هست . تو وقتی از C و Win32 API استفاده میکنی ، با CreateWindow فرم و پنجره و کنترل میسازی ، با SetText کپشن و تکست بهشون میدی ، و ... در حال برنامه نویسی با C و روتینهای سیستم عامل هستی ، برنامه ات کامل و حتی بی نظیر هم میتونه باشه ، ولی به هر حال شی گرا نیست ؛ ویژوال بیسیک هم مبتنی بر چنین فرهنگی هست ، یعنی بجای استفاده از متدی که کل روند توسعه رو مبتنی بر تولید کلاس و ساختن شیء و مدیریت اونها بکنه ، فقط توابع ویندوز رو در روتینها و ساختارهائی بسته بندی کرده که بشه به سرعت باهاش برنامه نوشت . محیطهائی مثل دات نت ، جاوا ، و تا حدی دلفی ، بر اساس OO کار میکنند ، اما وقتی با Borland C++5 و Win32 API کد مینویسی ، یا با ویژوال بیسیک ، یا با فاکس پرو ، در حال تجربهء OO نیستی . شاید اگر لازم شد بعدا" در مورد نقش وجود اشاره گر ، در تولید اشیاء و VTable ها و غیره توضیح بدم ، اما نحوهء ساختن کلاسها و اشیاء ، قانون و فرمول به خصوصی نداره . یعنی لازم نیست ما همواره یک چیزی رو new کنیم که خیال کنیم برنامه ما شی گراست . یک برنامه نویس دلفی همیشه برنامه های شیء گرا مینویسه ، بدون اینکه لازم باشه در تمام عمرش یکبار از new استفاده کنه فی المثل . نحوه تولید و برخورد با کلاسها و اشیاء بستگی به طراحی زبان داره ، و در هر حال ویژوال بیسیک یک زبان شیء گرا نیست . این نه لزوما" خوب هست و نه لزوما" بد .

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

M.GhanaatPisheh
پنج شنبه 16 شهریور 1385, 09:58 صبح
دوست عزیز
تو مسائل فنی، تقریبا ، ممکنه و شاید کمتر استفاده می شه. به خیلی از مسائل باید به دید باینری نگاه کرد. یک زبام یا شیء گرا هست یا نیست. به قول اینپرایز (ع) بعد از اعمال قوانین OO شرط لازم برای اعمال مفهوم OO به زبان ، مدیریت زمان اجرای اشیاء هست. چیزی که VB از آن بی بهره است. اینجا بعداز اثبات شء گرا نبودن VB کلاسیک که یه مساله واضح و پیش پا افتاده هست بحث در باره ذات شیء گرائی است که باید از دید Inprise به مساله نگاه کرد(دید واقعی).

Armanprogrammer
پنج شنبه 16 شهریور 1385, 11:39 صبح
این link و ببینین بد نیست
Applying Object Oriented Programming in VB.NET (Part I) ... In this article, we will see how to implement the features of OOP in VB.NET. ...
www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=3460&lngWId=10
--------------------
تو این link کلا در مورد شی گرایی صحبت میکنه و به ما نشون میده که چجوری میشه شی گرایی تو vb ایجاد کنیم

adelmobasheri
سه شنبه 04 مهر 1385, 06:22 صبح
من فکر می کنم زمانی که وبی 6 ساخته شد مساله شی گرایی مطرح نبوده و اصلا چیزی به اسم شیئ گرایی امروزی وجود نداشته
ولی در وی بی آن موقع می شده اشیایی رو تعریف کرد
شیئ گرایی پیشرفتی بود مانند ساخت یافته شدن زبان های برنامه نویسی که به تدریج کلیه زبان های برنامه نویسی از آن استفاده می کنند

قابل ذکر هست که سه مفهوم اصلی در برنامه نویسی شی گرا وجود داره:

1-Encapsulation بسته بندی
2-inheritance وراثت
3-polymorphism چند ریختی
برگرفته از کتاب برنامه نویسی با دلفی.

اَرژنگ
سه شنبه 04 مهر 1385, 07:47 صبح
Object-Based vs. Object-Oriented Environments
http://www.windowsitpro.com/Article/ArticleID/26106/26106.html?Ad=1

Bahram0110
پنج شنبه 13 مهر 1385, 15:20 عصر
به نظر من بله شی گرا من 3 سال vb کار میکردن ولی یه چیزی بگم واقا بیخود الان دارم
delphi کار میکنک به نظر من واقا عالی هست من که خیلی راضی ام و زبان خیلی قوی هست
من خودم ویژوال بیسیک رو کامل بلدم ولی دلفی رو کمتر بلدم.
با این حال حاضر نیستم با وی بی برنامه بنویسم.
ولی شما می تونید برنامه های سادهء خودتون رو با وی بی بنویسید.

amirsadeghi
پنج شنبه 20 مهر 1385, 06:09 صبح
ای بابا همه جا نوشته که وی بی 6 شی گرا هست

ارشام یگانه
سه شنبه 28 آذر 1385, 23:33 عصر
بله شی گراست صد در صد چون از خصوصیات اشیا بیرون در وی بی مثالهای زیادی هست

mafia4tris
چهارشنبه 06 دی 1385, 14:12 عصر
خیلی ممنون میشم که در آخر بگویید که ویژوال بیسیک شی گرا هست یا نیست

اَرژنگ
چهارشنبه 06 دی 1385, 14:38 عصر
همانطور که اساتید گفتند، شیئگرا نیست.
کسانی که میگند شیگراست، فرقه بینه
Object Based و Object Oriented را نمیدانند:
این هم یک لینک برایه کمک به فهمیدن،
http://www.windowsitpro.com/Article/ArticleID/26106/26106.html

a_mohammadi_m
پنج شنبه 19 بهمن 1385, 10:05 صبح
با سلام به همگی
باز هم می گویم خود میکروسافت گفته Vb یک زبان شیئی است نه شی گرا
همان Object base نه Object Oriented
با اینحال مطمئن باشید که تمام اصول شی گرایی را میشود در پروژه های Vb پیاده سازی کرد البته با توابع API یا برنامه نویسی با Class Module ها ، در ضمن کدهای VB هم می توانند P-Code باشند هم Native ، ویژگیهای کامپایل پروژه را ببیند!
نهایتا عرض کنم که Vb یک زبان بسیار عالی است چه v.6 چه جدیدتراش
من خودم 10 سالی می شود با VB 6 کلی پروژه حرفه ای اجرا شده در سطح کشور نوشته ام
که دارای دیتابیس با بیش از یک میلیون رکورد در فقط یک جدولش بوده است ( واقعا بیش از یک میلیون رکورد اون هم با Access که دیتابیس مربوطه بیشتر از 250 مگابایت شده بود ، موضوعش هم سیستمهای پردازش اطلاعات دانش آموزی بوده )
خلاصه من که با VB خیلی خیلی حال می کنم
هر کی مگه ضعیفه برا خودش میگه
درضمن من همینجا یک پست چند روز پیش داشتم الان نمی بینمش

والسلام

CodeMasterX
چهارشنبه 25 بهمن 1385, 01:41 صبح
من به همه دوستانی که میگن VB شیء گرا هست پیشنهاد میکنم سعی کنند مثلا یک سیستم بازی شطرنج رو باهاش طراحی کنند.در نیمه های کار خواهند دید که چه محدودیت هایی خواهند داشت و اینکه VB شیء گرا هست یا نه.بعد از اون میتونید همین کار رو با استفاده از Delphi یا C++ انجام بدید.به نظر من بهتره این دوستان مطالعات فنی و تجربه عملی خودشون رو ارتقا بدن.
همون طور که اساتید هم عرض کردن من هم برای بار هزارم می گم که VB Object-Based هست نه Object-Oriented.

CodeMasterX
دوشنبه 30 بهمن 1385, 01:52 صبح
باز هم برای بار هزارم از زبان خودم و اساتیدی مثل Inspire عزیز میگم که VB6 شیء گرا نیست.VB6 همونطوری که یکی از دوستان براتون لینک مطلبش رو هم گذاشته بودن Object-Based هست یعنی مبتنی بر شیء هست ولی شی گرا نیست.شما در VB6 وقتی که یک متغیر از نوع مثلا String تعریف میکنید در واقع تنها یک اشاره گر ساختید که هنگام فراخوانی به سراغ کلاس String در VB6 میره ولی یک شیء String جدید ایجاد نکردید! و این چیزی هست که دقیقا در محیطی مثل دات نت بر عکس هست.به دوستان توصیه می کنم که قبل از نتیجه گیری کورکورانه و شتاب زده مطالعه و تحقیق خودشون رو بالاتر ببرن.از طرفی هم باز مثل گفته بقیه دوستان باید بگم که شیء گرا بودن یا نبودن یک محیط،Object-Based بودن یا Object-Oriented بودن یک محیط و زبان برنامه نویسی نه نشانه قدرت و نه نشانه ضعف اون هست.هر زبان و محیط برنامه نویسی برای منظور و هدفی خاص با بازه از امکانات و قابلیت های خاص طراحی شده و میشه.بعضی وقت ها ممکنه برای طراحی یک سیستم بزرگ از جند زبان و محیط برنامه سازی استفاده کرد!

موفق باشید.

a_mohammadi_m
دوشنبه 30 بهمن 1385, 13:36 عصر
با سلام
بابا این VB اینقدر ها هم ضعیف نیست
دوستان کم لطفی نکنن

mehdi_taheri59
یک شنبه 02 اردیبهشت 1386, 17:46 عصر
من یک بانک اطاعاتی با فیلدهای مختلف از نوع عددی دارم که می خواهم نمودار نقطه ای آنها در فواصل 5 ثانیه روی نمودار بیاید یعنی یک نمودار دینامیک داشته باشم که در روی آن هر فیلد با یک رنگ و اعداد هر فیلد هر مثلا 5 ثانیه از روی بانک update بشه لطفا من را راهنمایی کنید

majidghost
جمعه 14 اردیبهشت 1386, 22:46 عصر
مسلماً شی گراست این vb

CodeMasterX
شنبه 15 اردیبهشت 1386, 20:28 عصر
مسلماً شی گراست این vb

عزیز مثل اینکه شما این تاپیک رو درست مطالعه نکردی!
VB6 شیء گرا نیست عزیز من بلکه مبتنی بر شیء هست.فقط بعضی از تکنیک های شیء گرایی رو ساپورت میکنه.
دیگه جوابی نمی دم چون آف تاپیک میشه!

اَرژنگ
یک شنبه 16 اردیبهشت 1386, 04:49 صبح
مسلماً شی گراست این vb
دلیلی، منبعی و یا اینکه چطوری این وی‌بی ۶ شرایط شی گرا بودن را برا آورده میکند را میتونید اراعه بدید؟

majidghost
دوشنبه 17 اردیبهشت 1386, 14:40 عصر
VB6 شیء گرا نیست عزیز من بلکه مبتنی بر شیء هست.فقط بعضی از تکنیک های شیء گرایی رو ساپورت میکنه.
منظور منم همین بود

pedihacker
سه شنبه 29 خرداد 1386, 08:16 صبح
ببینید من مثل شما حرفه ای نیستم ولی در یک کتاب از یک مهندس خونده بودم که شیع گرا هست و همچنین در یک CD آموزشی

CodeMasterX
چهارشنبه 30 خرداد 1386, 01:11 صبح
ببینید من مثل شما حرفه ای نیستم ولی در یک کتاب از یک مهندس خونده بودم که شیع گرا هست و همچنین در یک CD آموزشی


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

emadct
چهارشنبه 30 خرداد 1386, 11:17 صبح
سلام،

خود مایکروسافت شدیدا اعتقاد داره که VB6 یک زبان شیئ گرا. و این رو در کتابهای مختلف Visual Basic خودش اهم از Designing Desktop Applications Using Microsoft Visual Basic و Advance Visual Basic Programming اعلام کرده.

3 اصل اصلی OO یعنی Encapsulation، Inheritance و Polymorphism در Visual Basic وجود داره. اینکه به شما چه مقدار آزادی داده شده که از این خصوصبات استفاده کنید دلیل نمی شه که زبانی OO نباشه.

کلاسهای Visual Basic به طور کامل از خصوصیات Private و Public استفاده می کنند و کلاسهای نوشته شده توسط VB به صورت کلاس استاندارد در سیستم تعریف می شود (یعنی دارای Vtable، Early Binding و Late Binding)

Visual Basic با استفاده از کلمه کلیدی implements به شما قابلیت Inheritance و Polymorphism رو یکجا میده. درسته که شما در زبان C++ میتونید این دو قضیه رو خودتون جدا کنید ولی جدا نبودن ایندو در Visual Basic دلیل بر این نیست که VB زبانی شیئ گرا نیست.

شما می تونید Polymorphism رو در VB خیلی ساده تست کنید. یک Instance از Parent ایجاد کنید و اشاره گری از نوع Child در اون بذارید تا Late Binding رو به صورت کامل ببینید.

حالا سوال پیش میاد که چطور اشاره گری از Child رو در Parent بذارم در حالی که VB اشاره گر نداره. من این کار رو با استفاده از API موجود به نام CopyMemory انجام می دم.

تنها سوالی که اینجا پیش میاد اینه که، حالا که VB از OO به طور کامل پشتیبانی می کنه (به خاطر اینکه مجبوره. زیرا باید COM، DCOM، ActiveX و OLE رو پشتیبانی کنه) ولی این قدرت رو به طور کامل به کاربر اعطا نمی کنه میشه اون رو جزء زبان های OO گذاشت یا نه

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

موفق باشید
EmadCT
MCSD, MCP

CodeMasterX
پنج شنبه 31 خرداد 1386, 02:58 صبح
جواب شما سطح اطلاعات و مطالعات و شدیدا تجربه کاری برنامه نویسی شما رو نشون میده.
عزیز من VB6 شیء گرا نیست، مبتنی بر شیء هست.استفاده و ارتباط برقرار کردن با COM,ActiveX دلیلی بر وجود امکانات شیء گرایی نداره، اصلا ربطی نداره.
بعد از اون کی گفته که VB6 وراثت رو پشتیبانی می کنه ؟ شما چقدر با VB6 کار کردی ؟
ضمنان باید بگم دوست عزیز من محدوده زندگی متغیر ها و آبجکت ها (Private,Public,Global) ربطی به شء گرایی ندارن خیلی، این فقط یکی از مفاهیم خیلی ساده شیء گرایی هست که تقریبا تمام زبان های برنامه نویسی نسل جدید ساپورتش می کنن.
شما تاپیک رو کامل بخون، ببین چه مطالبی ارائه شده، ضمنان مایکروسافت تو هیچ کدوم از کتابهاش به شئ گرا بودن VB6 اشاره نکرده، بنده تقریبا تمام کتابهای انتشارات مایکروسافت درباره VB6 رو خوندم، فقط اشاره شده که مبتنی بر شئ هست و بعضی مفاهیم شئ گرایی رو عرضه میکنه.

اگر میخواین در باره دات نت حرف بزنیم که باید برین سراغش و ببنید شیء گرایی یعنی چی، اونوقت دیگه اصلا اسم VB6 رو هم بع عنوان ابزار برنامه سازی نمیارید.

emadct
پنج شنبه 31 خرداد 1386, 09:33 صبح
ابتدا سلام عرض می کنم خدمت شما دوست عزیز که با ستاره های زیادت معلومه که از ادمین های این گروپ هستی

>> جواب شما سطح اطلاعات و مطالعات و شدیدا تجربه کاری برنامه نویسی شما رو نشون میده.
سال 2002 که من MCSD گرفتم در ایران کمتر کسی بود که بشناسه این مدرک رو، حرفی که می زنم بر روی مدارک زنده موجود که تو ادامه Reference میدم.

>>عزیز من VB6 شیء گرا نیست، مبتنی بر شیء هست.استفاده و ارتباط برقرار کردن با COM,ActiveX دلیلی بر وجود امکانات شیء گرایی نداره، اصلا ربطی نداره.
شما اگر کمترین اطلاعاتی در رابطه با COM داشته باشی می دونی که در نوشتن اشیاء COM وجود Polymorphism در ابتدای کار برای شیء IUnknown ضروری و لازم و عدم وجود Polymorphism کل وجود COM رو زیر سوال میبره و این رو هم می دونید که ActiveX بر پایه COM.
(بخشی از سمینار Microsoft TechDays Conference سال 2003 Copenhagen)

WikiPedia اعتقاد داره که VB از نوع Object Based.
ولی خود Microsoft در سایت خودش, در مقالات منتشر شده در سمینار 2004 Dublin و در کتاب های متعددبه Object Oriented بودن VB اشاره کرده و درسایت اعلام کرده که:
Visual Basic supports inheritance, the ability to define classes that serve as the basis for derived classes. Derived classes inherit, and can extend, the properties, methods, and events of the base class. Derived classes can also override inherited methods with new implementations. All classes created with Visual Basic are inheritable by default.

حالا من نمی دونم شما از کجا میگی که در VB چیزی به نام Inheritance وجود نداره. به جز Support خود VB از Inheritance، این اجازه به شما هم داده میشه که از کلاسهاتون Inherit کنید. در ضمن در مورد Polymorphism، به نمونه زیر نگاه کنید:

Class 1
-------------------
Public Sub a()
MsgBox "A"
End Sub


class 2
-----------------
Implements Class1
Public Sub B()
MsgBox "B"
End Sub

Private Sub Class1_a()
MsgBox "Hello"
End Sub

------------------------------------------------
Master Form:
Private Sub Form_Load()
Dim c1 As New Class1, c2 As New Class2
c1.a

Set c1 = c2

c1.a

End Sub

که در c1.a اول جمله A نمایش داده می شود و در c1.a دوم به دلیل وجود Polymorphism و Late Binding در VB کلمه Hello نمایش داده می شود.
شما در این Forum به این چی می گید ؟


>> بعد از اون کی گفته که VB6 وراثت رو پشتیبانی می کنه ؟ شما چقدر با VB6 کار کردی ؟
Microsoft. قبل از اینکه شما بدونی زبانی به نام VB هست.

>> ضمنان باید بگم دوست عزیز من محدوده زندگی متغیر ها و آبجکت ها (Private,Public,Global) ربطی به شء گرایی ندارن خیلی، این فقط یکی از مفاهیم خیلی ساده شیء گرایی هست که تقریبا تمام زبان های برنامه نویسی نسل جدید ساپورتش می کنن.
من جوابتو نمی دم : ربطی به شیئ گرایی نداره --- مفاهیم خیلی ساده شیء گراییه. !!!!!!
در ضمن میشه برای من که بیش از 12 سال دارم رو OO کار می کنم بگی Encapsulation چیه و چطور طبق نظریه شما ربطی به Public Private نداره؟


>> شما تاپیک رو کامل بخون، ببین چه مطالبی ارائه شده، ضمنان مایکروسافت تو هیچ کدوم از کتابهاش به شئ گرا بودن VB6 اشاره نکرده، بنده تقریبا تمام کتابهای انتشارات مایکروسافت درباره VB6 رو خوندم، فقط اشاره شده که مبتنی بر شئ هست و بعضی مفاهیم شئ گرایی رو عرضه میکنه.
اگر شما این کتاب ها رو خوندی، من به بیش از 300 نفر درس دادمشون که بیش از 20 نفرشون MCSD، MCAD ، MCPD و بقیه مدارک رو گرفتن.

Visual Basic has gradually become more and more object oriented, and Visual Basic 6 has continued this trend. Whether Visual Basic 6 is fully object-oriented according to some academic's definition is irrelevant. However, it is vital to recognize that the only way to build successful systems using Visual Basic 6 is to develop them from an object-oriented design. An object-oriented design can be developed successfully only from an object-oriented analysis. Object-oriented analysis revolves around the identification of business objects. Identifying business objects responsible for data and function eliminates duplication of data and function.

People often say that Visual Basic is not properly object oriented. I would answer that if you were comparing it with C++, you're both right and wrong. Yes, it isn't C++; it's Visual Basic!

C++ is a generic, cross-platform programming language designed around a particular programming paradigm that is, subjectively, object oriented. It is based on and influenced by other programming languages such as Simula, C, and C with Objects2.

Visual Basic has evolved—and has been influenced, too—according to system considerations, not primarily to different languages. It was designed to be platform specific; there's not an implementation for the VAX computer, for example. Visual Basic's object orientation, then, is not primarily language based. Its object-oriented language constructs are not there to implement object orientation directly but rather to best utilize the object-oriented features of the operating system—in Windows, of course, this means ActiveX.

این بندها از کتاب Advanced Microsoft Visual Basic نوشته آقای Stephen Guty بر داشت شده که یکی از دوستان خوبه منه. ایشون یکی از برنامه نویسان شرکت Microsoft و در ضمن کتاب های زیادی هم داره که چند باز از آقای Bill Gates برای نوشتن این کتابها هدیه دریافت کرده. اگه با خودش صحبت کنی میگه که "من دوست ندارم تو کتابهام به کسی توهین کنم و مطالبی که می نویسم اغلب در ویرایش موسسه Microsoft Press بخشهای زیادی از اون حذف میشه". دقیقا سر این کتاب بیش از 40 خط در باره کسانی که میگن VB از نوع OO نیست صحبت کرده بود و با دلیل نشون داده بود که VB یک زبان OO. که تمامی اونها به دلیل لحنش پاک شد و تنها بخشی که مونه همین چند خط که بازهم با لحن خنده به طرفش می گه:
اگر VB رو با VC مقایسه کردی، در باره OO بودن اون می تونی شک کنی چون VB هیچگاه VC نیست.
در ضمن کلمه People در کتب فنی مایکروسافت برای آدمهای احمق! به کار می ره. کلمه خوب برای افراد دانا Programmer, Developer و Users.

>> اگر میخواین در باره دات نت حرف بزنیم که باید برین سراغش و ببنید شیء گرایی یعنی چی، اونوقت دیگه اصلا اسم VB6 رو هم بع عنوان ابزار برنامه سازی نمیارید.
دوست عزیز لطفا بحث .Net رو نکن که در ایران من ندیدم کسی بیشتر از 1 درصد از .net بهره ببره. بحث Enterprise، بحث Distributed ، بحثهای Session Management که به .net اضافه شده، کمترین استفاده ای در اینجا نمی شه. فقط به خاطر اینکه میشه Database رو Drag کرد تو فرم و یه آهنگ برای انتخاب کرد و اونو رو CD رایت کرد و به عنوان برنامه Multimedia فروخت همه رفتن به سمت .Net - در صورتی که اگر شما کمترین اطلاعاتی در رابطه با .Net داشته باشید می دونید هدف مایکروسافت این بوده که به طور کل Windows Application هارو حذف کنه.

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

در مورد VTable و کلاسهای پویا در Windows مطالعه کنید چون به نظرم اومد شما مطالب رو تنها به اسم می شناسید.

کار من VBنیست من بیشترین برنامه نویسی رو در زبان C++ کردم، خوشحال می شم در اون مورد هم اگر بحثی هست با هم انجام بدیم.

امیدوارم موفق باشید
EmadCT
Microsoft Certified Solution Developer, MCP

CodeMasterX
پنج شنبه 31 خرداد 1386, 23:41 عصر
اول از همه سلام به شما دوست عزیز.
یکی از استادهام که خیلی چیزها ازش یاد گرفتم چیزی به من یاد داد که هیچ وقت فراموش نمی کنم : "جسارت در بیان عقیده و جرات در پذیرش اشتباه".بنابراین من نمیگم خدا هستم و حرفی که میزنم همینه و بس! نه، اگر اشتباهی هم کرده باشم میپذیرم و درستش رو یاد میگیرم.
ببینید دوست عزیز، اول از همه امیدوارم لحن پست قبلیم سوء تفاهمی ایجاد نکرده باشه، بنده فقط قصد توضیح مساله رو داشتم.شما هم تجربه و دانشتون قابل احترام هست.

>> در مورد استفاده از دات نت در ایران:

شما به قول معروف People رو در نظر نگیرین.تو ایران شکر خدا به دلیل وجود سی دی های کرک شده و منابع کتابی بسیار بسیار ارزون و (مزخرف!) همه دیگه برنامه نویس شدن و با نوشتن 4 تا برنامه و 2 تا مقاله به خودشون میگن برنامه نویس و آقای مهندس! ولی شما برین ببینید توی ایران انفورماتیک تهران و شرکت های اساسی و خوب چیکارا دارن می کنن.چند تا شرکت سیستم های امنیتی و رباتیک توی تهران و شیراز داریم که از دات نت استفاده می کنن و محصولات دولتی و خصوصی بسیار خوب و پیشرفته ای هم عرضه کردن.شرکت های برنامه نویسی و طراحی وب سایت ها هم خوب دارن تو ایران کار میکنن.ولی حالا دیگه بسه موضوع بحث ما این نیست.

ببینید، Polymorphism و Encapsulation چیزی نیست که کسی مثل من بخواد ازش بع عنوان شئ گرایی یاد کنه.درسته که از مفاهیم پایه شئ گرایی هستن، ولی واقعا کار خاصی انجام نمیدم.زبان VB6 یه برنامه برای تولید سریع و اسان نرم افزارهای کاربردی بوده و هست و با همین هدف هم طراحی شد.اگر شما قصد برنامه نویسی هوش مصنوعی، شبکه های عصبی،پردازش تصویر،میکرو ها،بازی های کامپیوتری (2D,3D) کنید هیچ کاری برای شما انجام نمیده (ولی نه به این منظور که هیچ کاری هم نمشه باهاش کرد).

درسته که ActiveX برپایه COM هست و شئ گرایی هم در اونها لحاظ شده و لازمه، ولی VB6 دقیقا همچین امکاناتی رو به شما نمیده.دستورات کلیدی Implements,Inherit و غیره در وی بی 6 خیلی کاری ازشون بر نمیاد مگر فقط در همین حدی که به یک کلاس لینک بشه (و کمی پیشرفته تر).شما میتونید توی VB6 بگید mFirstName.ToUpper ؟! نه، بنابراین اصلا نمیدونه شئ چی هست ؟

در آخر برای اینکه تاپیک الکی ادامه پیدا نکنه و پست های تکراری و الکی هم اضافه نشن، باید بگم که :

مهم نیست که من و شما و هر کسی وقت بذاریم و روی شئ گرا بودن یا نبودن و امکانات یک ابزار تولید نرم افزار بحث کنیم.بی خیال بشیم و بریم سراغ Business! حالا هر کسی دانش و تجربه خودش قابل احترام و ستایش، هر کسی با هر ابزاری که دوست داره و بلده کار کنه کارش رو انجام میده.اگر شما VB6 کارتون رو راه میندازه و جوابگو هست خود با اون کارهاتون رو انجام بدین، اگر به امکانات و قابلیت های پیشرفته تری نیاز دارین، برین سراغ ابزاری که اون امکانات رو برای شما فراهم میکنه، حالا هر ابزاری.این خطاب به تمام دوستان هست که هنوز دارن روی خوبی و برتری و ضعف ابزارهای موجود جر و بحث می کنن.یکیشون رو انتخاب کنید و کار کنید! دیگه بسته به نیازی که دارین خود به خود به سمت ابزار های مناسب خواهید رفت.

با تشکر.

emadct
جمعه 01 تیر 1386, 10:56 صبح
سلام، این جواب آخرت با بقیه جوابها به طور کلی فرق داشت، تماما مطالب درست بود. ١- VB6 صد در صد VB6 توانایی نوشتن شبکه‌های عصبی، ساختمانهای داده، Robotics، System Base Software و ... رو نداره و تو این مطلب که هیچگاه قدرت OO خودش رو در اختیار کاربر نمیذاره شکی نیست. در اصل استفاده از OO در VB مثل اینهکه من بخوام توی Qbasic با استفاده از دستور Call PTR که یک بخشی از حافظه رو صدا میزنه دستورات اسمبلی Run کنم و بگم چون در Qbasic موجود درDOS میشود برنامه‌های Assembelly نوشت پس از نظر قدرت هیچ چیز از C++ در DOS کمتر نداره پس قدرت این دو یکیه و بیام تمام برنامههای C++ رو با Qbasic پیاده کنم. ١٠٠% میشه ولی هیچوقت به Qbasic به چشم یه زبان قوی نگاه نمیشه. مشکل من هم همین بود، در این فروم جوابهایی مطرح شده بود مبنی بر اینکه در VB ماچیزی به نام Object نداریم و VB هیچ بویی از OO نبرده. که مسائل حل شد ٢- Visual Basic vs Visual C صد در صد Visual C قدرت و کارائی بیشتری رو در اختیار کاربر قرار می‌ده ولی این دلیل بر ضعیف بودن VB نمیشه. من 2 سال در مرکز تحقیقات دانشگاه شریف AICTC بودم، زمانی در مرکز تحقیقات مخابرات بودم ITRC و الان هم در مرکز تحقیقات نفت روی پروژه کارت هوشمند کار می کنم و شرکت های بزرگی که شما میگی رو خیلی از اونها رو دیدم. بله ما شرکتها و افرادی رو در کشور داریم که روی زبانهای برنامه نویسی خانواده .net کار می‌کنند و به صورت صحیح از اون استفاده می‌کنند و خیلی هم در پیشرفت Web Application ها در مقابل Desktop App's فعال بودند ولی این گروه زیر 1 هزارم درصد هستند. بخش اعظم افراد استفاده کننده از .net سرو کار با Wizard دارند که این به برنامه نویسی کشور ضرر زده. تا 3 سال گذشته اگر کسی برنامه DB می بایست می نوشت باید به سمت VB یا VC میرفت و در بین کار چون خیلی از بخش ها در دست خودش بود می بایست خیلی چیزها رو یاد بگیره که اون چیزها بهش کمک می‌کرد. من افراد این گروه رو مورد خطاب قرار نمی‌دم ولی افرادی هستند الان که با Drag کردن چند Table خودشون رو برنامه نویس می دونن و در خیلی جاها بحث‌هایی می‌کنند که واقعا دور از اصول برنامه نویسی. من 2 هفته ای میشه با این گروپ آشنا شدم، در بحث های مختلف دیدم که افراد خوبی اینجا جمع هستند و اطلاعات عمومی که رد و بدل میشه میشه Rank خوبی بهش داد. در مورد خودم، من چند سالیه با Windows دیگه سرو کار ندارم و کارم با لینوکس. پس نیازی به VB ندارم و جوابهای داده شده به خاطر تعصب من به VB نبود. ولی در مکانی که خودش رو قویترین فروم برنامه نویسی یه کشور میدونه، نباید خیلی حرفها زده بشه که از نظر قدرت ضعیف باشند. ادمین های این گروپ رو تو این چند روزه بعضی از Post هاشونو خوندم و معلومه که حرفی که می زنند هر چقدر ساده صحیحه. Admin های قوی معمولا اجازه به بحث‌های ساده و جناحی نمی‌دند واز شما به عنوان یک فرد فعال در این گروپ می‌خوام که به چیز‌های ساده با دقت بیشتری نگاه کنید. چند وقتی طول میکشه که من با اینجا آشنا شم ولی امیدوارم از این به بعد بحثهایی داشته باشیم که نتیجش به چند نفر کمک کنه. امیدوارم موفق باشید. Emad

مرتضی دولتخواه
جمعه 01 تیر 1386, 12:40 عصر
اینکه اگه کسی برنامه نویسی بلد نیست ، دلیل نمی شه که اون زبان خاص اینطوریه یا اونطوری.(منظورم به اون عزیزانی هست که تجربه کاریشون تو ست کردن چنتا پراپرتی ختم شده)

CodeMasterX
جمعه 01 تیر 1386, 15:50 عصر
آقا عماد ممنون.

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

بعد از اون لازم میدونم به نوبه خودم ورود شما به این فروم رو تبریک و خوش آمد بگم.
انشاالله شاهد مباحث و سوال و جوابهای حرفه ای و تخصصی تر خواهیم بود.

m1975b
پنج شنبه 25 مرداد 1386, 18:02 عصر
به نظر من هستش ولی کمتر از سری دات نت.
من 5 سال است که با وی بی کار میکنم و مشکلی نبوده که با اون نتونم حلش کنم.

PC2st
جمعه 30 شهریور 1386, 06:46 صبح
این بندها از کتاب Advanced Microsoft Visual Basic نوشته آقای Stephen Guty بر داشت شده که یکی از دوستان خوبه منه.
دوست عزیز که به این کتاب استناد کرده بودید، لطفا یکبار دیگر این جمله ای که در اون کتاب نوشته شده رو بخونید:


Visual Basic's object orientation, then, is not primarily language based

معنی اش این خواهد بود: "شیئ گرایی VB، بنابراین، اصلا اساس زبان نیست" و بعبارت بهتر "اصلا زبان VB از روی شیئ گرایی اساس نشده است"
که این جمله، خود گویای تمامی مطالب خواهد بود.


و همچنین بار دیگر این جمله رو بخونید:


Its object-oriented language constructs are not there to implement object orientation directly but rather to best utilize the object-oriented features of the operating system—in Windows, of course, this means ActiveX

متوجه خواهید شد که شیئ گرایی VB رو به feature های سیستم عامل ربط میده نه به خود زبان!

SeniorDevs
چهارشنبه 11 مهر 1386, 22:45 عصر
من تمام این تاپیک را از ابتدا تا انتها دنبال کردم اما نکته جالب این است که هرکس از زبان برنامه نویسی که بلد است طرفداری می کند.

دوستان، روز به روز شرکت های نرم افزاری قدرتمندی در جهان پا به عرصه وجود می گذارند و با همین زبان های برنامه نویسی مانند VB، VC و Delphi برنامه های قدرتمندی را طراحی می کنند و اما ما هنوز بر روی قابلیت های این زبان ها بحث می کنیم که این جای بسی تاسف دارد.

نکته قابل توجه این است که اکثر دوستان در این تاپیک می گویند فلان کتاب یا فلان مهندس یا فلان شرکت گفته که VB6 شیء گرا است یا نیست اما کسی نمی گوید که به این دلیل شیء گرا است یا به این دلیل شیء گرا نیست. (البته جسارتا)

می دانید چرا؟ چون در ایران تا به امروز برنامه تجاری غیر Database نوشته نشده است بنابراین سطح اطلاعات برنامه نویسان ایرانی فقط روی Database مستقر شده است. (لطفا منفی موضع گیری نکنید این یک حقیقت است فقط کافی است به سابقه کاری خودمان نگاه کنیم)

و اما آیا VB6.0 شیء گرا است یا نه؟
جواب سوال بالا را با ذکر چند مثال ساده در ادامه به عرض شما دوستان عزیز خواهم رساند.

حتما همه شما درباره دو مقوله بسیار مهم و کلیدی Object-Based Programming و Object-Oriented Programming مطالب زیادی دیده و یا خوانده اید اما مطمئنا بعضی از دوستان مفهوم آنها را بطور کامل درک نکرده اند.

"شیء گرایی" فقط برای ساده کردن اصلاحات بر روی برنامه ها طراحی شده است که در اوایل سال 1980 در آزمایشگاه بل در زبان ++C به نقطه اوج خود رسید و شاید بتوان گفت که شروع یک تحول عظیم در طراحی سیستم عامل ها باشد.

به هر حال، برای فهم مقوله شیء گرایی لازم است مفاهیم کلاس های مبنا (Base Class) و کلاس های مشتق شده (Derived Class) را ابتدا بررسی کنیم.

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


در زیر نحوه خلق کلی کلاس ها معرفی شده است:

کلاس مبنا > کلاس مشتق شده 1 > کلاس مشتق شده 2 > کلاس مشتق شده 3 > کلاس مشتق شده 4 و . . .

یا به زبان برنامه نویسی VB.NET می شود:

Dim C1 As CMain
Dim C2 As C1
Dim C3 As C2
Dim C4 As C3
...

در خط اول CMain کلاس مبنا و C1 کلاس مشتق شده است اما در خط دوم C1 به کلاس مبنا تبدیل شده و C2 کلاس مشتق شده است و در خط سوم C2 به کلاس مبنا تبدیل شده و C3 کلاس مشتق شده است و به همین ترتیب تا آخر.

یعنی هر کلاس مشتق شده می تواند خود یک کلاس مبنا قرار گیرد که این امر در VB6 امکان پذیر نیست. در کد بالا کلاس مشتق شده C4 دارای تمام متدها، خصوصیات و متغیر های Public موجود در کلاس های C1، C2 و C3 می باشد اما به زبان VB6 امکان پذیر نیست چون VB6 فقط توارث یگانه (Unique Inheritances) را پشتیبانی می کند.

در توارث یگانه، یک کلاس از یک کلاس مبنا مشتق می شود یعنی ما فقط یک سطح Inheritance داریم که به شکل زیر است:

Dim C1 As CMain

اما دیگر ما نمی توانیم سطح دوم را که Dim C2 As C1 است تعریف کنیم و به همین ترتیب تا آخر.

اما در توارث چندگانه (Multi-Inheritances)، یک کلاس از بیش از یک کلاس مبنا مشتق می شود که متاسفانه VB6 توارث چندگانه را پشتیبانی نمی کند.


حال شما خودتان قضاوت کنید که آیا VB6 شیء گرا است یا نه؟
پاسخ من با توجه به مستندات بالا خیر است VB6 به معنای واقعی کلمه شیء گرا نیست اما از 98 درصد ویژگی های شیء گرایی پشتیبانی کامل می کند و می شود آن 2 درصد محدودیت را هم با ترفند های خاصی بر طرف کرد.



اما سوال اصلی اینجا است چون VB6 به معنای واقعی کلمه شیء گرا نیست پس ضعیف است؟ پس ما باید بدنبال .NET برویم؟ پس ما باید زبان VC یاد بگیریم؟و ...
نه دوستان.


مهم این نیست که با چه زبانی برنامه نویسی می کنید مهم اینست که از امکانات آن زبان برنامه نویسی حداکثر استفاده را بکنید.


امیدوارم توانسته باشم منظورم را بطور کامل بیان کنم.
با تشکر:چشمک:

ali2000_1358
چهارشنبه 25 مهر 1386, 09:25 صبح
دوستانی که vb رو شی گراء می دونن میشه بگن ارث بری در vb چگونه انجام می پذیرد

khepelesibilo
جمعه 11 آبان 1386, 00:15 صبح
یادم میاد یه جایی،کلمه :
شبه شی گرا
رو برای ویژوال بیسیک 6 خوندم،پارامترهای زیادی از یک زبان شی گرا توو ویژوال بیسیک اومده،یک سری از اشیا از قبل آماده هم که تووش به کار برده میشه (دکمه و هر عنصر دیگه توو ویژوال بیسیک ، یک شی هستن )‌اما این زبان از لحاظ شی گرایی کامل نیست و همین کلمه شبه شی گرا براش کامل ترینه!

100 البته هممون می دونیم که vb.net بالاخره کاملا شی گرا شده ...

babakj
جمعه 21 دی 1386, 16:21 عصر
دوست عزیز
وقتی به یه زبان شی گرا گفته می شه که چند فاکتور اساسی شی گرائی را پشتیبانی کنه.
Encapsulation
Inheritance
Polymorphism
Composition
Conclusion

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

حفظ احترام دیگران در ادبیات نوشتاری یکی از اصول اولیه زندگی (زنده ماندن) در این انجمن است.

بله کاملا درسته - شی گرایی یک تعریفی داره که نبود هر یک از این تعاریف گفته شده یک زبان رو از داشتن خصوصیت شی گرایی محروم می کنه - درسته که Vb از بعضی مفاهیم شی گرایی مانند کلاس ها و فانکشنها که در واقع هدف Encapsulation رو دنبال می کنه پشتبانی می کنه اما از مفاهیم و تعاریف دیگر شی گرایی پشتیبانی نمی کند .

مثل این است که بگوییم هر چیزی که پرواز می کند هواپیما است !
وبی 6 یک زبان شی گرا نیست

rostamkhani
پنج شنبه 04 بهمن 1386, 03:55 صبح
سلام به همگی
به نظر بنده اگه ماکروسافت آدم بود یه IDE ویک محیط کامل مثل VS2005 برای برنامه نویسی
در VB6 با مکانات و ابزارها و کامپونتهای پیشرفته تر مینوشت و ایرادات VB6 رفع میکرد
اونو کاملا او او پی میکرد .
اگه net. خوب بود ماکروسافت برنامه هاشو باهاش مینوشت .
به نظر بنده vb6 خیلی خوبه دستشون درد نکنه ولی اگه ماکروسافت ایران بود
بهتر از اینم میشد اگه بتونید با ++VC کارکنید خیلی بهتره
net. برا نوشتن برنامه های دیتابیس خوب ولی من از اول باهاش حال نکردم البته کلی باهاش برنامه نوشتم و آموزش میدم ولی آخر استسماره
اول که همه رو اسیر ویندوزش کرده بود حالام برنامه نویسارو داره اسیر net. میکنه اگه دستش میرسید میگفت
برنامه نویسی فقط با فلان کیبورد میشه و برنامه ها فقط با فلان سخت افزار اجرا میشن

اوبالیت به بو
جمعه 05 بهمن 1386, 19:38 عصر
سلام به همگی
به نظر بنده اگه ماکروسافت آدم بود یه IDE ویک محیط کامل مثل VS2005 برای برنامه نویسی
در VB6 با مکانات و ابزارها و کامپونتهای پیشرفته تر مینوشت و ایرادات VB6 رفع میکرد
اونو کاملا او او پی میکرد .
اگه net. خوب بود ماکروسافت برنامه هاشو باهاش مینوشت .
به نظر بنده vb6 خیلی خوبه دستشون درد نکنه ولی اگه ماکروسافت ایران بود
بهتر از اینم میشد اگه بتونید با ++VC کارکنید خیلی بهتره
net. برا نوشتن برنامه های دیتابیس خوب ولی من از اول باهاش حال نکردم البته کلی باهاش برنامه نوشتم و آموزش میدم ولی آخر استسماره
اول که همه رو اسیر ویندوزش کرده بود حالام برنامه نویسارو داره اسیر net. میکنه اگه دستش میرسید میگفت
برنامه نویسی فقط با فلان کیبورد میشه و برنامه ها فقط با فلان سخت افزار اجرا میشن
من حرف شما رو تا حدودی قبول ندارم. شما اگه ببینید ما با vb برنامه هایی داریم که چند سالن در ادارات و سازمانهای ما کار می کنن. هم برنامه های تحت شبکه هم برنامه های پایگاه داده البته .NET جایه خودش رو داره ولی نباید منکر این شد که vb جز محبوب ترین زبانهایه برنامه نویسی هستش.
درسته که قدرش به JAVA و Perl نمی رسه ولی جوابگویه نیاز جامعه هستش و شما مطمئن باش که مایکروسافت فکر همه جایه این نرم افزار (ویژوال بیسیک) رو کرده.
همچنین بگم که زمانی که ویژوال بیسیک به بازار اومد تمامی سیستم عامل ها تحت نظر مایکروسافت بود و مایکروسافت Vb و .NET رو برای سیستم عامل خودش یعنی ویندوز به بازار عرضه کرد نه برای unix ها همون طور که پاسکال نوشته شد تمامی برنامه ها تحت نظر پاسکال بودن و در اصل C بعد از پاسکال تونست جا باز کنه. این همه مطلب که گفتم خواستم یه چیزی رو بگم که غول های برنامه نویسی برای خودشون یک سری امتیازاتی قائل هستند که مخصوص خودشون هست. مثل مایکروسافت یا Sun یا Borland و ....

Zeytoon
یک شنبه 28 بهمن 1386, 11:04 صبح
vb6 شی گراست و مقایسه آن با زبانهای بعد از ان و درجه دادن به نظر بنده کار اشتباهی است .
vb6 باید در جایگاه خودش برسی بشه و در جایگاه خودش شی گرا بوده .
و شی گرایی در برنامه نویسی پیشرفت میکند و دارای امکانات و تعاریف جدیدتری خواهد شد .
به نظر بنده اگر در آینده شی گرایی دارای تعاریف دقیقتر و پیشرفتهای مهم بشود و خیلی قوی تر از آنکه در net. امروزی هست نباید در ان زمان بگوییم net. شی گرا نیست یا نبوده
vb6 در زمان خودش خیلی خوب و قوی بوده و در حال حاضر با وجود net. برنامه های بزرگی با آن مینویسیند .

Mbt925
یک شنبه 28 بهمن 1386, 17:47 عصر
vb6 شی گراست و مقایسه آن با زبانهای بعد از ان و درجه دادن به نظر بنده کار اشتباهی است .
vb6 باید در جایگاه خودش برسی بشه و در جایگاه خودش شی گرا بوده .
و شی گرایی در برنامه نویسی پیشرفت میکند و دارای امکانات و تعاریف جدیدتری خواهد شد .
به نظر بنده اگر در آینده شی گرایی دارای تعاریف دقیقتر و پیشرفتهای مهم بشود و خیلی قوی تر از آنکه در net. امروزی هست نباید در ان زمان بگوییم net. شی گرا نیست یا نبوده
vb6 در زمان خودش خیلی خوب و قوی بوده و در حال حاضر با وجود net. برنامه های بزرگی با آن مینویسیند .

دوست عزیز اگه بحث های این تاپیک رو دنبال می کردید ، کاملا به این موضوع پی می بردید که آیا ویبی منطبق با تعاریف شیء گرایی هست یا نه.
و این پست احساسی و بی پایه و اساس رو نمی زدید.

misterxsib
پنج شنبه 08 فروردین 1387, 01:42 صبح
کل مطالب مفید گفته شده بدون ذکر تعداد تکرار هر مطلب:

خصوصیات اصلی یک زبان شی گرا
inheritance
overloading
overriding
Polymorphism
Abstraction
Encapsulation
تنها خاصیت شی گرایانه موجود در وی بی 6 قابلیت قرار دادن class module ها در برنامه و ساختن شی از روی آنهاست.
زبان وی بی 6 یک زبان object-based است نه object-oriented
با وی بی 6 هم میشه p-code‌ ساخت هم native (؟)چند نفر از دوستان هم گفته بودن که : هر کی با هر چی دوست داره کار کنه اصلا کی گفته شی گرایی خوبه:چشمک:
ولی این وسط یکی یه چیزی گفته بود که واقعا سر در نیاوردم:

مسلما شیء گراست

ولی با یه سری محدودیت‌ها مثل عدم پشتیبانی از اشاره گرها که یه کم کار رو مشکل می‌کنه

ولی اگه قرار باشه جواب بله یا خیر داده بشه جواب بله خواهد بود...
دوست خوبم!منظورتون اینه که سی شارپ هم شی گرا نیست!!!؟؟؟؟

بله . شیء گرائی باید ما به ازای Runtime هم داشته باشه ، یعنی تو یک شیء میسازی ، و در زمان اجرا یک شیء ساخته میشه ، و Runtime برنامه ، یک شیء رو مدیریت کنه ؛ اما کدهای VB اصطلاحا" Native نیستند ( کدهای VB یا اصطلاحا" P-Code ها در زمان اجرا توسط Runtime اش ترجمه میشه ) و در فضای آدرسی یک برنامه نوشته شده با VB چیزی بنام شیء وجود خارجی نداره . به این دلیل VB شیء گرا نیست ، بسادگی ، یعنی برنامه ، از اشیاء تشکیل نشده ، حتی اگر در زمان طراحی کد ، با همان ویژگیهای ناقص بتونی یک کلاس تولید کنی و ...
میشه بیشتر توضیح بدید!

110110
پنج شنبه 29 فروردین 1387, 00:29 صبح
Visual Basic OOP nist vali Object aware hastesh