مایکروسافت با توجه به نابودی Silverlight و عدم توان رقابت با IOS و اندروید به این نتیجه رسید که در بستر برنامه نویسی ویندوز موبایل نمی تواند موفقیت آنچنانی داشته باشد، سیستمهای تحت ویندوز یا همان Windows Application ها نیز آنچنان پر رونق نیستند. پس تنها صحنه رقابت برای مایکروسافت بستر وب است. Startup ها نیز به بستر های Open Source و ارزان نیاز دارند.
حتما خبرهایی مانند “Open Source شدن دات نت” و “قابلیت اجرا بر روی غیر ویندوز مثل لینوکس” را شنیده اید.
مایکروسافت جهت رفع مشکلات اعلام شده Asp .Net Core را وارد بازار رقابت کرده است. .Net Core کاملا cross-platform طراحی شده به شکلی که در ویندوز، لینوکس و مک قابل استفاده بوده و همچنین برای دستگاهای مختلف، فضاهای ابری و سناریوهای مرتبط با اینترنت اشیا کاربرد دارد.
ASP.NET Core ، بازنویسی کامل از ASP.NET است. ویندوز هنوز هم سیستم عاملی برتر به حساب می آید ولی برنامه های وب نه تنها روز به روز از کاربرد و اهمیت بیشتری برخوردار میشوند بلکه باید بر روی سکوهای دیگری مانند فضای ابری هم بتوانند میزبانی شوند. مایکروسافت با معرفی ASP.NET Core گستره کارکرد NET. را افزایش داده است . به این معنی که میتوان برنامههای کاربردی ASP.NET Core را بر روی بازهی گسترده ای از محیطهای مختلف میزبانی کرد هماکنون میتوانید پروژه های وب را برای Linux یا MacOS هم تولید کنید.
تفاوت .Net Core و .Net framework
. NET Framework فقط برای سرویسهای ویندوزی مورد استفاده قرار میگیرد. پروژههای Xamarin و Mono برای آوردن .NET به دستگاههای تلفن همراه، macOS و لینوکس کار کردهاند .
.Net Core کتابخانههای استاندارد را که بر اساس ویندوز، لینوکس، دستگاههای تلفن همراه (Xamarin) و macOS هستند، تأمین میکند.
همان طور که میتوانید در عکس زیر مشاهده کنید، مایکروسافت هر دو زمان اجرا را برای ساخت برنامههای کاربردی با دات نت را اداره میکند و بسیاری از APIهای مشابه را به اشتراک میگذارند. این API مشترک ، .NET Standard نامیده میشوند.
هنوز تعداد زیادی از کتابخانههای Full framework به NET Core. انتقال پیدا نکردهاند
توسعهدهندگان از NET Framework. برای ساخت نرم افزارهای ویندوزی و سرور استفاده میکنند که شامل برنامههای ASP.NET هم میشود. NET Core. برای ساخت برنامههای سروری (Server Applications) مورد استفاده قرار میگیرد که امکان اجرا برروی ویندوز، لینوکس و مک را دارند. در حال حاضر NET Core. از ساخت اپلیکیشنهای دسکتاپی که دارای رابط کاربری هستند، پشتیبانی نمیکند. توسعهدهندگان میتوانند نرمافزارها و کتابخانههای خود را برای هرکدام از این runtime ها در #C یا VB.NET یا #F بنویسند.
برخی از ویژگی های .Net Core
NET CORE. و برنامه های اجرا شده در این پلتفرم بسیار سبک و کم حجم میباشند.
Cross Platform می باشد: شما با NET CORE. به معنای کامل می توانید به صورت یکپارچه در تمامی سیستم عامل ها و دیوایس ها پروژه خود را پیاده سازی کنید.
سازگاری : به لطف استفاده از کتابخانه استاندارد .Net ، .Net Core توانایی سازگاری با .Net Framework ، Xamarin و Mono را داراست.
انعطاف پذیری در استفاده : می تواند به صورت یک افزونه در اپلیکیشن مورد نظر شما افزوده شود و یا اینکه به صورت کاملا مجزا و با کاربری های مختلف در سرویس شما نصب گردد.
توسعه راحت و سریع: .Net Core باعث شده است پروژه ها و استارت آپ های زیاد به جهت راحتی در تیم برنامه نویسی این پلتفرم را انتخاب کنند.
پشتیبانی از Github و نیوگت برای برنامه های اوپن سورس
هزینه های پایینتر: از دیگر مشکلات برنامه های ویندوزی هزینه نگهداری و منابع مورد نیاز آنها بود. با کاهش محسوس حجم برنامه ها و منابع مورد نیاز میتواند یکی دیگر از بهترین مزیت های NET CORE. را هزینه نگهداری پایین آن درنظر گرفت.
متن باز بودن (Open source) : پلتفرم .Net Core کاملا متن باز بوده و از لایسنسهای MIT و Apache 2 استفاده می کند.
ابزارهای Command-line : پشتیبانی از خط فرمان بسیار قدرتمند برای نصب بسته های پیش نیاز، تمامی محصولات مشتق شده از سناریوهای مختلف قابل استفاده و ویرایش و اجرا به صورت خط فرمان هستند.
با این تغییرات ASP.NET میتواند دوباره به مدار باز گردد .
با این ویژگی ها ASP.NET با دیگر محیطها و زبانهای توسعه وب در یک سطح خواهد بود، علاوه بر اینکه زبان قدرتمند C# – .NET همچنان هسته اصلی توسعه باقی خواهد ماند و این یک برتری بسیار بزرگ نسبت به دیگر زبانها می باشد.
NET Core. از اجزای زیر تشکیل شده است:
یک .NET Runtime که یک نوع سیستم را ارائه میدهد، Assembly Loading، جمعکننده اضافات، تبادل کننده داخلی اطلاعات و دیگر سرویسهای پایهای.
تعدادی از کتابخانههای فریمورکی که انواعی از دادههای اولیه را ارائه میدهد، ترکیبکننده اپلیکیشنها، و ابزارهای دیگر.
تعدادی ابزار SDK و کامپایلر زبان که تجربه توسعه پایهای را که در NET Core SDK. در دسترس است، فعال میکند.
اپلیکیشن میزان DotNet که به منظور اجرای اپلیکیشنهای NET Core. مورد استفاده قرار میگیرد. این اپ، Runtime را انتخاب و میزبانی کرده و حریم شحصی و اجرای اپلیکیشنها را ارائه میدهد.
چه موقع از NET Core. استفاده نکنیم؟
یکی از مشکلات NET Core. این است که تمام امکانات NET. را ندارد و از تمام کتابخانهها و افزونهها پشتیبانی نمیکند. در برخی از مواقع بهتر است که از NET Core. استفاده نکنیم، البته با گذر زمان و توسعهی بیشتر، احتمالا در آینده برای تمام موارد استفاده مناسب خواهد شد. ولی فعلا بهتر است در موارد زیر از آن استفاده نکنیم:
- در مواقع توسعهی نرمافزار بر پایهی «Windows Forms» و «WPF»
این دو هنوز پشتیبانی نمیشوند. هنوز هم برای ساخت یک اپلیکیشن NET. برای Mac باید از مونو استفاده کنید.
- در مواقع استفاده از NET Webforms
مایکروسافت برنامهای برای منتقل کردن آن به ASP.NET Core ندارد.
- در مواقعی که نیاز به ساخت یک «WCF Service» دارید
NET Core. در حال حاضر از WCF پشتیبانی نمیکند. به جای آن باید یک «REST API» به کمک «ASP.NET Core MVC» بسازید.
- در مواقعی که امکاناتی میخواهید که مختص NET Framework. است
برخی از امکانات NET Framework. هنوز در NET Core. وجود ندارد. برای مثال، «Entity Framework Core» با «Entity Framework v6» متفاوت است.
- در مواقعی که نیاز به استفاده از API های مختص ویندوز دارید
اگر نرمافزار شما نیاز دارد تا با رجیستری ویندوز، WMI یا سایر API های مخصوص ویندوز کار کند، امکان نوشتن آن با NET Core. را ندارید. NET Core. به گونهای طراحی شده است که محیط بستهتر و دور از سیستمعامل داشته باشد.
ویژگی های asp.net core نسبت به asp.net mvc
ASP.NET Core در مقایسه با MVC، سادهتر شده و برخلاف آن هیچ ارتباطی با پروژه های Web Form ندارد و از آنجا که بر پایه NET Core. بنا شده ایجاد پروژه های وب را در محیط های مختلف و سیستم عامل های گوناگون ساپورت می کند.
اضافه شدن برخی ویژگی های جدید و یا بهبود امکانات و ویژگی های قبلی مانند Tag Handler , Modular , dl, lo C و بازنویسی کلاس ها و کتابخانه های موجود در asp.net mvc در جهت بهبود آن ها از سایر مزیت های ASP .NET Core نسبت به mvc می باشد.
نصب .net core
از اینجا می توانید .Net Core را دانلود نموده و مراحل نصب آن در سرور را انجام دهید.
نظر شما در مورد NET Core. چیست؟