View Full Version : فرق VB6 با VB.net
nima_chapter85
یک شنبه 13 اسفند 1385, 02:23 صبح
اگه می شه از استاد های محترم خواهش دارم تفاوت های ظاهری و امکانات اضافه و تفاوت دستورات و اجرای اونا رو VB6 با VB.net بگین ممنون می شم
behzad_gh
یک شنبه 13 اسفند 1385, 18:04 عصر
اگه می شه از استاد های محترم خواهش دارم تفاوت های ظاهری و امکانات اضافه و تفاوت دستورات و اجرای اونا رو VB6 با VB.net بگین ممنون می شم :متعجب: :متعجب: :متعجب:
امکانات و تفاوتها اونقدر زیاده که حتی نمیشه لیستش کرد . فرض کن از Basic داس بیای روی VB6 یا از روی Win3.1 البته اگر کار کرده باشید بیایید رو XP .
touraj
یک شنبه 13 اسفند 1385, 21:38 عصر
اگه می شه از استاد های محترم خواهش دارم تفاوت های ظاهری و امکانات اضافه و تفاوت دستورات و اجرای اونا رو VB6 با VB.net بگین ممنون می شم
راحت ترین کاری که میتونی کنی اینه که net. رو نصب کنی. همون لحظه اول متوجه اختلاف بسیار زیادش میشی. تقریباً همه چیزش فرق میکنه!
nima_chapter85
دوشنبه 14 اسفند 1385, 01:13 صبح
منظوره من تفاوت های کلی هست مثلا داشتن فلان toolbar اضافی ویا کار برد دستوری خاص در VB و کاربرد همان دستور در VB.net به گونه ی دیگر و .....
اَرژنگ
دوشنبه 14 اسفند 1385, 02:44 صبح
منظوره من تفاوت های کلی هست مثلا داشتن فلان toolbar اضافی ویا کار برد دستوری خاص در VB و کاربرد همان دستور در VB.net به گونه ی دیگر و .....
به جایه اختلافاتشان تنها تشبیهاتشان را بگیم بشه.
هر دو ویبی دارند در اسمشان، و از لحاز سینتکس شبیهند ولی هیچ ربطی بهم ندارند.
به هر حال به جایه اینکه وقتت را اینطوری تلف کنید، داتنت یاد بگیر، کلی بیتر سود داره تا اختلاف لیست کردن.
SeniorDevs
دوشنبه 14 اسفند 1385, 11:42 صبح
دوست عزیز، من ابتدا تفاوت های VB6.0 را با VB.NET بیان می کنم و سپس در مورد آن توضیح می دهم و سپس خودتان قضاوت کنید:
در زبان VB6.0 برای استفاده از تکنولوژی Multi-Threading باید با مفاهیم بسیار پیچیده TLS آشنا باشید تا بتوانید یک برنامه Safe Threading را طراحی کنید اما در VB.NET شما در صورت دانستن مفاهیم ابتدایی Multi-Threading قادر هستید برنامه متوسطی بسازید نه حرفه ای. چون هنوز VB.NET بطور کامل این تکنولوژی را Support نمی کند.
در زبان VB6.0 شما یک جعبه ابزار ToolBox نسبتا کاملی در اختیار دارید که تا حد خوبی احتیاجات برنامه نویسان متوسط را برآورده می کند اما Vb.NET دارای جعبه ابزار بسیار گسترده ای است تا حدی که برنامه نویسان را تنبل کرده است و در واقع برنامه نویس اصلا دیگر کدی نمی نویسد تنها Property های کنترل ها را set می کند که این کار شرکت Micr$soft در آینده می تواند آینده ما برنامه نویسان را به خطر بیندازد .
برنامه های کامپایل شده با زبان VB6.0 به ماشین مجازی MSVBVM60.DLL برای اجرا شدن نیاز دارند که حجمی در حدود 1.5 مگابایت دارد اما برنامه های کامپایل شده با VB.NET به NET FrameWork نیاز دارند که حجمی در حدود 20 مگابایت دارد و دارای Class های بیشماری در اکثر زمینه ها است که واقعا برنامه نویسان را مفت خور کرده است.
زبان VB6.0 قادر است با استفاده از Webclass ها برنامه های کاربردی مبتنی بر ASP تولید کند که تا امروز بیشترین استفاده را در دنیا داشته است اما VB.NET با استفاده از WebForm ها برنامه های کاربردی مبتنی بر ASP.NET تولید می کند که به نظر شخصی من به غیر از مفت خوری هایی که در ASP.NET شده است تفاوت چندانی با ASP ندارد همانطور که ASP.NET حتی نتوانسته است بزرگترین بانک اینترنتی جهان E-Gold را مجبور به استفاده از خود کند فقط کافی است به آدرس https://www.e-gold.com (https://www.e-gold.com/) بروید تا ببینید که تمامی صفحات آن با ASP نوشته شده اند بنابراین ASP.NET و ASP تفاوت چندانی با هم ندارند.
فایل های خروجی VB6.0 بصورت 32 بیتی کامپایل می شوند و VB.NET هم همینطور است.
فایل خروجی VB6.0 بصورت EXE میباشد یعنی به زبان ماشین 80x86 در آمده است و دیگر نمی توان آن را به شکل سورس کد اولیه اش درآورد اما از آنجایی که VB.NET فایل EXE خروجی اش را به زبان ماشین کامپایل نمی کند بنا براین به راحتی می توان با یک VB.NET Decompiler آنرا به شکل سورس کد اولیه اش درآورد فقط کافی است یک Search در اینترنت بکنید. بنابراین VB6.0 بسیار بسیار ایمن تر و قابل اطمینان تر است چون تمام زحمات برنامه نویسان را به یکباره نابود نمی کند.
. . . . . .حال می خواهم یک نتیجه گیری کنم :
اگر تمام مطالب مستند بالا را خوب خوانده باشید متوجه می شوید که بین VB6.0 و VB.NET تفاوت چندانی وجود ندارد فقط اگر می خواهید با کنترل های VB.NET بازی کنید بروید بسوی VB.NET و اگر می خواهید واقعا به معنای واقعی کلمه برنامه نویسی کنید از نظر من VB6.0 تمام احتیاجان یک برنامه نویس متوسط و حرفه ای را یکجا برآورده کرده است و از امنیت بالاتری هم بر خوردار است.
و بر طبق آخرین اعلامیه ها، شرکت Microsoft در نظر دارد پشتیبانی از VB6.0 را به مدت 10 سال دیگر تمدید کند و همچنین تمامی فایل های RunTime زبان VB6.0 را هم برای راحتی کار برنامه نویسان بصورت پیش فرض در ویندوز Vista قرار داده است. در link زیر شما می توانید سند این مطلب را ببینید:
http://msdn2.microsoft.com/en-us/vbrun/ms788708.aspx
دوست عزیز این جمله یکی از بزرگترین برنامه نویسان جهان است که همیشه سعی کن بخاطر داشته باشی:
مهم این نیست که با چه زبانی برنامه نویسی می کنید بلکه مهم اینست که از امکاناتی که آن زبان برنامه نویسی در اختیار شما قرار داده است بهترین استفاده رو بکنید.
با آرزوی موفقیت برای شما:متفکر:
nima_chapter85
دوشنبه 14 اسفند 1385, 13:29 عصر
من دکمه تشکر رو زدم ولی به نظر من این دوست عزیز باید بیشتر تقدیر بشه دستت واقعا درد نکنه از همون اول من می خوام بگم همین جور تفاوت ها رو بگین ولی ...
DonetKarvb
دوشنبه 14 اسفند 1385, 17:30 عصر
در زبان VB6.0 برای استفاده از تکنولوژی Multi-Threading باید با مفاهیم بسیار پیچیده TLS آشنا باشید تا بتوانید یک برنامه Safe Threading را طراحی کنید اما در VB.NET شما در صورت دانستن مفاهیم ابتدایی Multi-Threading قادر هستید برنامه متوسطی بسازید نه حرفه ای. چون هنوز VB.NET بطور کامل این تکنولوژی را Support نمی کند.
منظورتون از به طور کامل چیه؟ چه چیز را میشود در Vb 6.0 پیاده سازی کرد در حالی که همان را ساده تر, راحت تر و مطمئن تر نمیشود در Vb.Net مخصوصا" Vb.Net 2005 پیاده سازی کرد؟؟
در زبان VB6.0 شما یک جعبه ابزار ToolBox نسبتا کاملی در اختیار دارید که تا حد خوبی احتیاجات برنامه نویسان متوسط را برآورده می کند اما Vb.NET دارای جعبه ابزار بسیار گسترده ای است تا حدی که برنامه نویسان را تنبل کرده است و در واقع برنامه نویس اصلا دیگر کدی نمی نویسد تنها Property های کنترل ها را set می کند که این کار شرکت Micr$soft در آینده می تواند آینده ما برنامه نویسان را به خطر بیندازد .
مگر کار برنامه نویس فقط ست کردن چند پراپرتی است؟ ما این ابزار ها و برنامه ها را با C نیز میتوانیم پیاده سازی کنیم. مطمئنا" کسی که با C برنامه مینویسد خیلی کار سختی میکند ولی چرا این زبان برای کارهای سنگین طرفدار چندانی ندارد!!؟
خیلی اوقات در پروژهای بزرگ شروع به نوشتن یک کامپوننت میکردیم که در جاهای مختلف ازش استفاده کنیم ولی الان با این ToolBox تا حدی از این دوباره کاری ها کم شده و مطمئنا" چیزی که مایکروسافت ارائه میکنه درصد وجود باگ در اون ابزار خیلی کمتر از درصد وجود باگ در ابزارهایی است که خودمون مینویسم. به نظر من خیلی خوبه که آدم بتونه low-Level کار کنه ولی از طرفی هم به این اعتقاد دارم که " نباید چرخ را دوباره اختراع کرد" . وقتی که میشه یک برنامه رو سریعتر تحویل صاحب کار داد چرا اینقدر خودمون رو درگیر کارهای جانبی کنیم!!؟؟
برنامه های کامپایل شده با زبان VB6.0 به ماشین مجازی MSVBVM60.DLL برای اجرا شدن نیاز دارند که حجمی در حدود 1.5 مگابایت دارد اما برنامه های کامپایل شده با VB.NET به NET FrameWork نیاز دارند که حجمی در حدود 20 مگابایت دارد و دارای Class های بیشماری در اکثر زمینه ها است که واقعا برنامه نویسان را مفت خور کرده است.
ای کاش در کلامتان ادب را نیز رعایت می نمودید.
در دنیای امروزی با پیشرفت سخت افزار دیگر حجم برنامه ها زیاد مهم نیست.
زبان VB6.0 قادر است با استفاده از Webclass ها برنامه های کاربردی مبتنی بر ASP تولید کند که تا امروز بیشترین استفاده را در دنیا داشته است اما VB.NET با استفاده از WebForm ها برنامه های کاربردی مبتنی بر ASP.NET تولید می کند که به نظر شخصی من به غیر از مفت خوری هایی که در ASP.NET شده است تفاوت چندانی با ASP ندارد همانطور که ASP.NET حتی نتوانسته است بزرگترین بانک اینترنتی جهان E-Gold را مجبور به استفاده از خود کند فقط کافی است به آدرس https://www.e-gold.com (https://www.e-gold.com/) بروید تا ببینید که تمامی صفحات آن با ASP نوشته شده اند بنابراین ASP.NET و ASP تفاوت چندانی با هم ندارند.
تامین اجتماعی ایران هم همچنان تحت داس کار میکند. پس نتیجه می گیریم که این شرکت هم زیر بار زور .Net نرفته است
فایل های خروجی VB6.0 بصورت 32 بیتی کامپایل می شوند و VB.NET هم همینطور است.
شما با Visual Studio 2005 میتوانید برای سیستم های 64 بیتی نیز برنامه بسازید. ( به قدری این مطلب واضح است که از بیان سند خود داری میکنم )
فایل خروجی VB6.0 بصورت EXE میباشد یعنی به زبان ماشین 80x86 در آمده است و دیگر نمی توان آن را به شکل سورس کد اولیه اش درآورد اما از آنجایی که VB.NET فایل EXE خروجی اش را به زبان ماشین کامپایل نمی کند بنا براین به راحتی می توان با یک VB.NET Decompiler آنرا به شکل سورس کد اولیه اش درآورد فقط کافی است یک Search در اینترنت بکنید. بنابراین VB6.0 بسیار بسیار ایمن تر و قابل اطمینان تر است چون تمام زحمات برنامه نویسان را به یکباره نابود نمی کند.
برنامه های دات نت پس از کامپایل به زبان IL تبدیل میشوند که امکانات زیادی را برای برنامه نویسان ایجاد کرده است. ولی اگر شما بخواهید از این برنامه ها محافظت کنید ابزار زیادی وجود دارد نظر XenoCode .
از امکانات دات نت میتوان به پشتیبانی از ADO.Net نام برد به ویژه Ado 2.0 که توسط این ابزار شما میتوانید از خیلی از قابلیت های SQL Server 2005 استفاده کنید.
حال می خواهم یک نتیجه گیری کنم :
همیشه هر وقت که یک چیز جدیدی وارد میشود ( نه فقط در زمینه برنامه نویسی هرچیز و هرجا) مطمئنا" کسانی با آن مخالف و کسانی با آن موافق هستند. یکی از این نمونه ها به بازار آمدن ویندوز بعد از Dos بود که برنامه نویسان زیادی به مخالفت پرداختند و... ولی الان کمتر کسی هست که روی سیستمش ویندوز نداشته باشد. دات نت هم برای خودش موافق و مخالفانی دارد که به مرور زمان این مشکل حل خواهد شد و به قول این دوستمون حداکثر یا حداقل تا 10 سال دیگر شاهد خواهیم بود که بدون دات نت نمیتوان برنامه نویسی کرد!!
CodeMasterX
دوشنبه 14 اسفند 1385, 18:05 عصر
دوست عزیز از مطرح کردن مطالبی که قبلا در سایت دربارشون بحث شده خودداری کنید.
VB6 و VB.NET کاملا دو زیان و محیط برنامه سازی متفاوت هستند.شما میتونید به آدرس زیر برین و در قسمت Getting Started برید.یه سری مطالب هم توی خود سابت تو بخش دات نت هست.می تونی کتاب های بازار رو هم مطالعه کنی.تکنولوژی هایی که این دو محیط بر اونا استوار هستن کاملا متفاوت هستن.توضیح خود MS.NET Framework میتونه یه کتاب 2000 صفحه ای رو پوشش بده!
http://msdn.microsoft.com/vb
nima_chapter85
سه شنبه 15 اسفند 1385, 01:46 صبح
دوست عزیز از مطرح کردن مطالبی که قبلا در سایت دربارشون بحث شده خودداری کنید.
VB6 و VB.NET کاملا دو زیان و محیط برنامه سازی متفاوت هستند.شما میتونید به آدرس زیر برین و در قسمت Getting Started برید.یه سری مطالب هم توی خود سابت تو بخش دات نت هست.می تونی کتاب های بازار رو هم مطالعه کنی.تکنولوژی هایی که این دو محیط بر اونا استوار هستن کاملا متفاوت هستن.توضیح خود MS.NET Framework میتونه یه کتاب 2000 صفحه ای رو پوشش بده!
http://msdn.microsoft.com/vb
دوست عزیز (کاربر تازه وارد ) بزار مطالب مفید مطرح بشه و تو هم سعی کن چیز جدید یادبگیری
SeniorDevs
چهارشنبه 16 اسفند 1385, 00:54 صبح
دوست عزیز جناب nima_chapter85 از لطفی که به بنده داشتید متشکرم.
تفاوت های کلیدی دیگر VB6.0 و VB.NET رو می خواهم بصورت کامل تر بیان کنم:
1. در VB.NET شما برای ایجاد برنامه ها دارای دو نوع Forms هستید Windows Forms و Web Forms که شما از Windows Forms برای ایجاد برنامه های کاربردی تحت ویندوز Windows Based Applications استفاده می کنید و از Web Forms برای ایجاد برنامه های کاربردی تحت وب Web Based Applications . و دقیقا همین موارد را در VB6.0 نیز ما دارا هستیم و فقط در اینجا نام Web Class در VB6.0 با زبان ASP به نام Web Forms در VB.NET با زبان ASP.NET تغییر پیدا کرده است.
2. در VB6.0 کنترل هایی برای کار با DAO و RDO به نام Data Binding Controls که واسط هایی برای کار با Database ها هستند وجود دارد اما در VB.NET شما فقط و فقط از DAO و RDO می توانید در Code استفاده کنید و دیگر هیچ کنترل ActiveX ی به نام Data Binding Controls وجود ندارد.
3. در VB6.0 برای ارتباط با اکثر Database های معروف مانند Access، SQL SERVER 2000، FoxPro، Sybase، Bitreve، DB2 و غیره باید از اشیاء دسترسی داده ADO استفاده کرد اما در VB.NET باید از ADO.NET استفاده کرد و تنها تفاوت ADO.NET با ADO این است که از SQL SERVER 2005 پشتیبانی می کند البته باز هم بگویم که در Engine هیچ تفاوتی با هم ندارند البته فقط یکسری Property های نچندان مهم به ADO.NET اضافه شده است.
4. در VB6.0 یک نوع داده به نام Variant وجود دارد که می تواند تقریبا همه انواع داده VB6.0 را پشتیبانی کند و حالا در VB.NET نوع داده Variant و Object در هم ادغام شده اند و به نوع داده Object تبدیل شده اند. یعنی فقط نام عوض شده است.
5. در VB6.0 نوع داده ی 16 بیتی به نام Integer و نوع داده ی 32 بیتی به نام Long وجود دارد اما در VB.NET نوع داده Integer به 32 بیت و نوع داده Long به 64 بیت تبدیل شده است. که باعث شده است محدوده اعداد صحیح در VB.NET تقریبا با زبان های برنامه نویسی دیگر مانند Delphi یکسان شود. و در این مورد باید از مایکروسافت تشکر کرد.
6. در VB6.0 به صورت پیش فرض نیازی به تعریف متغیر ها Variables نیست اما در VB.NET بصورت پیش فرض حتما ابتدا باید متغیر ها را تعریف کرد و سپس از آنها استفاده نمود. که از نظر من عالی است و اشتباهات برنامه نویسان متوسط را کاهش می دهد.
7. در VB6.0 هر Object دارای یک Property پیش فرض است یعنی اگر شما فقط نام آن Object را در کد تان بنویسید و دیگر معین نکنید که می خواهید از کدام یک از Property های آن Object استفاده کنید VB6.0 بصورت پیش فرض به Property پیش فرض آن Object رجوع می کند که بسیار بسیار ویژگی عالی است اما این ویژگی عالی دیگر در VB.NET وجود ندارد مثلا دستور (Call MsgBox (Text1 در VB6.0 خصوصیت Text کنترل Text1 را نمایش می دهد اما در VB.NET تولید یک Error می کند و باید اینگونه تعریف شود:
( Call MsgBox (Text1.Text .
8. در VB6.0 شما می توانید یک متغیر آرایه Array تعریف کنید با Lower Bound ی که می تواند هر عدد 32 بیتی منفی یا مثبت باشد مثلا Dim MyArray(-1000 To +1000) As Long اما در VB.NET شما فقط باید از Lower Bound ی که برابر 0 است هنگام تعریف آرایه استفاده کنید مثلا Dim MyArray(0 To +1000) As Long . یعنی در VB.NET یک ویژگی بسیار خوب حذف شده است به همین سادگی. انگار مایکروسافت باید حتما VB را شبیه زبان های C یا Delphi کند بابا پس استقلالت کجا رفته است.
9. در VB6.0 ما می توانیم به راحتی خواص کنترل ها را هم با اعداد Set کنیم و هم با ثابت هایشان مثلا Form1.WindowState = 1 اما در VB.NET این تولید Error می کند و ما باید به این شکل کار کنیم Form1.WindowState = vbMaximized . یعنی باید لقمه را از پشت در دهانمان بگذاریم.
10. در VB6.0 هنگام تعریف متغیر های رشته ای به طول ثابت Fixed Length String به این روش عمل می کنیم Dim MyVar As String * 255 اما در VB.NET به این شکل:
(Dim MyVar As New VB6.FixedLengthString(255 .
11. در VB6.0 توابع بسیار بسیار محشری وجود دارند که هنگام ساخت الگوریتم های رمز گذاری و فشرده سازی خیلی استفاده می شوند مثلا VarPtr، StrPtr، ObjPtr و غیره اما شرکت Micr$soft با احترام کامل و دقیقا بدون هیچ دلیلی آنرا را در VB.NET حذف کرده است. این واقعا شرم آور است البته شاید بعضی ها بگویند که این توابع در VB6.0 مستند شده نیستند و مایکروسافت هیچ تعهدی نسبت به توسعه انها نداشته است که کاملا درست است اما مایروسافت باید نظر برنامه نویسان VB6.0 را ابتدا جویا می شد و بعد اقدام می کرد.
12. در VB6.0 کلمات کلیدی Keywords در خود محیط IDE وجود داشتند و نیازی به Import آنها به داخل IDE نبود که این امر کد نویسی را زیبا تر می کرد اما در VB.NET تمامی Keywords ها از محیط IDE حذف شده اند و شما باید قبل از استفاده از انها ابتدا انها را به داخل IDE الحاق Import کنید. البته به نظر من بد نشد شاید هم بهتر شد.
13. در VB.NET دیگر متد Form1.PrintForm وجود ندارد. اما امکانات بسیار خوبی برای Print کردن در VB.NET قرار داده شده است که قابل تقدیر است.
14. در VB6.0 شیی به نام Clipboard وجود دارد که میتوان به وسیله آن حافظه کلیپ بورد ویندوز را مدیریت کرد اما در VB.NET شما باید ابتدا آن را در محیط IDE الحاق Import کنید به این شکل Import System.Windows.Clipboard و بعد از ان استفاده کنید. به نظر من این Object در VB.NET بسیار موثر تر شده است که باید از شرکت مایکروسافت تشکر کرد.
15. در VB.NET دیگر نمی توان از کنترل OLE Container استفاده کرد شاید برای بعضی از برنامه نویسان بد شده باشد اما در کل به روش دیگری می توان در VB.NET از اشیاء OLE استفاده کرد البته شاید مشکل تر باشد.
16. در VB6.0 کنترلی به نام Shape وجود دارد که بیشتر برای زیبا سازی محیط فرم ها از آن استفاده می کنند اما در VB.NET بطور کامل حذف شده اند.
17. در VB6.0 شما فقط دارای یک کنترل به نام Menu هستید که بوسیله آن می توانید یک Menu ی ساده ویندوزی برای برنامه خود بسازید اما در VB.NET شما دارای دو کنترل به نام های MainMenu و ContextMenu هستید که همان کار را زیبا تر و حرفه ای تر انجام می دهند و می توانند در Shell ویندوز یعنی همان جایی که نرم افزاری مثل WinRAR منو های خود را گذاشته Menu بگذارند یعنی در RightClick .
18. در VB6.0 شما دارای یک ویژگی بسیار منحصر به فرد هستید یعنی تکنولوژی Dynamic Data Exchange DDE که بوسیله آن می توانید با برنامه های EXE متفاوت صحبت کنید و داده ردوبدل کنید اما وای بر مایکروسافت آخه بابا چرا DDE را در VB.NET حذف کردی. با کدام منطق. هرچند می توان دوباره با توابع API از DDE استفاده کرد.
19. متد های گرافیکی مانند Circle, CLS, Pset, Point از محیط VB.NET حذف شده اند و به جای آنها متد های گرافیکی بسیار قدرتمندی قرار داده شده است البته باز هم به پای توابع API گرافیکی ویندوز مانند GetDIBits و SetDIBits وغیره نمی رسند.
20. در VB6.0 شما برای کنترل خطا ها از دستور On Error GoTo استفاده می کنید اما در VB.NET حرفه ای تر شده است یعنی شما می توانید برای خطا هایتان بلوک Block تعیین کنید با دستور Try Catch . که در این مورد هم باید از شرکت مایکروسافت تشکر کرد.
21. تمامی Add-Ins های VB6.0 در محیط IDE ویژوال بیسیک دات نت هم کار می کنند و من به شخصه برای این کار خوب از مایکروسافت تشکر می کنم.
22. در VB6.0 شما هنگام احضار توابع نیاز ندارید از پرانتز ها در گرداگرد آرگومان های تابع استفاده کنید مثلا InStr Str1, Str2, 1 اما در VB.NET حتما باید استفاده کنید که این کار من را یاد برنامه نویسی در MS VC++6 می اندازد و البته عالی است
(Instr (Str1, Str2 , 1 .
23. در VB6.0 ما هنگام Debug برنامه از پنجره Immediate استفاده می کنیم و با دستور Debug.Print در همین پنجره زیاد کار می کنیم اما در VB.NET این دستور به Debug.WriteLine تغییر یافته است که البته زیبا تر است و فقط نام تغییر کرده است.
24. در VB6.0 حلقه While با دستور Wend به پایان می رسد اما در VB.NET با دستور End While به پایان می رسد.
25. تمامی دستورات Open کردن فایل ها در VB.NET تغییر کرده است البته فقط از نظر نام. مثلا در VB6.0 برای باز کردن فایل ما از دستور Open FileName For Binary As #1 استفاده می کنیم اما در VB.NET از تابع FileOpen(1, FileName, OpenMod.Input .
البته هم VB6.0 و هم VB.NET هنوز فایل های بیشتر از 2 گیگابایت را Support نمی کنند.
26. در VB6.0 تمامی Form ها و PictureBox ها دارای Handle Device Context HDC می باشند یعنی تمامی اطلاعات و داده های مربوط به تصویر لود شده در این اشیاء در این محل ذخیره می شود و از HDC می توانیم برای کار توابع گرافیکی API ویندوز مانند GetPixel، SetPixelV، GetDIBits، SetDIBits، SetDIBitsToDevice و غیره استفاده کنیم اما در VB.NET خاصیت HDC حذف شده است و برنامه نویسان گرافیکی را در یک جمله نابود کرده است چون HDC جزء جدا ناپذیر از کار های گرافیکی است.
دوستان هنوز تفاوت های زیادی وجود دارند اما مهمترین هایشان اینها بودند. می بینید که VB6.0 و VB.NET دقیقا یک IDE دارند و بیشتر در نام ها تفاوت کرده اند تا کارایی.
توصیه من به شما اساتید و دوستان عزیز:
حتما با زبان VB.NET کار کنید و به آن مسلط شوید اما آگاهانه. چون VB.NET جدید است دلیل بر عالی بودن نیست.
با آرزوی موفقیت برای همه دوستان:چشمک: .
CodeMasterX
چهارشنبه 16 اسفند 1385, 21:49 عصر
دوست عزیز (کاربر تازه وارد ) بزار مطالب مفید مطرح بشه و تو هم سعی کن چیز جدید یادبگیری
دوست عزیز اولا من برای این اون پست رو فرستادم چون سوال کردن مباحثی که اضافه کاری و بی جا هست رو صلاح نمی دونم که فکر کنم اساتید و مدیران بخش هم موافقن.برای یادگیری دات نت و تفاوتهای اون با تکنولوی ها قبلی لازم به مطالعه و تحقیق شخصی هست نه اینکه یه تاپیک برای ساخته بشه.ولی برای سوال های موچیک و ریز و فنی موردی نداره.
از طرفی دوست من من تخصص خودم Database Programming با دات نت هست که نزدیک به 3 ساله دارم VB.NET و ASP.NET و SQLServer کار می کنم.بنابر این بحث یادگیری نیست بحث اینه که هر سوال و بحثی جای خود و راه و روش خودش رو داره.
موفق باشی.
DonetKarvb
پنج شنبه 17 اسفند 1385, 00:56 صبح
تفاوت های کلیدی دیگر VB6.0 و VB.NET رو می خواهم بصورت کامل تر بیان کنم:
2. در VB6.0 کنترل هایی برای کار با DAO و RDO به نام Data Binding Controls که واسط هایی برای کار با Database ها هستند وجود دارد اما در VB.NET شما فقط و فقط از DAO و RDO می توانید در Code استفاده کنید و دیگر هیچ کنترل ActiveX ی به نام Data Binding Controls وجود ندارد.
اشتباهه. ابزار های برای Binding وجود دارند.
3. در VB6.0 برای ارتباط با اکثر Database های معروف مانند Access، SQL SERVER 2000، FoxPro، Sybase، Bitreve، DB2 و غیره باید از اشیاء دسترسی داده ADO استفاده کرد اما در VB.NET باید از ADO.NET استفاده کرد و تنها تفاوت ADO.NET با ADO این است که از SQL SERVER 2005 پشتیبانی می کند البته باز هم بگویم که در Engine هیچ تفاوتی با هم ندارند البته فقط یکسری Property های نچندان مهم به ADO.NET اضافه شده است.
سرعتش هم بیشتر شده. پراپرتی های مهمی وجود دارد که اگر آنها را بدانید همیشه از آن استفاده خواهید کرد. به مقاله زیر توجه کنید:
واکشی آسنکرون در ADO.net 2.0 (http://www.dotnetsource.com/fa/forum/default.aspx?g=posts&t=207)
11. در VB6.0 توابع بسیار بسیار محشری وجود دارند که هنگام ساخت الگوریتم های رمز گذاری و فشرده سازی خیلی استفاده می شوند مثلا VarPtr، StrPtr، ObjPtr و غیره اما شرکت Micr$soft با احترام کامل و دقیقا بدون هیچ دلیلی آنرا را در VB.NET حذف کرده است. این واقعا شرم آور است البته شاید بعضی ها بگویند که این توابع در VB6.0 مستند شده نیستند و مایکروسافت هیچ تعهدی نسبت به توسعه انها نداشته است که کاملا درست است اما مایروسافت باید نظر برنامه نویسان VB6.0 را ابتدا جویا می شد و بعد اقدام می کرد.
مقابه زیر رو هم یه نگاه بندازید. شاید بشه گفت که حرف شما رو رد میکنه. همچنین زمز نگاری نیز پشتیبانی میشود.
Zip & Unzip In Vb.Net (http://www.dotnetsource.com/fa/forum/default.aspx?g=posts&t=79)
17
. در VB6.0 شما فقط دارای یک کنترل به نام Menu هستید که بوسیله آن می توانید یک Menu ی ساده ویندوزی برای برنامه خود بسازید اما در VB.NET شما دارای دو کنترل به نام های MainMenu و ContextMenu هستید که همان کار را زیبا تر و حرفه ای تر انجام می دهند و می توانند در Shell ویندوز یعنی همان جایی که نرم افزاری مثل WinRAR منو های خود را گذاشته Menu بگذارند یعنی در RightClick .
یکی از کارهای واقعا" جالبه که میتونه به ما کمک کنه که یک User Interface کاربر پسند ایجاد کنیم
19. متد های گرافیکی مانند Circle, CLS, Pset, Point از محیط VB.NET حذف شده اند و به جای آنها متد های گرافیکی بسیار قدرتمندی قرار داده شده است البته باز هم به پای توابع API گرافیکی ویندوز مانند GetDIBits و SetDIBits وغیره نمی رسند.
26. در VB6.0 تمامی Form ها و PictureBox ها دارای Handle Device Context HDC می باشند یعنی تمامی اطلاعات و داده های مربوط به تصویر لود شده در این اشیاء در این محل ذخیره می شود و از HDC می توانیم برای کار توابع گرافیکی API ویندوز مانند GetPixel، SetPixelV، GetDIBits، SetDIBits، SetDIBitsToDevice و غیره استفاده کنیم اما در VB.NET خاصیت HDC حذف شده است و برنامه نویسان گرافیکی را در یک جمله نابود کرده است چون HDC جزء جدا ناپذیر از کار های گرافیکی است.
این مقاله رو هم بخونید:
Paint.net : فتوشاپی اوپن سورس با سی شارپ (http://www.dotnetsource.com/fa/forum/default.aspx?g=posts&t=42)
دوستان هنوز تفاوت های زیادی وجود دارند اما مهمترین هایشان اینها بودند. می بینید که VB6.0 و VB.NET دقیقا یک IDE دارند و بیشتر در نام ها تفاوت کرده اند تا کارایی.
مثلا" vb 6.0 شی گرا نیست در حالی که دات نت شی گراست و .... (اینو هم نام گذاری میگید)
nima_chapter85
شنبه 19 اسفند 1385, 01:20 صبح
دوست عزیز اولا من برای این اون پست رو فرستادم چون سوال کردن مباحثی که اضافه کاری و بی جا هست رو صلاح نمی دونم که فکر کنم اساتید و مدیران بخش هم موافقن.برای یادگیری دات نت و تفاوتهای اون با تکنولوی ها قبلی لازم به مطالعه و تحقیق شخصی هست نه اینکه یه تاپیک برای ساخته بشه.ولی برای سوال های موچیک و ریز و فنی موردی نداره.
از طرفی دوست من من تخصص خودم Database Programming با دات نت هست که نزدیک به 3 ساله دارم VB.NET و ASP.NET و SQLServer کار می کنم.بنابر این بحث یادگیری نیست بحث اینه که هر سوال و بحثی جای خود و راه و روش خودش رو داره.
موفق باشی.
اصلا بی جا نیست . و اصلا اشکالی نداره آدم سوالاتی که در ذهن داره از استاد کار بپرسه اگه قرار باشه آدم تمام سولاتش رو شخصی بدونه و از هیچ کسی چیزی نپریسه پیشرفت نمی کنه و این جا هم محل پرسش هست در ضمن از عوض کسی صحبت نکن اگه مدیران محترم با این موضوع مخالف بودن حتما ذکر می کردن ولی کسی نیست که مخالف جواب دادن و رفع ابهامات موجود در ذهن دیگری باشه در ضمن شما مجبور نیستید که به سوال بنده جواب بدید می توانید اطلاعات خود رو برای روز مبادا نگه دارید از استاد گرامی که به بنده لطف دارن هم بسیار تشکر می کنم
مرتضی دولتخواه
یک شنبه 05 فروردین 1386, 12:39 عصر
با سلام
خیلی مختصر میگم.
مطالب بسیار خوب بود ولی کسی در مورد چیزهای پشت پرده صحبتی نکرد.
مسائلی همچون مدریت حافظه در net. ، انتباق و طراحی مجدد اشیا، مقید سازی ها و ارائه روشهای حل مشکلاتی که در گذشته وجود داشت(مثلا حل مشکلات COM در گذشته که خیلیهارو ازیت می کرد (یکیش خودم)) که با این مسائل کاملا ورق برمیگرده.
این رو بدونید هیچ شرکتی در راه توسعه ، پس روفت نمی کنه. اگه یک قابلیت در مثلا VB6.0 بوده که حالا شما اون رو در net. نمی بینید دلیل بر حذف اون نیست فقط شکل اون تغییر کرده(منظورم نحوه فراخوانی ، شکل استفاده و یا حتی پیاده سازی مجدد اون)
مرتضی دولتخواه
یک شنبه 05 فروردین 1386, 12:43 عصر
این مقاله رو حتما مطالعه کنید شما شما هم با من هم نظر بشید
http://barnamenevis.org/forum/showthread.php?t=20743&highlight=%90%D1%C7%DD
حامد مصافی
دوشنبه 06 فروردین 1386, 02:43 صبح
@ SeniorDevs (http://www.barnamenevis.org/forum/member.php?u=34897) :
من واقعاً نمی دونم چرا چند تفاوت در سینتکس رو به معنای تفاوت فاحش در نظر گرفتی و گاهاً برداشتی مغایر با واقعیت کردی و ...
. در VB.NET شما برای ایجاد برنامه ها دارای دو نوع Forms هستید Windows Forms و Web Forms که شما از Windows Forms برای ایجاد برنامه های کاربردی تحت ویندوز Windows Based Applications استفاده می کنید و از Web Forms برای ایجاد برنامه های کاربردی تحت وب Web Based Applications . و دقیقا همین موارد را در VB6.0 نیز ما دارا هستیم و فقط در اینجا نام Web Class در VB6.0 با زبان ASP به نام Web Forms در VB.NET با زبان ASP.NET تغییر پیدا کرده است
در دات نت شما توانایی تولید برنامه های گرافیگی تحت ویندوز، تحت کنسول ویندوز، تحت وب، سرویس ویندوز، تحت وسایل SmartDevices و .. می باشید اما در وی بی فقط توانایی تولید برنامه هایی اجرایی وابسته به ماشین مجازی وی بی رو داریم.
در مورد نوشتن ASP با محیط وی بی هم اگر توضیحی بدی ممنون میشم.
در VB6.0 کنترل هایی برای کار با DAO و RDO به نام Data Binding Controls که واسط هایی برای کار با Database ها هستند وجود دارد اما در VB.NET شما فقط و فقط از DAO و RDO می توانید در Code استفاده کنید و دیگر هیچ کنترل ActiveX ی به نام Data Binding Controls وجود ندارد
چرا می گی در این زبان فلان ActiveX وجود داره و در اون یکی وجود نداره. کنترل های ActiveX یا COM جز سیستم عامل هستند و اگر در یک زبان موجود باشند در دیگری هم موجودند. در دات نت با COM Interupt میشه از کنترل های ActiveX استفاده کرد. ضمن اینکه ADO.NET ابزار های وابسته قدرتمند تری برای Binding داره.
در VB6.0 برای ارتباط با اکثر Database های معروف مانند Access، SQL SERVER 2000، FoxPro، Sybase، Bitreve، DB2 و غیره باید از اشیاء دسترسی داده ADO استفاده کرد اما در VB.NET باید از ADO.NET استفاده کرد و تنها تفاوت ADO.NET با ADO این است که از SQL SERVER 2005 پشتیبانی می کند البته باز هم بگویم که در Engine هیچ تفاوتی با هم ندارند البته فقط یکسری Property های نچندان مهم به ADO.NET اضافه شده است.
همونطوری که گفتم هنوزم میشه از ADO استفاده کرد اما قایل نشدن تفاوت عمده میان ADO و ADO.NET از بی اطلاعی نشات میگیره.
ADO.NET کلاس های بهبود یافته ای برای SQL داره. ضمن اینکه ساختمان قدیمی ADO متحول شده و ADO.NET دارای دو ساختمان Connected و Dissconnected است که موجب کاهش سرباره شبکه و سرور می شوند ضمن اینکه فشار کاربران بر سیستم مدیریت پایگاه داده رو نیز پایین می آورند
. در VB6.0 یک نوع داده به نام Variant وجود دارد که می تواند تقریبا همه انواع داده VB6.0 را پشتیبانی کند و حالا در VB.NET نوع داده Variant و Object در هم ادغام شده اند و به نوع داده Object تبدیل شده اند. یعنی فقط نام عوض شده است.
Variant فقط برای انواع پایه طراحی شده. هر چند در ساختار وی بی نیازی به داده عام برای کلاس ها احساس نمی شد
در VB6.0 نوع داده ی 16 بیتی به نام Integer و نوع داده ی 32 بیتی به نام Long وجود دارد اما در VB.NET نوع داده Integer به 32 بیت و نوع داده Long به 64 بیت تبدیل شده است. که باعث شده است محدوده اعداد صحیح در VB.NET تقریبا با زبان های برنامه نویسی دیگر مانند Delphi یکسان شود. و در این مورد باید از مایکروسافت تشکر کرد.
در مورد Decimal چیزی نشنیدی
این حسن بود ضعف بود چی بود گفتی؟؟
در VB6.0 به صورت پیش فرض نیازی به تعریف متغیر ها Variables نیست اما در VB.NET بصورت پیش فرض حتما ابتدا باید متغیر ها را تعریف کرد و سپس از آنها استفاده نمود. که از نظر من عالی است و اشتباهات برنامه نویسان متوسط را کاهش می دهد.
هیچ برنامه نویس حرفه ای در حالت Option Extricit Off برنامه نویسی نمی کنه
. در VB6.0 هر Object دارای یک Property پیش فرض است یعنی اگر شما فقط نام آن Object را در کد تان بنویسید و دیگر معین نکنید که می خواهید از کدام یک از Property های آن Object استفاده کنید VB6.0 بصورت پیش فرض به Property پیش فرض آن Object رجوع می کند که بسیار بسیار ویژگی عالی است اما این ویژگی عالی دیگر در VB.NET وجود ندارد مثلا دستور (Call MsgBox (Text1 در VB6.0 خصوصیت Text کنترل Text1 را نمایش می دهد اما در VB.NET تولید یک Error می کند و باید اینگونه تعریف شود:
( Call MsgBox (Text1.Text
این به خاطر نبود شی گرایی به معنای واقعی در وی بی است. اگر قرار بود خود Text1 را به عنوان آرگومان ارسال کنید چی؟؟
ضمناً تفاوت های سینتکسی رد به عنوان عیب و ایراد لیست نکن.
. در VB6.0 شما می توانید یک متغیر آرایه Array تعریف کنید با Lower Bound ی که می تواند هر عدد 32 بیتی منفی یا مثبت باشد مثلا Dim MyArray(-1000 To +1000) As Long اما در VB.NET شما فقط باید از Lower Bound ی که برابر 0 است هنگام تعریف آرایه استفاده کنید مثلا Dim MyArray(0 To +1000) As Long . یعنی در VB.NET یک ویژگی بسیار خوب حذف شده است به همین سادگی. انگار مایکروسافت باید حتما VB را شبیه زبان های C یا Delphi کند بابا پس استقلالت کجا رفته است.
یکپارچگی CLR بحث استقلال رو به حاشیه می راند.
در VB6.0 ما می توانیم به راحتی خواص کنترل ها را هم با اعداد Set کنیم و هم با ثابت هایشان مثلا Form1.WindowState = 1 اما در VB.NET این تولید Error می کند و ما باید به این شکل کار کنیم Form1.WindowState = vbMaximized . یعنی باید لقمه را از پشت در دهانمان بگذاریم.
طبق اصول خوانایی کد ما سالیان سال کد شما رو به صورت Form1.WindowState = vbMaximized نوشتیم. البته این هم یا تفاوت در سینتکس هست.
1
0. در VB6.0 هنگام تعریف متغیر های رشته ای به طول ثابت Fixed Length String به این روش عمل می کنیم Dim MyVar As String * 255 اما در VB.NET به این شکل:
(Dim MyVar As New VB6.FixedLengthString(255
چیزی با نام VB6 در دات نت وجود ندارد!
این ارجاعگر توسط ویزارد تبدیل کد های وی بی 6 تولید شده. انتظار بیشتری داشتم.
در دات نت رشته های با طول ثابت پشتیبانی نمی شوند.
میشه بگی اینگونه متغیر ها کجا کاربرد دارند!!!
. در VB6.0 توابع بسیار بسیار محشری وجود دارند که هنگام ساخت الگوریتم های رمز گذاری و فشرده سازی خیلی استفاده می شوند مثلا VarPtr، StrPtr، ObjPtr و غیره اما شرکت Micr$soft با احترام کامل و دقیقا بدون هیچ دلیلی آنرا را در VB.NET حذف کرده است. این واقعا شرم آور است البته شاید بعضی ها بگویند که این توابع در VB6.0 مستند شده نیستند و مایکروسافت هیچ تعهدی نسبت به توسعه انها نداشته است که کاملا درست است اما مایروسافت باید نظر برنامه نویسان VB6.0 را ابتدا جویا می شد و بعد اقدام می کرد
اگر نگرانی تو فقط رمز گذاری و رمز گشایی است که این کار در دات نت بسیار آسان است.
در VB6.0 کلمات کلیدی Keywords در خود محیط IDE وجود داشتند و نیازی به Import آنها به داخل IDE نبود که این امر کد نویسی را زیبا تر می کرد اما در VB.NET تمامی Keywords ها از محیط IDE حذف شده اند و شما باید قبل از استفاده از انها ابتدا انها را به داخل IDE الحاق Import کنید. البته به نظر من بد نشد شاید هم بهتر شد
دوست عزیز این چه حرفیه که میزنی؟
کلیدواژه ها همیشه جزیی از یک زبان بودند. هرگز با Imports اون ها رو وارد نمی کنیم.
خود Imports یک کلید وازه است که برای ارجاع به فضای نامی از اون استفاده می شه.
با گشترس چهارچوب کاری دیگه نمیشه از توابع پیش ساخته استفاده کرد.کوچک ترین مشکل برای این کار نامگذاری توابع است
ضمن اینکه هر فضای نامی علاوه بر توابع دارای کلاس ها و ثابت های هم میتونه باشه
13. در VB.NET دیگر متد Form1.PrintForm وجود ندارد. اما امکانات بسیار خوبی برای Print کردن در VB.NET قرار داده شده است که قابل تقدیر است.
!
در VB6.0 شیی به نام Clipboard وجود دارد که میتوان به وسیله آن حافظه کلیپ بورد ویندوز را مدیریت کرد اما در VB.NET شما باید ابتدا آن را در محیط IDE الحاق Import کنید به این شکل Import System.Windows.Clipboard و بعد از ان استفاده کنید. به نظر من این Object در VB.NET بسیار موثر تر شده است که باید از شرکت مایکروسافت تشکر کرد
نه به محیط IDE بلکه به پیمانه فرم جاری (یا به کل پروژه)
IDE که محیط بصری است نه روال مجری!
. در VB.NET دیگر نمی توان از کنترل OLE Container استفاده کرد شاید برای بعضی از برنامه نویسان بد شده باشد اما در کل به روش دیگری می توان در VB.NET از اشیاء OLE استفاده کرد البته شاید مشکل تر باشد
همونطوری که VBX به فراموشی سپرده شد OLE هم محکوم به فناست. دیگه حتی اسمشم نباید آورد
در VB6.0 کنترلی به نام Shape وجود دارد که بیشتر برای زیبا سازی محیط فرم ها از آن استفاده می کنند اما در VB.NET بطور کامل حذف شده اند.
نه تنها Shape بلکه تمام کنترل های Light Weight نیز حذف شندند که علت این امر هم واضحه.
اما پر کردن جای Shape تنها با یک متد از system.drawing.graphics ممکنه
در VB6.0 شما فقط دارای یک کنترل به نام Menu هستید که بوسیله آن می توانید یک Menu ی ساده ویندوزی برای برنامه خود بسازید اما در VB.NET شما دارای دو کنترل به نام های MainMenu و ContextMenu هستید که همان کار را زیبا تر و حرفه ای تر انجام می دهند و می توانند در Shell ویندوز یعنی همان جایی که نرم افزاری مثل WinRAR منو های خود را گذاشته Menu بگذارند یعنی در RightClick .
جالبه!!!
افزودن آیتم به منوی راست کلیک از طریق رجیستری انجام می گیره.
MainMenu برای ایجاد من های فرم و ContextMenu برای ایجاد منو های راست کلیک عرضه شده
در VB6.0 شما دارای یک ویژگی بسیار منحصر به فرد هستید یعنی تکنولوژی Dynamic Data Exchange DDE که بوسیله آن می توانید با برنامه های EXE متفاوت صحبت کنید و داده ردوبدل کنید اما وای بر مایکروسافت آخه بابا چرا DDE را در VB.NET حذف کردی. با کدام منطق. هرچند می توان دوباره با توابع API از DDE استفاده کرد
جواب این کار در سال 2012 و ویندوز جدید مایکروسافت مشخص میشه.
ساختار کنونی سیستم عامل قدیمی شده
متد های گرافیکی مانند Circle, CLS, Pset, Point از محیط VB.NET حذف شده اند و به جای آنها متد های گرافیکی بسیار قدرتمندی قرار داده شده است البته باز هم به پای توابع API گرافیکی ویندوز مانند GetDIBits و SetDIBits وغیره نمی رسند.
توابع گرافیکی در دات نت قدرتمند تر از هر زبانی هستند اما توابع API سرعت بالاتری دارند توابع پیش ساخته وی بی هیچ کدام را نداشتند
در VB6.0 حلقه While با دستور Wend به پایان می رسد اما در VB.NET با دستور End While به پایان می رسد.
در راستای استاندارد کردن زبان بیسیک قرار شد هر بلوک با End به پایان برسد
البته حلقه While مربوط به زمان QBasic است و فقط به خاطر انطباق پذیری تا به کنون زنده مانده است. معمولاً توصیه به استفاده از Do while...loop می شود
. تمامی دستورات Open کردن فایل ها در VB.NET تغییر کرده است البته فقط از نظر نام. مثلا در VB6.0 برای باز کردن فایل ما از دستور Open FileName For Binary As #1 استفاده می کنیم اما در VB.NET از تابع FileOpen(1, FileName, OpenMod.Input .
البته هم VB6.0 و هم VB.NET هنوز فایل های بیشتر از 2 گیگابایت را Support نمی کنند
توابعی که نام بردید برای انتطباق پذیری جایگزین شده اند
برای خواندن و نوشتن فایل ها از FileStream استفاده می شود
در VB6.0 تمامی Form ها و PictureBox ها دارای Handle Device Context HDC می باشند یعنی تمامی اطلاعات و داده های مربوط به تصویر لود شده در این اشیاء در این محل ذخیره می شود و از HDC می توانیم برای کار توابع گرافیکی API ویندوز مانند GetPixel، SetPixelV، GetDIBits، SetDIBits، SetDIBitsToDevice و غیره استفاده کنیم اما در VB.NET خاصیت HDC حذف شده است و برنامه نویسان گرافیکی را در یک جمله نابود کرده است چون HDC جزء جدا ناپذیر از کار های گرافیکی است
در +GDI نیازی به HDc نیست
دوستان هنوز تفاوت های زیادی وجود دارند اما مهمترین هایشان اینها بودند. می بینید که VB6.0 و VB.NET دقیقا یک IDE دارند و بیشتر در نام ها تفاوت کرده اند تا کارایی
VB و VB.NET یک IDE دارند؟؟؟؟
نمی خواهید مجدداً فکر کنید؟؟
دوست عزیز متاسفانه هیچ دلیلی بر برتری وی بی ارائه نکردید
قبل از پست بعدی میزان تجربه خودتون رو در VB.NET بفرمایید. چون شما بنا به گفته خودتون مبنی بر بیهوده بودن دات نت ممکنه با اون کار نکرده باشید و از این جهت نظر دادن در مورد اون بیهودست.
البته بهتره در آینده دلایل محکمتری بیارید
چند دلیل جزیی بر برتری دات نت:
1- شی گرایی
استاندارد شی گرایی وی بی مربوط به موسسه بل و زبان ++Cاست اما دات نت به معنای واقعی شی گراست
2- اتحاد زبان هنگام اجرا و چهار چوب جامع
در دات نت سینتکس های زیادی برای برنامه نویسی در نظر گرفته شده است و همه این زبان ها توانایی استفاده از چهارچوب کاری را دارند
3- چهار چوب گسترده
چهارچوب کاری دات نت یک فضای گسترده برای برنامه نویسی است از توابع خواندن و نوشتن در رجیستری تا استریم های سوکت در آن موجودست و برنامه نویس نهایی نیازی به برنامه نویس ثانویه حس نمی کند
__H2__
دوشنبه 06 فروردین 1386, 17:26 عصر
سلام
من نمیخواستم وارد این بحث بشم ولی.... با نظرات کاربر BlackDal (http://www.barnamenevis.org/forum/member.php?u=6808) بشدت موافق هستم.
و دوست دارم موارد زیر را به جملات کاربر BlackDal (http://www.barnamenevis.org/forum/member.php?u=6808) اضافه کنم: (با اجازه!)
توابع جدید و بشدت قدرتمندی جای توابع پکیده VarPtrو StrPtr و... را گرفته به صورت کامل و دقیق امکان بدست آوردن نقطه ی واقعی RAM وجود دارد.
در مورد HDC هم باید بگویم به هیچ وجه حذف نشده و لایه + GDI بر فراز GDI قرار دارد و بدون HDC به هیچ وجه کار نمیکند ولی از دید پنهان شده و میتوان خیلی راحت HDC را به دست آورد و هرجایی (اگر نیاز بود) ترسیمات را با توابع API ویندوز ادامه داد.
در آخر در مورد دستور Import ، من تقریباَ هیچ گاه از این دستور استفاده نمیکنم! (خوشم نمی آید!) این دستور فقط برای کم کردن متن نوشتاری است و شما با تایپ مسیر کامل یک کلاسس یا تابع میتوانید از آن استفاده کنید.
linux
دوشنبه 06 فروردین 1386, 18:11 عصر
من ماندم چی بگم بگم اصلا یا نگم!
دوست تازه وارد ما SeniorDevs ببینید vb یک چیزی هست vb.net یک چیز دیگر تنها شباهتی که دارند سینتکس ظاهری دستورات هست این دوتا زبان هیچ ربطی به هم ندارند.
ببنید vb.net هم مثل c# یک زبان جدید هست همانطور که کسی نمی تواند C# را با C/C++ مقایسه کند.
چیزی که مهم هست .نت فریم ورک هست.
وقتی مایکروسافت .نت فریم ورک را طراحی می کرد باید براش زبان جدید هم درست می کرد زبان C# برای کسانی که پیش زمینه C/C++ داشتند و زبان vb.net برای کسانی که پیش زمینه vb همین.
linux
دوشنبه 06 فروردین 1386, 18:16 عصر
سلام
من نمیخواستم وارد این بحث بشم ولی.... با نظرات کاربر BlackDal (http://www.barnamenevis.org/forum/member.php?u=6808) بشدت موافق هستم.
و دوست دارم موارد زیر را به جملات کاربر BlackDal (http://www.barnamenevis.org/forum/member.php?u=6808) اضافه کنم: (با اجازه!)
توابع جدید و بشدت قدرتمندی جای توابع پکیده VarPtrو StrPtr و... را گرفته به صورت کامل و دقیق امکان بدست آوردن نقطه ی واقعی RAM وجود دارد.
در مورد HDC هم باید بگویم به هیچ وجه حذف نشده و لایه + GDI بر فراز GDI قرار دارد و بدون HDC به هیچ وجه کار نمیکند ولی از دید پنهان شده و میتوان خیلی راحت HDC را به دست آورد و هرجایی (اگر نیاز بود) ترسیمات را با توابع API ویندوز ادامه داد.
در آخر در مورد دستور Import ، من تقریباَ هیچ گاه از این دستور استفاده نمیکنم! (خوشم نمی آید!) این دستور فقط برای کم کردن متن نوشتاری است و شما با تایپ مسیر کامل یک کلاسس یا تابع میتوانید از آن استفاده کنید.
چیزی به اسم تابع در vb.net دیگر نداریم این توابعی هم که گفتید یک قسمت از کلاس های .نت هست
بعضی جاها لازم هست از دستور import استفاده کنید.
__H2__
سه شنبه 07 فروردین 1386, 14:41 عصر
سلام
چیزی به اسم تابع در vb.net دیگر نداریم.
ای آقا از شما بعیده! درست است که توابع همه عضوی از کلاسس ها یا ماژولها هستند ولی در VB6 نیز چنین بود، همیشه یک تابع باید عضو یک کلاسس یا ماژول یا ساختاری باشد ولی همچنان یک تابع است (مثل تابع Sin که عضوی از کلاسس Math است و کلاسس Math عضوی از فضای نام System است ولی این واقعیت موجب نمیشود که Sin دیگر تابع نباشد!!)
توابع با دستور Function که به معنی تابع هم است تعریف میشوند، چه بومی باشند و چه طراحی شده توسط کاربر.
یک تابع را در VB6 نام ببرید که عضو ماژول یا کلاسسی نباشد!
بعضی جاها لازم هست از دستور import استفاده کنید.
این جمله هم درست است ولی امیدوارم منظورتان این بوده باشد:
"بعضی جاها بهتر است از دستور import استفاده کنید."
چون من تضمین میدهم که میتوان بدون دستور Import برنامه نویسی کرد!
فریاد دل آرام
چهارشنبه 15 مهر 1394, 23:31 عصر
سلام به همه اساتید عزیزم مطالب بالا رو که خوندم کلی لذت بردم و از اینکه با عضویت توی این سایت امکان مصاحبت با شما برام پیش اومده خوشحالم. در ارتباط با مسئله آسانتر شدن برنامه نویسی به نظر من دو انشعاب اصلی در نرم افزار پیش اومده یه گروه کسانی هستند که صرفا به دنبال تهیه برنامه های کاربردی و تجاری هستند که محیطهای ویژوال و دات نت برای اونا واقعا عالیه کاری که یک تیم چند نفره در چند ماه انجام میداد الان یک نفر توی چند روز انجام میده اما گروه دیگه همون کد نویسهای سابق هستند اونا کسانی هستند که این محیطهای ویژوال و دات نت و یا حتی سیستم های عامل رو ارتقاء میدن اینا هنوز هم که هنوزه کدهاشون رو بین دوتا آکولاد میزارن یه چیزی توی این مایه ها....:خجالت::خجالت::خجالت::خج لت:
()main
}
/* دوستتان دارم - فریاد دل آرام */
{
فریاد دل آرام
پنج شنبه 16 مهر 1394, 00:08 صبح
سلام به دوستان نازنینم
مبحث قشنگیه واقعا برای هر کسی در هر سطح معلوماتی مفید و جذابه . اول بگم من خودم به شخصه بیشتر VB کار کردم خیلی هم باهاش حال میکنم هرچی که تا حالا خواستم برام داشته و اینم بگم آدم زیاده خواهی هم هستم ولی به این معنی نیست که دات نت رو نبینم و با تعصب بخوام از VB طرفداری کنم واقعیت اینه که تئوری ایجاد دات نت یک جهش بزرگ در برنامه نویسی به حساب میاد و به زبان ساده چون هر امکانی که به یکی از زبانهای VB , VC , .... که اضافه بشه به باقی هم اضافه میشه این باعث میشه سرعت رشد زبانها چند برابر بشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.