این دو زبان از نظر قابلیت ها و توانایی ها هیچ تفاوت عمده ای ندارند، جز اینکه زبان سی شارپ به دلیل ارث بردن پاره ای خصوصیات از زبان پیشکسوت خود ، ++c ، هنوز به برنامه نویس اجازه می دهد که مستقیما حافظه را دستکاری و مدیریت کند. با این وجود هنوز هم بسیاری از برنامه نویسان و کارشناسان چه در ایران و چه در سایر نقاط دنیا بر این تصور اشتباه هستند که# c از vb.net قوی تر است اما واقعیت چنین نیست. دلیل این ادعا بسیار ساده است : هر دو زبان چیزی نیستند جز یک پوشش ظاهری برای زبان msil که هنگام کامپایل شدن سورس کد برنامه ای که با یک زبان دات نتی نوشته شده است تولید می شود.
تمام برنامه هایی که برای پلتفرم دات نت نوشته می شوند پیش از اینکه به کد زبان ماشین (native code) تبدیل شود به یک زبان میانی به نامmicrosoft intermediate Language تبدیل می شوند. زبان های پلتفرم دات نت به طور یکسان از این زبان میانی پشتیبانی می کنند. در واقع این زبان ها مجبورند که از استاندارد msil تبعیت کنند نه اینکه هر مقداری از آن که دلشان بخواهد را پشتیبانی کنند. بنابراین وقتی قرار باشد نتیجه کار هر دو زبان ویژوال بیسیک دات نت و سی شارپ در نهایت به کد msil تبدیل شود، دیگر چندان مهم نیست که مبدا این کد به چه زبانی نوشته شده است. بنابراین هر دو زبان به یک ترتیب از قابلیت های کلیدی چارچوب دات نت پشتیبانی می کنند. مثلا مدیریت حافظه در vb.net دقیقا به همان ترتیبی اتفاق می افتد که در سی شارپ. در گذشته چنین نبود و یکی از دلایل گزینش زبان ++c به جای ویژوال بیسیک ، برتری محسوس++c نسبت به ویژوال بیسیک در زمینه مدیریت حافظه و راندمان برنامه بود. این تفاوت دیگر از بین رفته است. مدیریت حافظه مستقیما توسط چارچوب دات نت انجام می شود و نوع زبان برنامه نویسی تاثیری ندارد. حتی برتری ویژوال بیسیک در زمینه rapid application development و معماری Windows FORMS نیز در پلتفرم دات نت از بین رفته است. برنامه سازی در سی شارپ دقیقا به همان سادگی ویژوال بیسیک دات نت است.تفاوت های اصلی میان دو زبان بیشتر در گرامر و syntax زبان است. تنها چیزی که باقی می ماند این است که زبان سی شارپ زبان خلاصه تر و موجزتری است. این شاید بهترین توصیف برای سی شارپ باشد. به عبارت دیگر برای پیاده سازی یک قطعه کد در زبان سی شارپ به حجم برنامه نویسی کمتری نیاز است. یکی از تفاوت های شناخته شده میان دو زبان، امکان تعریف سندهای مربوط به سورس برنامه است. در زبان سی شارپ می توانید سندهایی از نوع XML ایجاد کنید که با سورس کد برنامه شما پیوند خورده است. به این ترتیب به موازات پیشرفت پروژه برنامه نویسی می توانید خیلی راحت documentation آن را نیز آماده کنید. چنین قابلیتی در vb.net وجود ندارد اما خبر خوب این است که در نسخه بعدی پلتفرم دات نت موسوم به (whidbey) این قابلیت به vb.net افزوده شده است. یک تفاوت دیگر بین دو زبان آن است که در سی شارپ می توانید عملگر ها یا operatorهای سفارشی بسازید. مثلا علامت را طوری تعریف کنید که عبارت today yesterday معنا پیدا کند و عملگرهای ریاضی بزرگتر و کوچکتر تنها محدود به اعداد نباشد. البته این قابلیت نیز در نسخه بعدی vb.net افزوده شده است. در حقیقت همین چند درصد تفاوت فعلی میان قابلیت های گرامر دو زبان ویژوال بیسیک دات نت و سی شارپ ، در نسخه شماره دو چارچوب دات نت ناپدید شده است. بنابراین دقت کنید که برتر بودن زبان سی شارپ نسبت به vb.net چیزی جز یک شایعه و افسانه نیست. این دو زبان حدود فقط 5 درصد با یکدیگر اختلاف دارند. حتی پیشرفته ترین مفاهیم برنامه نویسی oop نیز در vb.net وجود دارند مثل مفهوم. (delegates) کسانی که چنین اظهار نظرهایی می کنند یا هنوز فکر می کنند که همان تفاوت میان ++c و VB کماکان در مورد vb.net و #c نیز وجود دارد یا اینکه شناخت صحیحی از پلتفرم دات نت ندارند. در واقع خیلی رک بگویم مدیران و کارشناسان ارشد شرکت های نرم افزاری که به این توهم دچارند کمترین آشنایی فنی با چارچوب دات نت ندارند.