ASP.NET Core

ASP.NET Core یک فریمورک وب ماژولار و متن‌باز است. این فریمورک بازطراحی شده از ASP.NET است که نسخه‌های قبلی ASP.NET MVC و ASP.NET Web API را در یک مدل برنامه‌نویسی واحد ترکیب می‌کند. اگرچه این فریمورک جدید بر روی یک پشته وب جدید ساخته شده، اما از نظر مفهومی با ASP.NET سازگاری بالایی دارد. ASP.NET Core از نسخه‌های جانبی پشتیبانی می‌کند، به طوری که برنامه‌های مختلفی که روی یک ماشین واحد در حال توسعه هستند، می‌توانند نسخه‌های مختلف ASP.NET Core را هدف قرار دهند. این قابلیت در نسخه‌های قبلی ASP.NET وجود نداشت. ASP.NET Core در ابتدا روی هر دو پلتفرم ویندوز و .NET Framework و همچنین .NET cross-platform اجرا می‌شد. با این حال، از نسخه ASP.NET Core 3.0 به بعد، پشتیبانی از .NET Framework حذف شد.

Blazor یک مؤلفه جدید و اختیاری برای پشتیبانی از WebAssembly است. از نسخه 5.0، پشتیبانی از برخی مرورگرهای وب قدیمی متوقف شده است. اگرچه نسخه فعلی مرورگر Microsoft Edge با Blazor سازگار است، اما نسخه قدیمی آن، یعنی "Microsoft Edge Legacy"، و همچنین اینترنت اکسپلورر 11 دیگر پشتیبانی نمی‌شوند.

## تاریخچه انتشار

## نامگذاری
ابتدا این فریمورک با نام ASP.NET vNext شناخته می‌شد و قرار بود به عنوان ASP.NET 5 عرضه شود. با این حال، برای جلوگیری از ایجاد این تصور که این یک به‌روزرسانی از ASP.NET موجود است، مایکروسافت در نهایت نام آن را به ASP.NET Core تغییر داد و آن را با نسخه 1.0 معرفی کرد.

## توسعه و یکپارچه‌سازی با .NET
از سال ۲۰۲۰، مایکروسافت با ادغام نسخه‌های مختلف فریمورک .NET (شامل .NET Framework و .NET Core) تحت عنوان یک نسخه‌ی واحد با نام **.NET 5**، تلاش کرد تا تجربه‌ای یکپارچه‌تر برای توسعه‌دهندگان فراهم کند. در نتیجه، ASP.NET Core نیز به عنوان فریمورک وب اصلی در این نسخه‌ی یکپارچه نقش دارد و از قابلیت‌هایی همچون چندزبانه بودن، مدل استقرار ساده‌تر، و ابزار خط فرمان مستقل از پلتفرم (dotnet CLI) بهره‌مند شده است. این تغییرات باعث افزایش تطبیق‌پذیری ASP.NET Core با نیازهای توسعه‌ی مدرن، به ویژه در محیط‌های چندپلتفرمی شده‌اند.

## مزایای معماری .NET در ASP.NET Core
ASP.NET Core به واسطه‌ی معماری بنیادین .NET از مجموعه‌ای از مزایا بهره می‌برد که آن را برای توسعه‌ی اپلیکیشن‌های مدرن به گزینه‌ای قدرتمند تبدیل کرده‌اند. از جمله این مزایا می‌توان به **پشتیبانی از چند زبان برنامه‌نویسی** (مانند C#، VB.NET، و F#)، وجود **موتور اجرای مشترک (CLR)** برای همه‌ی زبان‌ها، و **کتابخانه کلاس‌های پایه (BCL)** اشاره کرد که هزاران نوع داده و توابع از پیش تعریف‌شده را برای توسعه سریع و استاندارد فراهم می‌سازد.

همچنین، مدل استقرار در .NET به گونه‌ای طراحی شده که نیاز به ثبت در رجیستری سیستم را حذف کرده و امکان اجرای چند نسخه‌ی مختلف از یک کتابخانه (DLL) را بر روی یک ماشین فراهم می‌سازد. این ویژگی‌ها، همراه با ابزار خط فرمان dotnet CLI، تجربه‌ای ساده و قابل حمل برای توسعه‌دهندگان فراهم می‌کند. این معماری پایه، زیربنای عملکرد ASP.NET Core است و امکان توسعه‌ی اپلیکیشن‌های وب، API، و سرویس‌های RESTful را در محیط‌های مختلف (ویندوز، لینوکس، macOS) فراهم می‌کند.

## امکانات

* تجربه توسعه دهنده بدون کامپایل (یعنی کامپایل مداوم است، به طوری که توسعه دهنده مجبور به فراخوانی دستور کامپایل نیست)
* چارچوب ماژولار به عنوان بسته های NuGet توزیع شده است
* زمان اجرا بهینه شده در فضای ابری (بهینه شده برای اینترنت)
* Host-agnostic از طریق رابط وب باز برای . پشتیبانی NET (OWIN)   - در IIS یا مستقل اجرا می شود
* یک داستان یکپارچه برای ایجاد رابط کاربری وب و APIهای وب (یعنی هر دو یکسان)
* یک سیستم پیکربندی مبتنی بر محیط آماده برای ابر
* خط لوله درخواست HTTP سبک و مدولار
* ساخت و اجرای cross-platform ASP. برنامه های NET Core در ویندوز، مک و لینوکس
* منبع باز و جامعه محور
* هنگام هدف‌گیری، نسخه‌های جانبی برنامه. خالص
* پشتیبانی داخلی برای تزریق وابستگی
* امنیت پیشرفته در مقایسه با Asp. خالص 

## اجزاء

* Entity Framework (EF) Core
* Identity Core
* MVC Core
* Razor Core
* SignalR
* Blazor
* Kestrel web server

## همچنین ببینید

* . پلتفرم کامپایلر NET
* مونونوکلئوز
* کد ویژوال استودیو

## منابع


## لینک های خارجی

*
* ASP.NET Core on GitHub

**
رده:ای‌اس‌پی‌دات‌نت
رده:نرم‌افزارهای رایگان مایکروسافت
رده:نرم‌افزارهایی که از پروانه آپاچی استفاده می‌کنند
رده:چارچوب‌های نرم‌افزاری تحت وب