پلتفرم دات نت کور یک نسخهی جدیدتر از پلتفرم دات نت شرکت مایکروسافت است. اینکه چرا مایکروسافت، دات نت کور را بهعنوان جایگزینی برای دات نت عرضه کرده است، چیزی است که میخواهیم در این مقاله آن را بررسی کنیم. طبیعتاً شرکتی مثل مایکروسافت زمانی یک برنامه را ارائه میکند که از کاربردی بودن و قابلیتهای آن، اطمینان داشته باشد. درصورتیکه ایرادی در جزئیات برنامه وجود داشته باشد نیز در نسخهها و بروزرسانیهای بعدی، آنرا اصلاح میکند؛ اما چرا در مورد .Net framework این اتفاق نیفتاده و شرکت یک نسخ مجزا تحت عنوان .Net core ایجاد کرده است؟ قطعاً مایکروسافت انگیزهی مهمی برای انجام این کار داشته است. در ادامه دلایل این جایگزینی را بررسی میکنیم؛ اما در ابتدا باید به این دو سؤال پاسخ دهیم: فریمورک .Net core چیست؟ فریمورک .Net core چه ویژگیهایی دارد؟
معرفی دات نت کور
دات نت کور (.Net core) یکی از محصولات شرکت مایکروسافت، یکی از موفقترین شرکتها درزمین تولید نرمافزار، است. نسخ قبلی این پلتفرم یعنی دات نت فریمورک، یک ابزار با محدودیتهای جدی است. مهمترین ضعف فریمورک دات نت این بود که تنها در سیستمعامل ویندوز قابلیت اجرا داشت و روی سایر سیستمعاملها قابلاستفاده نبود. بنابراین، اغلب توسعهدهندگان بهعلت انحصاری بودن محصولات شرکت مایکروسافت، بهمرور نسبت به نرمافزارهای این شرکت دلسرد شدند. علاوه بر این امروزه، استفاده از برنامههایی که در تمامی دستگاهها قابلاجرا باشند، رایج شده است. یک برنامهی قوی باید بتواند تحت وب، روی دسکتاپ و روی تلفنهای همراه و تبلتها اجرا شود. به همین علت، نیاز به یک چارچوب واحد دارد. در واقع این موضوع، انگیزهی اصلی شرکت مایکروسافت برای معرفی ابزار .Net core بود.
در سال 2016 این شرکت ابزار برنامهنویسی چندپلتفرمی و منبع باز .Net core را به بازار عرضه کرد که روی تمامی پلتفرمهای رایج در دنیا، قابلاستفاده است. .Net core یک فریمورک سازگار با تمامی سیستمعاملها است و قابلیت ساخت برنامههای مختلف مناسب اندروید، IOS، ویندوز، لینوکس، وب، فضای ابری، IOT و هوش مصنوعی را دارد. از جمله ویژگیهای خوب این پلتفرم سرعت و سبکی آن بوده و فقط برای اجرای قسمت اصلی کد به .Net core نیاز دارید. در صورت نیاز به قابلیتهای اضافهتر، باید بستهی NuGet را نصب کنید. این ویژگی باعث شده که استفاده از حافظه در این پلتفرم کاهش پیدا کند و نگهداری نرمافزارهای ساخته شده، آسان شود.
تاریخچه .Net core
مایکروسافت در سال 1999 یک پلتفرم یکپارچه برای توسع برنامهها ارائه کرد که بعدها دات نت فریمورک نام گرفت. این پلتفرم علیرغم تمام ضعفهایی که داشت، کمکم به یک پلتفرم محبوب تبدیل شد. در سال 2002 نسخ .Net Compact آن ارائه شد که برای موبایلهای تحت ویندوز قابلاستفاده بود. بهمرور نسخههای جدیدتر این پلتفرم برای کاربردهای مختلف ارائه شدند، مهمترین آنها، Asp.Net است که برای برنامههای تحت وب استفاده میشود.
با گذشت زمان، زبانهای برنامهنویسی و سیستمعاملهای جدیدتری ظهور کردند که با هیچکدام از پلتفرمهای دات نت سازگاری نداشتند. بهدنبال این ماجرا، چارچوب Net. مایکروسافت با چالش ایجاد یک بستر نرمافزاری واحد برای همهی روشهای توسعه و تمامی محیطها روبرو شد. اینجا بود که مایکروسافت به فکر ارائه یک پلتفرم جدید افتاد. .Net core راهکار مایکروسافت برای حل این چالش بود که در سال 2016 ارائه شد. .Net core نسخه جدید از دات نت فریمورک است که در تمامی سیستمعاملها قابلیت استفاده دارد. برنامههای تولیدشده در .Net core به استفاده در ویندوز محدود نمیشوند و میتوان گفت این پلتفرم مُهر پایانی بر انحصارطلبیهای شرکت مایکروسافت بود.
کاربردهای دات نت کور
دات نت کور یک پلتفرم منبع باز است که در بسیاری از سیستمعاملها اجراشده و قابلیت ساخت انواع برنامهها را دارد. از جمله برنامههایی که میتوان در این پلتفرم طراحی کرد عبارتنداز:
- برنامههای تحت وب
- برنامههای دسکتاپ
- برنامههای فضای ابری
- برنامههای اندروید
- برنامههای IOS
- برنامههای هوش مصنوعی (AI)
- برنامههای اینترنت اشیا (IOT).
کاربرد دات نت کور در طراحی سایت
برای استفاده از دات نت کور در طراحی سایت حرفه ای شما نیاز به ASP.Net core خواهید داشت. ASP.Net core مجموعهای از کتابخانهها است که چارچوبی را برای ساخت برنامههای تحت وب، تشکیل میدهد. ASP.Net core به شما امکان میدهد تا برنامههای وب با کارایی بالا و بهصورت چند پلتفرمی ایجاد کنید. در واقع میتوان گفت ASP.Net core نسخهی پیشرفتهتری ازASP.Net است که بهصورت ماژولار و سبکتر از آن، ارائهشده است. ماژولار بودن ASP.Net core ، باعث انعطافپذیری برنامههای توسعه دادهشده با این فریمورک میشود.
اما آیا تفاوت این دو فریمورک فقط در همین مورد است؟ خیر؛ همانطور که در قسمت قبلی گفتیم، .Net core امکان اجرای برنامههای تحت وب در محیط ویندوز و مک و لینوکس را فراهم میکند درصورتیکه ASP.Net برپایهی فریمورک .Net است و تنها در ویندوز قابلیت اجرا دارد. مزیت مهم دیگر در ASP.Net core، عملکرد بهتر و سرعت اجرای بالاتر آن است.
آیا Dot Net core رایگان است؟
همانطور که قبلاً اشاره کردیم دات نت کور یک نرمافزار منبع باز است. اغلب نرمافزارهای منبع باز بهصورت رایگان ارائه میشوند. چرا میگوییم اغلب؟ چون موارد استثنا نیز وجود دارد؛ اما خوشبختانه در مورد .Net core ما هیچ استثنایی نداریم و این نرمافزار یک برنامهی منبع باز رایگان است.
بخشهای مختلف دات نت کور
پلتفرم دات نت کور شامل بخشهای اصلی زیر است:
- NET Runtime. : این سیستم بهنوعی یک ماشین مجازی است که برنامهی شما را میزبانی و اجرا کرده و کلیهی تعاملات با سیستمعامل پایه را مدیریت میکند.
- کتابخانههای اساسی: مجموعهای از کتابخانههای فریمورک هستند که انواع دادههای اولیه و ابزارهای اساسی که به آنها نیاز دارید را ارائه میدهند.
- SDK و کامپایلر: مجموعهای از ابزارهای SDK و کامپایلرهای زبان که اجرای برنامه را امکانپذیر میکنند، این مجموعه در .Net core SDK موجود است.
- هاست برنامهی 'dotnet': این هاست را میتوان پایهی راهاندازی برنامههای هستهی .Net در نظر گرفت. هاست برنامهی دات نت، runtime را انتخاب میکند. همچنین پیادهسازی سیاستهای اجرای برنامه را نیز بر عهده دارد. از طرفی اجرای ابزارهای SDK نیز توسط هاست انجام میشود.
ویژگیهای مهم دات نت کور
از جمله مهمترین ویژگیهای دات نت کور میتوان به موارد زیر اشاره کرد:
- منبع باز بودن: .Net core یکی از پروژههای .Net در گیت هاب است. منبع باز بودن این پلتفرم باعث به وجود آمدن روند توسعهی شفافتر و یک جامعهی فعال و درگیر درزمینهی ارتقای آن شده است.
- چند پلتفرمی بودن: همانطور که گفته شد این ویژگی مهمترین مزیت .Net core نسبت به .Net محسوب میشود. برنامههای .Net core در سیستمعاملهای ویندوز، لینوکس و مک قابلیت اجرا دارند.
- انعطافپذیر بودن: برنامههای ساختهشده توسط این پلتفرم، قابلیت اجرا بر روی برنامههایی غیر از .Net core را نیز دارند.
- ابزار خط فرمان: با کمک واسط CLI، شما امکان استفاده از خط فرمان یا همان command line را در این برنامه دارید.
- تطبیقپذیر بودن: این برنامه به علت استفاده از کتابخانههای .NET قابلیت تطبیق با فریمورکهای .Net، Xamarin و Mono را دارد.
- ماژولار بودن: مهمترین ویژگی این ابزار ماژولار بودن آن است. با کمک ماژولها شما میتوانید قطعههای برنامهی خود را در مقیاس کوچکتر ذخیره کرده و در برنامههای خود استفاده کنید. قابلیت ماژولار باعث امنیت بیشتر ، بهبود عملکرد و کاهش هزینههای توسعه میشود.
امنیت در دات نت کور
آیا بستر دات نت کور ایمن است؟ پاسخ مثبت است. .Net core نیز دقیقا مانند هر چارچوب توسعهی دیگری، ایمن است. اگرچه این پلتفرم به علت مکانیزمهایی مثل ماژولار بودن، استفاده از https و همچنین مکانیزمهای حفاظتی در برابر حملاتی نظیر xss و sql injection، سطح امنیت بالاتری نسبت به چارچوبهای قبلی دارد، بازهم بهترین روشهای توسعه و نگهداری برای ایجاد کدها و بهروزرسانیها در آن بهکار گرفته شده است.
مزایای دات نت کور
مزایای دات نت کور نسبت به ورژن قبلی خود بیشتر است. از جمله مهمترین مزیتهای آن پشتیبانی از تعداد برنامههای گسترده است. همانطور که قبلاً اشاره کردیم این پلتفرم قابلیت ساخت برنامههای مختلف از جمله برنامههای موبایل، دسکتاپ، تحت وب، ابری، اینترنت اشیا، بازی و... را دارد. مزیت دیگر این زبان، پشتیبانی از چندین زبان برنامهنویسی C#، F# و ویژوال بیسیک است. معماری ماژولار نیز یکی دیگر از مزایای .Net core محسوب میشود که باعث سبکتر شدن برنامه شده است. سایر ویژگیها نظیر منبع باز و چندپلتفرمی بودن این ابزار نیز از ویژگیهای بسیار مفید آن محسوب میشود.
معایب دات نت کور
یکی از بزرگترین مشکلات .Net core این است که این برنامه هنوز بهطور کامل بالغ نشده است و خلأهای زیادی دارد. اگرچه گذشت زمان این مشکل را حل خواهد کرد؛ اما اکنون در برخی موارد ضعفهایی وجود دارد. بهعنوان مثال برخی از API های .Net core هنوز تست نشده و کاربرد ندارند، که این مسئله در مقایسه با تعداد زیاد APIهای فریمورک.Net یک ضعف بزرگ برای .Net core محسوب میشود. همچنین برخی ویژگیها مانند Code access Security هنوز در .Net core ارائه نشده است که میتواند عامل برتری دات نت نسبت به این پلتفرم باشد.
چه زمانی بهتر است از دات نت کور استفاده کنیم؟
بهطورکلی از دات نت کور زمانی استفاده میکنیم که بخواهیم برنامهی ما در چند پلتفرم اجرا شود. اغلب از این فریمورک برای طراحی برنامههای تحت وب، ابری یا برنامههای سازمانی بزرگ که حاوی چندین میکرو سرویس هستند، استفاده میشود؛ اما بهتر است زمانی از.Net core استفاده کنید که قصد دارید یک برنامهی جدید با قابلیتهای بهروز مثل برنامههای ابری، طراحی کنید. حتماً از صحبتهای قبلی به این نتیجه رسیدهاید که .Net core پلتفرم آینده است و البته تا رسیدن به مرحلهی بلوغ راه طولانی در پیش دارد. زمانی که قصد دارید برای آینده برنامهریزی کنید، باید ابزار متناسب را انتخاب کنید؛ اما پیش از استفاده مطمئن شوید که کتابخانههای این پلتفرم تمام آنچه که شما نیاز دارید را تأمین میکند.
چگونه از Dot Net core استفاده کنیم؟
برای شروع کار با دات نت کور میتوانید از برنامهی ویژوال استودیو نسخه 2015 بهبعد استفاده کنید. زمانی که وارد محیط این نرمافزار شوید زبان برنامهنویسی .Net core در قسمت زبانهای برنامهنویسی C# و ویژوال بیسیک وجود دارد که میتوانید آن را انتخاب کنید.
تفاوت دات نت کور با دات نت
تفاوتهای زیادی میان این دو پلتفرم وجود دارد. از جمله تفاوتهای میان .Net و .Net core میتوان به این موارد اشاره کرد:
- .Net برای توسعهی برنامههای وب و ویندوز استفاده میشود؛ درحالیکه، .Net core برای توسعهی برنامههای ویندوز و لینوکس و مک و حتی اندروید و IOS کاربرد دارد.
- در .Net از Windows Forms ،UWP و WPFبرای ساخت برنامههای ویندوزی و از ASP.Net MVC برای ساخت برنامههای تحت وب استفاده میشود؛ اما .Net core تنها از UWP برای برنامههای تحت ویندوز و موبایل و از asp.net Core برای ساخت برنامههای تحت وب استفاده میکند.
- .Net حاوی کتابخانهی گستردهای از API هاست که کاربردهای مختلفی را شامل میشوند؛ حالآنکه، .Net core قابلیت استفاده از تنها بخشی از این API ها را دارد.
تفاوت دات نت کور با Mono
مونو در سال 2004 برمبنای فریمورک دات نت مایکروسافت ارائه شد. هر دو ابزار دات نت کور و مونو، منبع باز و بهصورت چند پلتفرمی هستند؛ اما تفاوتهایی باهم دارند. یکی از تفاوتهای اصلی دو ابزار نامبرده، این است که در .Net core شما تنها قادر به ساخت برنامههای کنسول و تحت وب هستید. در مقابل در مونو شما قادر به ساخت هر برنامهای هستید که توسط دات نت پشتیبانی میشود؛ مثلاً، برنامههای دسکتاپ با قابلیتGUI. حال حتماً از خود میپرسید که اگر مونو تمامی برنامههای قابل ساخت در .Net core را پشتیبانی میکند، چرا مایکروسافت برنامه .Net core را ارائه کرده است. پاسخ این است که هرکدام از این دو برنامه در جایگاه خود مناسب هستند. در واقع یک سری سناریوها و ویژگیهای متمایز در .Net core وجود دارد که باعث محبوبیت این پلتفرم میان توسعهدهندگان شده است. علاوه بر این تفاوتها، مونو بیشتر برای ساخت برنامههای تحت وب مناسب است؛ اما تمرکز .Net core بیشتر بر توسعهی برنامههای تحت وب و فضای ابری است.
تفاوت .Net core با ASP.Net core
ASP.Net Core نسخهی جدید چارچوب وب ASP.Net است که بر روی پلتفرم .Net core اجرا میشود. این برنامه به لحاظ ویژگیهای ساختاری دقیقا شبیه .Net core بوده و یک ابزار رایگان، منبع باز و چند پلتفرمی است؛ اما کاربردهای آن محدود به برنامههای تحت وب میشود. تفاوت دیگر این است که .Net core حاوی یک runtime برای اجرای برنامههای ساختهشده در داخل .Net core است؛ درحالیکه، ASP.Net core یک چارچوب وب برای ساخت برنامههای وب، IOT و برنامههای بکاند موبایل در داخل پلتفرم .Net core یا .Net Framework است. بهطور کلی میتوان گفت ASP.Net Core قسمتی از قابلیتهای موجود در .Net core را شامل میشود.