چارچوب دات‌نت

**چارچوب دات‌نت**  یک فناوری نرم‌افزاری است که بر روی تمامی ویرایش‌های سیستم‌عامل ویندوز مایکروسافت قابل اجرا است.

این چارچوب مجموعه‌ای از زبانهای برنامه‌نویسی که شامل سی شارپ و ویژوال بیسیک می‌باشد و همچنین کتابخانه‌های بسیار غنی جهت کمک به سهولت توسعه نرم‌افزار در برمیگیرد که در قالب بخش‌های عمده‌ای همچون فناورهای ASP.NET, ADO.NET و بسیاری فناوری‌های خاص دیگر ارائه می‌شوند که تعداد آن‌ها در نسخه‌های اخیر بیشتر شده‌است.

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

در ژوئن ۲۰۰۰، شرکت مایکروسافت خبر توسعه چهارچوب نرم‌افزاری دات‌نت، به همراه یک زبان برنامه‌نویسی جدید به نام سی شارپ را اعلام کرد. چارچوب دات‌نت یک مجموعهٔ وسیع از امکانات برنامه‌نویسی است.

زبان‌های #C و Visual Basic .NET همگی از چارچوب دات‌نت استفاده می‌کنند. برنامه‌های نوشته شده در این چهارچوب، ابتدا به زبان میانی مشترک ترجمه شده و سپس توسط زمان اجرای زبان مشترک اجرا می‌شوند. دات نت باعث شد که قدرت برنامه‌نویسی در زبانهای تحت این چارچوب یکسان شود و تفاوت فقط در نوع کدنویسی باقی بماند. چون ابزار و قدرت در دات نت از خواص دات نت است، نه زبان مورد استفاده.

تغییر عمده‌ای که در برنامه‌نویسی با دات نت نسبت به گذشته قابل رویت است نحوه اتصال به پایگاه‌های داده‌است که علاوه بر روش‌های قدیمی مانند DAO و ADO می‌توان از فناوری جدید ای‌دی‌اودات‌نت و انتیتی فریم ورک استفاده کرد.

## تاریخچه
مایکروسافت در اواخر دهه ۱۹۹۰ اقدام به توسعه دات نت تحت نام نسل بعدی خدمات ویندوز  کرد. در اواخر سال ۲۰۰۰ اولین نسخه بتا از NET 1.0 منتشر و سپس مایکروسافت با همکاری اچ پی و اینتل جهت استانداردسازی زیرساخت زبان مشترک  و سی شارپ کار می‌کردند که تا دسامبر ۲۰۰۱ برای هردو مورد ذکر شده استاندارد اکما

(ECMA) را تصویب کردند. و همچنین در آوریل ۲۰۰۳ توسط سازمان بین‌المللی استانداردسازی (ISO) ثبت شده‌است. مخزن کد منبع در تاریخ ۱۶ ژانویه ۲۰۰۷ به صورت آنلاین در دسترس قرار گرفت که شامل ASP.NET, ADO.NET, Windows Forms, WPF و XML بود و همچنین مایکروسافت قول داد که کتابخانه‌های LINQ, WCF و WF نیز به زودی اضافه می‌شوند. در ۱۲ نوامبر ۲۰۱۴، مایکروسافت در تلاش برای پشتیبانی از قابلیت چندسکویی Net Core. را معرفی کرده و همچنین منبع کد آن را در اختیار توسعه دهنگان قرار داد تا تحت نظر بنیاد دات نت و به صورت متن باز توسعه پیدا کند. به گفته مایکروسافت Net Core. به عنوان یک طراحی مجدد که مبتنی بر نسخه ساده شده کتابخانه‌های دات نت و همچنین از آن به عنوان پایه و اساس تمام پلتفرم‌های آینده دات نت یاد شد. انتشار اولیه پروژه شامل زیر مجموعه ای از کد منبع کتابخانه‌های بکار رفته به همراه مجوزهای که مشابه با مجوزهای .Net بود صورت گرفت.

## معماری چارچوب دات‌نت
معماری چارچوب دات‌نت از چند مؤلفهٔ کلیدی تشکیل شده است که به صورت یکپارچه برای ساده‌سازی توسعهٔ نرم‌افزارهای قابل حمل، چندسکویی و ایمن طراحی شده‌اند. مهم‌ترین این مؤلفه‌ها عبارت‌اند از:

### CTS (سیستم نوع مشترک)
**CTS** یا *Common Type System* ساختاری استاندارد برای تعریف و مدیریت انواع داده در چارچوب دات‌نت فراهم می‌کند. این سیستم، انواع داده‌ای مانند کلاس‌ها، ساختارها، اینترفیس‌ها، شمارشی‌ها و نماینده‌ها را تعریف می‌کند و امکان تبادل داده بین زبان‌های مختلف تحت دات‌نت را ممکن می‌سازد.

