کارایی ASP.NET Core
تمرکز اصلی ASP.NET Core روی کارایی است. در مطالعه ای که روی عملکرد چندین سکوی وب اپلیکیشن، چارچوب های full-stack و micro-frameworks انجام شده است، ASP.NET Core سریعتر از دیگر چارچوب های وب معروف است. نسخه کامل این گزارش اینجا دردسترس است.
چرا ASP.NET Core
میلیون ها برنامه نویس برای ایجاد برنامه های وب از ASP.NET 4.x استفاده می کنند یا کرده اند. ASP.NET Core یک طراحی مجدد از ASP.NET 4.x است، شامل تغییرات معماری است که منجر به چارچوبی لاغرتر و ماژولارتر شده است.
مزایای ASP.NET Core
- روال واحدی برای ساخت UI وب و API وب دارد.
- برای قابلیت تست پذیری طراحی شده است.
- Razor Pages ،کدنویسی سناریوهای متمرکز بر صفحه را آسانتر و کارامدتر می کنند.
- Blazor به شما اجازه می دهد از C# در کنار JavaScript در مرورگر استفاده کنید. منطق برنامه های سمت کلاینت و سمت سرور را مشترک می کنند که همه با .NET نوشته شده اند.
- توانایی توسعه واجرا روی سیستم عامل های ویندوز، مک، لینوکس را دارد.
- متن باز(open source) و متمرکز بر کار جمعی می باشد.
- چارچوب های سمت کلاینت و توسعه گردش کاری را یکپارچه می کند.
- میزبانی سرویس های فراخوانی رویه راه دور(RPC) را با استفاده از gRPC پشتیبانی می کند.
- از تزریق وابستگی(dependency injection) پشتیبانی می کند.
- صف درخواستهای HTTP ماژولار، سبک و با کارایی بالا دارد.
- محیطی برای برنامه نویسی نرم افزارهای Cloud ایجاد می کند.
- توانایی میزبانی روی موارد زیر را دارد:
- Kestrel
- IIS
- HTTP.sys
- Nginx (وب سرور NGINX چیست؟)
- Apache
- Docker
- نسخه های مختلف .NET Core را در کنار هم پشتیبانی می کند.
- ابزاری که توسعه وب جدید را آسانتر می کند.
چه زمانی.NET Core را انتخاب کنیم؟
در زیر جزئیات بیشتری برای انتخاب .NET Core آمده است:
-
نیاز به چندسکویی (Cross-Platform)
- اگر برنامه شما(وب/سرویس) نیاز به اجرا روی چندین سکو (ویندوز، لینوکس یا مک) را دارد از .NET Core استفاده کنید.
.NET Core از سیستم عامل های قبلی شما که به عنوان محیط کار توسعه استفاده کرده اید پشتیبانی می کند. ویژوال استادیو یک محیط توسعه یکپارچه (IDE) برای ویندوز و مک فراهم می کند. شما همچنین می توانید از ویژوال استادیو کد یا ویرایشگرهای دیگر استفاده کنید که روی مک، لینوکس و ویندوز اجرا می شود. ویژوال استادیو کد، .NET Core را پشتیبانی می کند و شامل IntelliSense و خطایابی می باشد.
- معماری میکروسرویس
معماری میکروسرویس، اجازه استفاده از ترکیبی از تکنولوژی ها در محدوده سرویس ها را می دهد. این ترکیب تکنولوژی یک پذیرش تدریجی از .NET Core برای میکروسرویس های جدیدی است که با دیگر میکروسرویس ها یا سرویس ها کار می کنند. به طور مثال شما می توانید میکروسرویس ها یا سرویس های توسعه یافته را با .NET Framework ، Java، Ruby یا دیگر تکنولوژی های یکپارچه ترکیب کنید.
- Containers (کانتینرها)
کانتینرها معمولا در رابطه با معماری میکروسرویس ها استفاده می شوند. همچنین می توانند برای برنامه های وب یا سرویس هایی استفاده شوند که از هر الگوی معماری پیروی می کنند. . NET Framework می تواند روی کانتینرهای ویندوز استفاده شود اما ماژولاری و سبک بودن ذاتی .NET Core موجب می شود که انتخاب بهتری برای کانتینرها باشد. وقتی که یک کانتینر ایجاد می شود و استقرار می یابد، اندازه image آن با .NET Core کمتر از . NET Framework است. بدلیل اینکه .NET Core چندسکویی است شما می توانید برنامه سرور را روی کانتینرهایی از داکر لینوکس مستقر کنید.
- سیستم هایی با عملکرد بالا و مقیاس پذیری
زمانی که سیستم شما نیاز به بهترین عملکرد ممکن و مقیاس پذیری دارد، .NET Core و ASP.NET Core بهترین انتخاب هستند. عملکرد بالای زمان اجرای سرور برای ویندوز سرور و لینوکس موجب می شود که .NET چارچوب وبی با عملکرد بالا باشد. برای اطلاعات بیشتر اینجا را مطالعه کنید.
عملکرد و مقیاس پذیری بویژه برای معماری های میکروسرویس مهم است، جایی که صدها میکروسرویس در حال اجرا هستند. با ASP.NET Core ، سیستم ها با تعداد کمتری ماشین مجازی(vm) / سرور اجرا می شوند. کاهش تعداد سرورها/ماشین مجازی ها باعث صرفه جویی هزینه در زیرساخت ها و میزبان می شود.
نسخه های asp core در کنار هم در هر سطح از برنامه
برای نصب برنامه های وابسته به نسخه های مختلف .NET ، .NET Core توصیه می شود. .NET Core نصب نسخه های مختلف .NET Core در کنار هم در زمان اجرا روی یک ماشین را پشتیبانی می کند. این نصب درکنار هم، اجازه دسترسی به چندین سرویس روی یک سرور را می دهد که هرکدام آنها نسخه .NET Core خود را دارند. این امر خطرات را کاهش می دهد و موجب صرفه جویی هزینه بروزرسانی برنامه و عملیات IT می شود.
نصب در کنار هم با .NET Framework امکان پذیر نیست. آن یک کامپوننت ویندوز است و فقط یک ورژن می تواند روی یک ماشین در یک زمان وجود داشته باشد. هر ورژن .NET Framework جایگزین نسخه قبلی می شود.