تفاوت NET Core. و NET Framework.
NET Core. و NET Framework. هر دو بسیاری از مؤلفه های مشابه را به اشتراک می گذارند به نحوی که شما می توانید کد خود را میان این دو به اشتراک بگذارید. با این حال، تفاوت های اساسی بین این دو وجود دارد و انتخاب شما به آنچه شما می خواهید انجام دهید بستگی دارد. در این مقاله راهنمایی در مورد زمان استفاده از هر کدام را ارائه می دهیم.
از NET Core. برای برنامه سرور خود هنگامی استفاده کنید که:
- نیاز دارید برنامه خود را روی سیستم عامل های مختلف اجرا کنید.
- می خواهید از میکرو سرویس ها در برنامه خود استفاده کنید.
- می خواهید از Docker استفاده کنید.
- به سیستم هایی با کارایی بالا و مقیاس پذیر نیاز دارید.
از NET Framework. برای برنامه سرور خود هنگامی استفاده کنید که:
- برنامه شما در حال حاضر از NET Framework. استفاده می کند.
- برنامه شما از یک کتابخانه ی NET. یا پکیج NuGet ای استفاده می کند که برای .NET Core در دسترس نیست.
- برنامه شما از تکنولوژی Net. ای استفاده می کند که برای NET Core. موجود نیست.
- برنامه شما از پلتفرمی استفاده می کند که NET Core. پشتیبانی نمی کند. NET Core. از پلتفرم های Windows، Linux و macOS پشتیبانی می کند.
در ادامه توضیحات مفصلی درباره دلایل قبلی برای انتخاب NET Core. ارائه می کنیم.
Cross-platform needs
اگر شما یک برنامه (وب / سرویس) دارید که باید روی چندین سیستم عامل (Windows ، Linux و MacOS) اجرا شود، از NET Core. استفاده کنید. NET Core. از سیستم عامل هایی که ذکر شد به عنوان فضای کاری توسعه شما پشتیبانی می کند. Visual Studio یک محیط توسعه یکپارچه برای Windows و macOS فراهم می کند. همچنین می توانید از Visual Studio Code استفاده کنید که روی macOS ، Linux و Windows اجرا می شود. Visual Studio Code از NET Core. پشتیبانی می کند، از جمله IntelliSense و اشکال زدایی. همچنین شما می توانید از هر ویرایشگر کدی جلوگیری کنید و مستقیماً از ابزار NET Core CLI. استفاده کنید، که برای همه سیستم عامل های پشتیبانی شده در دسترس است.
Microservices architecture
یک معماری Microservices امکان ترکیبی از فناوری ها را در یک service boundary فراهم می کند. این ترکیب فن آوری پذیرش تدریجی NET Core. را برای میکرو سرویس های جدید که با دیگر میکرو سرویس ها یا Service های دیگر کار می کنند، فراهم می کند. به عنوان مثال، شما می توانید Microservices ها و دیگر service های ارائه شده با NET Framework ، Java ، Ruby. یا دیگر فناوری های یکپارچه را با هم ترکیب کنید.
A need for high-performance and scalable systems
هنگامی که سیستم شما به بهترین performance و مقیاس پذیری ممکن نیاز دارد، NET Core. و ASP.NET Core بهترین گزینه برای شما هستند. performance و scalability به ویژه برای معماری میکروسرویس، جایی که صدها سرویس میکروسرویس در حال اجرا هستند مهم است. با وجود ASP.NET Core، سیستم ها با تعداد بسیار کمتری از سرورها یا ماشین های مجازی (VM) کار می کنند. کاهش سرورها یا VM ها باعث صرفه جویی در هزینه های زیرساخت و هاستینگ می شوند.
در ادامه دلایلی که سبب می شود با وجود NET core. همچنان از Net Framework. استفاده کنیم را به تفصیل شرح می دهیم.
Current .NET Framework applications
در بیشتر موارد شما نیازی به مهاجرت برنامه های خود از NET Framework. به NET Core. ندارید. در این گونه موارد شما به عنوان یک روش پیشنهادی می توانید از NET Core. برای توسعه برنامه کاربردی خود استفاده کنید. به عنوان مثال نوشتن یک Web Service جدید در ASP.NET Core
A need to use third-party .NET libraries or NuGet packages not available for .NET Core
در مواردی که کتابخانه ها یا بسته های NuGet از تکنولوژی هایی استفاده می کنند که در NET Standard. یا NET Core. در دسترس نیستند، شما باید از NET Framework. استفاده کنید.
A need to use .NET technologies not available for .NET Core
برخی از تکنولوژی های NET Framework. در NET core. موجود نیست. برخی از آن ها ممکن است در نسخه های بعدی NET Core. در دسترس باشند و برخی دیگر ممکن است هرگز در دسترس نباشند. لیست زیر متداول ترین تکنولوژی هایی که در NET Core. موجود نیست را نشان می دهد:
- ASP.NET Web Forms applications
ASP.NET Web Forms فقط در NET Framework. در دسترس هستند. ASP.NET Core برای ASP.NET Web Forms قابل استفاده نیست و هیچ برنامه ای برای آوردن ASP.NET Web Forms به NET Core. وجود ندارد.
- ASP.NET Web Pages applications
ASP.NET Web Page ها در ASP.NET Core گنجانده نشده است و فقط در NET Framework. در دسترس هستند.
- WCF services implementation
اجرای Server WCF در حال حاضر فقط در NET Framework. موجود است. این سناریو بخشی از برنامه فعلی برای NET Core. نیست اما برای آینده در نظر گرفته شده است.
- Language support
زبان Visual Basic و #F در حال حاضر در NET Core. پشتیبانی می شوند، اما برای همه نوع پروژه ها موجود نیستند.