### CLS (مشخصات زبان مشترک)
**CLS** یا *Common Language Specification* زیرمجموعه‌ای از ویژگی‌های CTS است که برای تضمین سازگاری بین زبان‌های مختلف .NET تعریف شده است. رعایت CLS تضمین می‌کند که کد نوشته‌شده در یک زبان، در زبان‌های دیگر قابل استفاده و توسعه باشد.

### CLR (زمان اجرای زبان مشترک)
**CLR** یا *Common Language Runtime* بخش زمان اجرای چارچوب است که وظیفهٔ مدیریت حافظه، اجرای کد، امنیت، کنترل استثنا و بسیاری خدمات دیگر را بر عهده دارد. CLR نقشی مشابه با JVM در جاوا ایفا می‌کند.

### BCL (کتابخانه کلاس پایه)
**BCL** یا *Base Class Library* مجموعه‌ای گسترده از کلاس‌ها و رابط‌های از پیش تعریف‌شده‌ است که شامل توابع پایه‌ای برای کار با فایل‌ها، داده‌ها، گرافیک، شبکه، رابط کاربر و بسیاری موارد دیگر می‌شود.

## <span lang="en" dir="ltr">.NET Core</span>
.NET Core یک چارچوب چند سکویی و آزاد و متن باز مشابه چارچوب دات نت است که توسط مایکروسافت توسعه داده شده و تحت پروانه ام‌آی‌تی منتشر شده‌است. ویرایش ۱٫۰ آن در ۲۷ ژوئن ۲۰۱۶ به همراه به روز رسانی ۳ ویژوال استودیو ۲۰۱۵ عرضه شد. آخرین ویرایش ۵.۰.۲۰۳ آن در ‍‍۱۱ می ۲۰۲۱ عرضه شد.

## <span lang="en" dir="ltr">.Net Standard</span>
مسئله ای که اکوسیستمِ فعلیِ توسعهٔ مبتنی بر دات نت با آن مواجه است، این می‌باشد که هر کدام از این چارچوب‌ها، علی‌رغمِ شباهت‌ها، در بخش‌های بسیاری با یکدیگر متفاوت می‌باشند و به‌طور کلی دارای کلاس‌ها، رفتارها و APIهای متفاوتی می‌باشند. در نتیجه کدی که شما در یکی از این فریم ورک‌ها می‌نویسید دلیلی ندارد در پلتفرم‌های دیگر هم قابل اجرا باشد. همچنین دات نت کور بسیاری از APIها دات نت سنتی را ندارد و در بعضی جاها دارای تفاوت‌های اساسی با آن می‌باشد.

برای حل معضل از هم گسیختگیِ اکوسیستمِ دات نت، یکپارچه سازی APIها و بالا بردن توانایی اجرا بر روی همه پلتفرم‌ها، مایکروسافت مدتی است که استانداردی را تحت عنوان dotNet Standard معرفی کرده‌است. dotNet Standard در واقع مجموعهٔ بسیار بزرگ و کاربردی ایی از API هاست که فریم ورک‌های مختلف می‌بایست آن‌ها را پیاده‌سازی کرده و این APIها بین همه فریم ورک‌ها یکسان باشند.

## تست دات‌نت
تست یکی از اجزای مهم در تولید نرم‌افزار است، در دات‌نت نیز مانند سایر فناوری‌ها نیاز به تست وجود دارد. نیاز به ابزار قدرتمندی برای پروفایل کردن برنامه‌های کاربردی دات-نت همیشه احساس می‌شود. در تست باید میزان و نحوه استفاده از پردازنده، ورودی/خروجی و حافظه را در سطح برنامه مشخص نماییم. ابزارهای profiler، برخلاف ابزارهای monitoring، اشکالات کارایی و کندی سیستم را در سطح برنامه‌نویسی مشخص می‌کنند.

## جستارهای وابسته
* مایکروسافت
* سی شارپ
* ویژوال بیسیک دات‌نت
* برنامه‌نویسی شئ‌گرا
* برنامه‌نویسی

## منابع

* (فارسی) https://web.archive.org/web/20161220215758/https://www.mohandespishegan.com/
* 

https://plink.ir/Z5GjI

رده:چارچوب دات‌نت
رده:ابزارهای توسعه نرم‌افزار مایکروسافت
رده:سکوهای رایانش
رده:نرم‌افزارهای چندسکویی
رده:نرم‌افزارهای رایگان مایکروسافت
رده:نرم‌افزارهای ۲۰۰۲ (میلادی)
رده:رابط‌های برنامه‌نویسی کاربرد مایکروسافت
رده:نرم‌افزارهای آزاد منحصر به ویندوز