چه تفاوتی بین سیشارپ (C#) و داتنت (.Net) وجود دارد؟ این پرسشی است که خیلی وقتها در ذهن علاقهمندان و دانشجویان رشته برنامهنویسی به وجود میآید. دانشپژوهان در کلاسهای آموزشی برنامهنویسی به دفعات میشنوند که مریبان از دو اصطلاح سی شارپ و داتنت به جای یکدیگر استفاده میکنند و تصور میکنند این دو اصطلاح با هم یکسان هستند. حال این پرسش مطرح میشود که چگونه تفاوت این دو مفهوم را برای فردی که تازه یادگیری یک زبان برنامهنویسی را شروع کرده، شرح دهیم؟ با شرکت در بوت کمپ سی شارپ پاسخ سوال خود را میگیرید.
اگر این سؤال را در گوگل جستوجو کنید، پاسخهای زیادی پیدا خواهید کرد، اما به نظر نمیرسد که آنها اطلاعات روشن و دقیقی در اختیارتان قرار دهد. به عنوان مثال، اگر «تفاوت بین سیشارپ و داتنت» را در سایت معتبری مثل Stack Overflow جستوجو کنید، پاسخ زیر که بالاترین واکنش مثبت را دریافت کردهاند را پیدا میکنید:
سی شارپ یک زبان برنامهنویسی است، در حالی که داتنت یک اصطلاح عمومی است که .Net Framework (یک چارچوب کاربردی بزرگ) و زمان اجرای زبان مشترک (Common Language Runtime) را شامل میشود که زمان اجرا در اسمبلیهای داتنت اجرا میشود. در بوت کمپ برنامه نویسی با تنوع زبان های برنامه نویسی و تفاوت آنها آشنا خواهید شد.
این پاسخی جامع و فراگیر است، اما اگر دانشآموزی باشید که بهتازگی دوره یادگیری برنامهنویسی را آغاز کرده، با دیدن این پاسخ، پرسشهای دیگری به ذهنتان خطور میکند. به همین دلیل، تصمیم گرفتیم در این مقاله به بررسی تفاوتهای این دو مفهوم بپردازیم.
دات نت (.NET) چیست؟
برای درک تفاوت های سی شارپ و دات نت باید دانست که دات نت یک پلتفرم توسعهدهندگی متن باز است که توسط مایکروسافت و برای ساخت انواع اپلیکیشنهای مختلف طراحی و ساخته شده است. برنامههای دات نت را میتوان با استفاده از زبانهای برنامهنویسی خاصی مانند سی شارپ، اف شارپ، سی پلاس پلاس و ویژوال بیسیک نوشت. به طور غیررسمی، دات نت ابزاری است که به برنامهنویسان اجازه میدهد تا برنامههای سی شارپ را ساخته و اجرا کنند. با استفاده از دات نت میتوان:
– کدهای سی شارپ را به طور مستقیم اجرا کرد.
– به ابزارهای کاربردی دسترسی داشت که برای ساخت انواع نرمافزارها کاربرد دارند.
– میتوان مجموعهای از انواع دادهها را تعریف کرد که ذخیرهسازی اطلاعات درون سیستمهای کامپیوتری را راحتتر میکنند.
چندین نسخه از دات نت وجود دارد که همگی تقریبا کارهای مشابهی را انجام داده و برای سیستمعاملهای متفاوت در نظر گرفته شدهاند. نسخه اصلی دات نت فریمورک تنها روی کامپیوترهایی که از سیستم عامل ویندوز پشتیبانی میکنند اجرا میشود. .NET Core نسخه جدید پند پلتفرمه است که امکان اجرای آن روی سیستم عاملهای مک، ویندوز و لینوکس وجود داشته و از انعطافپذیری و سازگاری بالاتری برخوردار است.

سی شارپ (C#) چیست؟
زبان برنامهنویسی سی شارپ، یک زبان برنامهنویسی شی گرا است که توسط مایکروسافت ساخته شده و بر بستر فریمورک دات نت اجرا میشود. این زبان برنامهنویسی از خانواده زبانهای مبتنی بر سی است و از نظر ساختار و سینتکس بسیار نزدیک به زبانهای برنامهنویسی مانند سی پلاس پلاس و جاوا است. اولین نسخه از این زبان برنامهنویسی در سال 2002 ساخته شده و نسخه آخر آن که نسخه 2 است که نیز در ماه نوامبر سال 2023 منتشر شده است. شما میتوانید از این زبان برنامهنویسی برای اهدافی مانند ساخت اپلیکیشنهای مخصوص گوشیهای هوشمند، ساخت نرمافزارهای ویندوز و دسکتاپ، ایجاد اپلیکیشنهای تحت وب و وب سرویسها، بازیسازی، فعالیت در حوزه واقعیت مجازی و ایجاد اپلیکیشنهای مبتنی بر پایگاه داده استفاده کنید.
مزایای زبان برنامهنویسی سی شارپ :
– این زبان یکی از محبوبترین زبانهای برنامهنویسی دنیاست که یک جامعه بزرگ و بسیار فعال دارد.
– یادگیری این زبان برنامهنویسی بسیار ساده و راحت است.
– یک زبان برنامهنویسی شی گراست که بهصورت ساختارمند کار کرده و توسعه انواع نرمافزارها را راحتتر میکند.
– یادگیری این زبان و کارکردن با آن برای افراد مبتدی بسیار ساده و راحت خواهد بود.

محیط اجرا (RUNTIME ENVIRONMENT) چیست؟
مربیان بوتکمپهای ما پیش از شروع کار به مدت 40 ساعت جاوا اسکریپت را به دانشجوان آموزش میدهند. دانشآموزان بعد از شنیدن توضیحات مربی، تمرینها را کامل میکنند. در نمونه جالبی که یکی از مربیان ما به آن اشاره کرد، یکی از دانشجوان که به جایی رسیده بود که خودش شروع به نوشتن کد کند، یک ویرایشگر متنی را نصب کرد و اولین برنامه جاوا اسکریپت ساده خود را نوشت که چند متغیر داشت و برخی از پیامها را در کنسول ویرایشگر نشان میداد. در این زمان، وقتی برنامه خود را تکمیل کرد، پرسید “حالا چه طور این کد را اجرا کنم؟”
مجتمع دانش و فناوری بامداد ارائه میکند: بوتکمپ برنامهنویسی سی شارپ
او درک کرده بود که کد فقط متن است و چیزی که آن را به یک برنامه “جاوا اسکریپت” تبدیل میکند این است که یک پسوند .js روی آن دارد و ترکیب نحوی دستورات آن منطبق با قواعدی است که جاوا اسکریپت تعیین کرده است. هر زبان، ترکیب نحوی مخصوص به خودش را دارد. به طور مثال، برخی از دستورات در بلوکهایی داخل پرانتز نوشته میشوند یا نقل قولها و کامنتها هر کدام کاربرد خاص خود را دارند. کد بدون محیط زمان اجرا بی معنی است. محیط زمان اجرا، برنامهای است که نحو را درک میکند و میفهمد چگونه آن را اجرا کند. این برنامه (یا “موتور”) در مرورگرها تعبیه شده است و به همین دلیل است که میتوانیم جاوا اسکریپت را در همه مرورگرهای خود اجرا کنیم. با این حال، هر مرورگر موتور مخصوص به خود را برای اجرای دستورات دارد. به همین دلیل است که گاهی اوقات هنگام اجرای برنامهها در مرورگرهای مختلف رفتار متفاوتی را تجربه میکنیم.
مدیریت زبان جاوا اسکریپت برعهده افراد خاصی است. هر چند وقت یک بار، این افراد تصمیم میگیرند که تغییراتی را ایجاد کنند. مثلا اگر سابقه کدنویسی در JS را داشته باشید، حتما به یاد دارید که در برنامه خود از «var» به جای «const» و «let» استفاده میکردید یا از کلمه کلیدی «function» به جای fat arrows یا همان => استفاده میکردید. اینها ویژگیهای جدیدی هستند که به تازگی به این زبان اضافه شدهاند. مهم است یادآوری کنیم که این ویژگیهای جدید تا زمانی که محیطهایی که این کد در آن اجرا میشود بهروزرسانی نشدهاند تا نحوه تفسیر این نحو جدید را بدانند، بیمعنی هستند.
پیشنهاد مقاله: با رعایت این 10 نکته جادویی در یادگیری برنامهنویسی موفق خواهید بود
کتابخانه اصلی و اشیاء و کلاسهای از پیش ساخته شده جاوا اسکریپت
به طور معمول، زبانهای برنامهنویسی مجهز به کلاسها و متدهای از پیش ساخته شده هستند. قبل از آنکه شروع به کدنویسی در جاوا اسکریپت کنیم، چند شی و کلاس داریم که به آنها دسترسی داریم. از جمله این مولفههای از پیش ساخته میتوان به Promises، متدهای ایستای «Math.random» و «JSON.parse»، آرایهها و متدهای آرایه مانند map، filter، reduce، Etc و غیره اشاره کرد.
در همه زبانهای برنامهنویسی، زمان اجرا و کتابخانههای اصلی به شکل یکپارچه در دسترس هستند. اگر کلاسهایی مانند رشتهها و آرایهها قبلا پیادهسازی نشده بودند، نوشتن یک برنامه جاوا اسکریپت کار چندان سادهای نبود، زیرا باید همه چیز را خودتان مینوشتید.
برگردیم به سؤال اصلی: تفاوت سی شارپ (#C) و داتنت (Net.) چیست؟
اکنون که درک بهتری از محیطهای زمان اجرا و کتابخانههای اصلی به دست آورید، زمان آن رسیده تا پاسخ خود را دوباره بررسی کنیم.
سی شارپ یک زبان برنامه نویسی است، در حالی که دات نت یک اصطلاح عمومی است که هم .NET Framework (یک کتابخانه فریمورک برنامه کاربردی) و زمان اجرای زبان مشترک (Common Language Runtime) را شامل میشود که تمامی کدهای نوشته شده به زبان سی شارپ را کامپایل میکند.
دات نت یک فریمورک نرمافزاری است که محیط زمان اجرا و کتابخانههایی را برای ساخت اپلیکیشنها در زبانهای برنامهنویسی مختلف ارائه میدهد. این در حالی است که سی شارپ یک زبان برنامهنویسی است که عمدتا برای ساخت اپلیکیشنها و برنامههای دات نت استفاده میشود.
سی شارپ یک زبان برنامه نویسی همه منظوره و کاربردی است. این زبان برنامه نویسی، قواعد و کلمات کلیدی مخصوص به خود را دارد (به عنوان مثال “class”، “namesapce”، “return” و غیره)، آکولادهای باز و بسته، کلاسها و اشیایی که همگی در ارتباط با یکدیگر کار میکنند.
دات نت یک محیط ران تایم، کتابخانههای متعدد و ابزارهای توسعه زیادی را برای ساخت انواع اپلیکیشنها در زبانهای برنامهنویسی مختلف فراهم میکند و از طرف دیگر سی شارپ، دارای سینتکس و ابزارهای توسعه مخصوص به خود است که برای مثال میتوان به ویژوال استودیو اشاره کرد.
فریم ورک دات نت از طریق .NET Core امکان اجرای اپلیکیشنها روی پلتفرمها و سیستمعاملهای مختلف را فراهم میکند. این در حالی است که سی شارپ تنها روی محیطهایی قابل اجراست که از ران تایم دات نت پشتیبانی میکنند که برای مثال میتوان به سیستم عامل ویندوز اشاره کرد.
زمان اجرای دات نت (Dot NET runtime) ابزاری است که در واقع میداند چگونه کد کامپایل شده ما را اجرا کند. دات نت به عنوان زمان اجرای زبان مشترک (CLR) نیز شناخته میشود. به همین دلیل است که زمان اچرای دات نت علاوه بر زبان سی شارپ، میتواند کدهای نوشته شده با اف شارپ (F#) و ویژوال بیسیک (VisualBasic) را نیز اجرا کند.
و در حالی که کتابخانه هسته جاوا اسکریپت تعداد انگشت شماری از عملکردهای داخلی را به ما ارائه میدهد، دات نت با هزاران کلاس به طور مستقیم در دسترس ماست تا به سرعت شروع به کدنویسی کنیم. به عنوان مثال، ما بلافاصله بعد از شروع کدنویسی در سی شارپ با کلاس `List` آشنا میشویم. کلاس List در حال حاضر برای استفاده ما در دسترس است و از قبل متدهایی مانند Add و Remove در آن پیادهسازی شده است. این کتابخانههای کلاس همان چیزی هستند که .NET Framework را شکل میدهند.
آخرین فرق دات نت با سی شارپ نیز این است که دات نت قابلیت سازگاری بین زبانهای برنامهنویسی مختلف را فراهم میکند و این در حالی است که سی شارپ تنها میتواند با دیگر زبانهای برنامهنویسی در دات نت تعامل داشته باشد.
خب! اگر تصمیم دارید یادگیری سی شارپ را همراه با دات نت شروع کنید، خبر خوبی برای شما داریم. شما مالک این کتابخانه غنی هستید و قادرید از این کتابخانه و زبان برنامه نویسی برای نوشتن برنامه های ارزشمند استفاده کنید. در نهایت باید به این نکته اشاره کنیم که دات نت توانایی کامپایل کتابخانههای مایکروسافت و کدهایی که ما به زبان سی شارپ نوشتهایم را دارد.
پیشنهاد مقاله: پایتون بهتر است یا سی شارپ؟


