بعد از asp.net 4 خوب بود که ASP.net 5 معرفی شود. ولی asp.net 5 معرفی نشد و با تغییرات داخلی و تکمیل آن با نام ASP.net Core1.0 شناخته شد. و به همین ترتیب نسخه های جدیدتر .NET Core 5.0 و Entity Framework 7 در نسخه های نهایی با نام .NET Core 1.0 و Entity Framework Core 1.0 شناخته شدند.
NET CORE. یا دات نت کور چیست؟
NET Core. پلتفرمی چندسکویی و متن باز است که برای ایجاد نرمافزارهای تحت وب مدرن با استفاده از زبان برنامهنویسی NET. ساخته شده است. این پلتفرم ماژولار توسط شرکت Microsoft و انجمن NET. بر بستر GitHub ایجاد شده است.
به عبارت دیگر NET Core. بازسازی کامل فریمورک محبوب NET. با پشتیبانی از پروژههای NET. مایکروسافت است؛ همانگونه که بسیاری از تکنولوژیهای دیگر بر پایهی فریمورک NET. ساخته شدهاند. در ایجاد NET Core. بر سه اصل متن باز بودن، چند سکویی و آسانسازی کد تمرکز شده است و این سه اصل با هم در NET Core. گرد هم آمدهاند. جالب آنکه NET Core. در حالی ساخته شده که تمامی خصوصیات برتر و مهم NET. از جمله امنیت بالا در آن نیز حفظ شده است.
به طور کلی آنچه فریمورکهای NET. را محبوب کرده، قابلیت ایجاد Class Library و در نتیجه دادن آزادی به توسعهدهندگان برای ایجاد اپلیکیشن با هر زبانی (مانند VB، C++، C# و …) است. NET Core. نیز از این قاعده مستثنی نبوده و به راحتی امکان تلفیق و استفاده در کنار زبانهای برنامهنویسی دیگر مانند #C را دارد.
NET CORE. پلت فرم اوپن سورس و سریع میباشد که برای همه دیوایس ها از جمله موبایل، وب ، اپلیکیشن های ویندوزی ، لینوکس و MAC میباشد که شما قادر هستید برنامه های خود را با این فریم ورک و پلتفرم جدید به راحتی قابل حمل کرده و در تمامی دیوایس ها پیاده کنید.
ویژگیهای NET CORE. چیست؟
- اوپن سورس: اولین ویژگی مثبتی که همه برنامه نویسان را مجددا به سمت مایکروسافت کشانده است اوپن سورس بودن آن میباشد که شما میتوانید این پلتفرم را بسته به نیاز خود شخصی سازی کنید.
- NET CORE. و برنامه های اجرا شده در این پلتفرم بسیار سبک و کم حجم میباشند.
- Cross Platform میباشد، شما با NET CORE. به معنای کامل میتوانید بصورت یکپارچه در تمامی سیستم عامل ها و دیوایس ها پروژه خود را پیاده کنید.
- توسعه راحت و سریع NET CORE. باعث شده است پروژه ها و استارت آپ های زیاد به جهت راحتی در تیم برنامه نویسی این پلتفرم را انتخاب کنند.
- پشتیبانی از Github و نیوگت برای برنامه های اوپن سورس
- هزینه های پایینتر، از دیگر مشکلات برنامه های ویندوزی هزینه نگهداری و منابع مورد نیاز آنها بود. با کاهش محسوس حجم برنامه ها و منابع مورد نیاز میتواند یکی دیگر از بهترین مزیت های NET CORE. را هزینه نگهداری پایین آن درنظر گرفت.
- پشتیبانی از خط فرمان بسیار قدرتمند برای نصب بسته های پیش نیاز
چه موقع از NET Core. استفاده کنیم؟
NET Core. یک فریمورک کراس-پلتفرم و متنباز (Open-source) است که میتواند برای ساخت اپلیکیشن برای هر پلتفرمی مورد استفاده قرار گیرد. اغلب برای ساخت نرمافزارهای ابری (Cloud Applications) یا تبدیل اپلیکیشنهای تجاری بزرگ به مایکروسرویسها (Microservices) از این فریمورک استفاده میکنند.
1. در مواقعی که نیاز به برنامهنویسی کراس-پلتفرم دارید :از NET Core. در مواقعی استفاده کنید که میخواهید نرمافزارتان را در پلتفرمهای مختلف، از جمله ویندوز، لینوکس و Mac اجرا کنید. این سیستمعاملها در NET Core. پشتیبانی میشوند و لیست سیستمعاملهای پشتیبانی شده به طور مداوم در حال گسترش است.
ویژوال استودیو را میتوانید علاوه بر ویندوز، به طور محدود در Mac نیز اجرا کنید. «ویژوال استودیو کد» (Visual Studio Code) را میتوانید در ویندوز، لینوکس و Mac اجرا کنید. امکان استفاده از «Command line» در تمامی پلتفرمهای پشتیبانی شده موجود است.
2. در مواقعی که از مایکروسرویسها استفاده میکنید: مایکروسرویسها که یک نوع ساختار برپایهی سرویس را ارائه میدهند، نرمافزارهایی هستند که از سرویسهای کوچک و ماژولار تشکیل شدهاند. هر سرویس میتواند پروسهی مختص به خودش را اجرا کند و در نرمافزارهای مختلف به صورت مستقل اعمال شود. NET Core. اجازهی مخلوط کردن چند تکنولوژی را میدهد، سبک است و میتواند برای هر مایکروسرویس حجم سبکتری داشته باشد. با اضافه شدن مایکروسرویسهای جدید، سایز آن قابل تغییر است.
3. هنگامی که در نرمافزار خود از مخزنهای داکر (Docker Containers) استفاده میکنید: مخزنهای داکر و مایکروسرویسها اغلب در کنار هم استفاده میشوند. به دلیل سبکی و ماژولار بودن این مخزنها، NET Core. به خوبی با آنها سازگار است. نرمافزارهای تحت سرور میتوانند به کمک مخزنهای داکر به صورت کراس-پلتفرم عرضه شوند. البته NET Framework. هم میتواند همراه داکر استفاده شود، ولی حجم نهایی بیشتر خواهد بود.
4. در مواقعی که نیاز به پردازش قوی و سیستمهای انعطافپذیر دارید: براساس پیشنهاد مایکروسافت، بهتر است که NET Core. را به همراه ASP.NET Core استفاده کنید تا بهترین عملکرد و اندازه را بگیرید. این امر در مواقعی مهم میشود که از صدها مایکروسرویس استفاده کنید. با اینکار، تعداد سرور و ماشین مجازی مورد نیاز کاهش مییابد. این کارایی و انعطافپذیری میتواند تجربهی کاربری بهتری را ارائه دهد و در کنار آن، در هزینهها صرفهجویی کند.
5. در مواقعی که از چندین نسخهی .NET همزمان استفاده میکنید : برای نصب نرمافزارهایی که به نسخههای مختلفی از NET Framework. نیاز دارند، توسعهدهندگان باید از NET Core. استفاده کنند. با این کار میتوان چندین سرویس را که به NET Framework. های متفاوت نیاز دارند، برروی یک سرور اجرا کرد.
6. در مواقعی که میخواهید از رابط «Command line» استفاده کنید: برخی از توسعهدهندگان ترجیح میدهند در ویراستارهای سبکتر و برپایهی متن کار کنند. NET Core. یک «CLI» برای همهی پلتفرمهایی که پشتیبانی میکند، ارائه دادهاست. نصب آن بسیار ساده و سبک است، و همیشه هم فرصت جابهجایی به محیطهای توسعه نظیر ویژوال استودیو را دارید.
چه موقع از NET Core. استفاده نکنیم؟
یکی از مشکلات NET Core. این است که تمام امکانات NET. را ندارد و از تمام کتابخانهها و افزونهها پشتیبانی نمیکند. در برخی از مواقع بهتر است که از NET Core. استفاده نکنیم، البته با گذر زمان و توسعهی بیشتر، احتمالا در آینده برای تمام موارد استفاده مناسب خواهد شد. ولی فعلا بهتر است در موارد زیر از آن استفاده نکنیم:
1. در مواقع توسعهی نرمافزار بر پایهی«Windows Forms» و «WPF» : این دو هنوز پشتیبانی نمیشوند. هنوز هم برای ساخت یک اپلیکیشن NET. برای Mac باید از مونو استفاده کنید.
2. در مواقع استفاده از ASP.NET Webforms :مایکروسافت برنامهای برای منتقل کردن آن به ASP.NET Core ندارد.
3. در مواقعی که نیاز به ساخت یک «WCF Service» دارید : NET Core. در حال حاضر از WCF پشتیبانی نمیکند. به جای آن باید یک «REST API» به کمک «ASP.NET Core MVC» بسازید.
4. در مواقعی که امکاناتی میخواهید که مختص NET Framework. است: برخی از امکانات NET Framework. هنوز در NET Core. وجود ندارد. برای مثال، «Entity Framework Core» با «Entity Framework v6» متفاوت است.
5. در مواقعی که نیاز به استفاده از API های مختص ویندوز دارید : اگر نرمافزار شما نیاز دارد تا با رجیستری ویندوز، WMI یا سایر API های مخصوص ویندوز کار کند، امکان نوشتن آن با NET Core. را ندارید. NET Core. به گونهای طراحی شده است که محیط بستهتر و دور از سیستمعامل داشته باشد.
NET CORE. جایگزین دات نت فریم ورک میباشد؟
بسیاری از متخصصین در ابتدای ارائه دات نت کور بر این باور بودند که مایکروسافت در حال آماده سازی جهت کوچ به سمت اوپن سورس میباشد و به احتمال زیاد آینده دات نت فریم ورک رو به اتمام میباشد و بایستی جای خود را به دات نت کور بدهد. ولی طبق بررسی های انجام شده قرار نیست چنین اتفاقی بیفتد و فعلا تا اطلاع ثانوی مایکروسافت همچنان قصد ارائه آپدیت و امکانات جدید به دات نت فریم ورک را دارد.
در حال حاضر شما توسط دات نت کور می توانید برنامه های تحت وب، کتابخانه ای و کنسول را برنامه نویسی کنید. البته همانطور که میدانید در برنامه های Asp.net خیلی وقت هست که مایکروسافت از وب فرم پشتیبانی نمیکند و در صورتی که قصد استفاده از Asp.net روی پلتفرم .NET CORE میبایست حتما روی MVC پروژه های خود را پیاده سازی کنید.
کتابخانه هایی که برای دات نت فریم ورک و ابزارهایی که برای آن تهیه شده است به قدری زیاد هست که برنامه نویسان .Net احتمالا با شنیدن این موضوع که هنوز دات نت کور ابزارهای بسیار کمتری نسبت به .Net دارد نا امید خواهند شد. ولی نبایستی فراموش کرد که پلتفرم جدید مایکروسافت بسیار جدید میباشد و نیاز به زمان زیادی دارد تا همانند .Net از لحاظ کلاس ها، ابزارها و … تکمیل گردد.
بعد از ارائه موفق .NET CORE مایکروسافت اعلام کرده است که Asp.NET 5 و همچنین MVC 5 قابلیت اجرا پیاده سازی بر روی دات نت کور را دارا میباشند. همچنین هم اکنون در صورتی که شما برنامه خود را با .NET CORE و ASP.NET 5 پیاده سازی کرده اید می توانید برنامه های خود را علاوه بر ویندوز با Mono Runtime روی لینوکس و مک اجرا کنید.
در انتها پیشنهاد میگردد در صورتی که برنامه نویس .Net هستید شک نکنید که بایستی به دات نت کور کوچ کنید و در اولین فرصت شروع به یادگیری آن کنید. همچنین در صورتی که میخواهید برنامه نویسی را شروع کنید با هم پیشنهاد می گردد در کنار سایر زبانها و پلتفرم ها، دات نت کور را نیز در لیست انتخاب پلتفرم یادگیری خود نیز قرار دهید.