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 فقط برای نگهداری سیستمهای قدیمی موجود.
