CodeShot

ASP.NET Core در مقابل .NET Framework

ASP.NET Core یک فریم‌ورک مدرن، متن‌باز و Cross-Platform است که روی Windows، Linux و macOS اجرا می‌شود و به‌صورت فعال توسعه داده می‌شود؛ .NET Framework فریم‌ورک قدیمی‌تر مایکروسافت است که فقط روی Windows اجرا می‌شود و اکنون در حالت نگه‌داری (maintenance mode) قرار دارد.

ویژگیASP.NET Core.NET Framework
پلتفرمCross-Platform (Windows/Linux/macOS)فقط Windows
وضعیت توسعهفعال و به‌روزرسانی مداومحالت نگه‌داری (بدون ویژگی جدید)
کاراییبالاپایین‌تر نسبت به Core
مناسب برایپروژه‌های جدیدنگه‌داری سیستم‌های قدیمی

کِی از ASP.NET Core استفاده کنیم؟

برای هر پروژه جدید امروز، از ASP.NET Core استفاده کنید — کارایی بهتر، پشتیبانی Cross-Platform، و مسیر توسعه فعال آینده مایکروسافت است.

کِی از .NET Framework استفاده کنیم؟

فقط برای نگه‌داری یک سیستم قدیمی موجود که هنوز به کتابخانه‌ای وابسته است که در .NET Core/۵+ پورت نشده (مثل WCF سرور یا WebForms)، به سراغ .NET Framework بروید.

مثال ASP.NET Core

// ASP.NET Core - cross-platform, runs anywhere
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello from ASP.NET Core");
app.Run();

مثال .NET Framework

// .NET Framework (System.Web) - Windows/IIS only
public class HomeController : Controller
{
    public ActionResult Index() => View();
}

اشتباه رایج

شروع یک پروژه کاملاً جدید در .NET Framework در سال‌های اخیر (بدون دلیل موجه) که پروژه را از ابتدا با یک فریم‌ورک بدون آینده و بدون کارایی مدرن گیر می‌اندازد؛ همچنین اشتباه در تشخیص ".NET Core" و ".NET 5+" به‌عنوان چیزهای متفاوت — از .NET 5 به بعد، همه این‌ها فقط ".NET" نامیده می‌شوند و ادامه همان ASP.NET Core هستند.

جمع‌بندی

برای پروژه جدید همیشه ASP.NET Core (.NET 8+)؛ .NET Framework فقط برای نگه‌داری سیستم‌های قدیمی موجود.