آنچه در این صفحه می خوانید:
- دات نت کور (NET Core.) چیست؟
- ویژگی های دات نت کور (NET Core.)
- معماری دات نت کور (NET Core.)
- تفاوت بین دات نت کور (NET Core.) و دانت نت فریمورک (NET Framework.) چیست؟
دات نت کور (NET Core.) چیست؟
NET Core. یک پلتفرم توسعه اوپن سورس و عمومی است که توسط مایکروسافت و جامعه دات نت در GitHub نگهداری می شود. همچنین دارای ویژگی کراس پلتفرم است که از از ویندوز، MacOS و Linux پشتیبانی می کند و می تواند برای ساخت برنامه های دستگاه ها، cloud و IoT مورد استفاده قرار گیرد و جانشین NET Framework. است. این پروژه در ابتدا توسط مایکروسافت تهیه و تحت مجوز MIT منتشر می شود.
NET Core. در سال 2016 منتشر شد. برخلاف نسخه قدیمی، مهندسین اکنون می توانند از این محصول در لینوکس و OS X استفاده کنند و برنامه هایی را ایجاد کنند که لزوماً به خانواده ویندوز مربوط نشوند. این سیستم جدید به دنبال تسخیر فضای ابر است زیرا برخی از ارائه دهندگان مانند Digital Ocean مبتنی بر لینوکس هستند. نه تنها NET Core. کراس پلتفرم است، بلکه نسخه های مختلف آن را می توان به صورت جانبی در یک دستگاه نصب کرد NET Core. شامل ASP.NET Core و Universal Windows Platform است.
ویژگی های دات نت کور (NET Core.)
نکته برجسته NET Core پشتیبانی از برنامه های دسکتاپ ویندوز بود که متمرکز بر فرم های ویندوز، فریمورک WPF و UWP و XAML بود. در لحظه اعلام، استاندارد NET. به عنوان پایه مشترک برنامه های Windows Desktop و NET Core نشان داده شد. همچنین، دات نت کور به عنوان بخشی از ترکیبات حاوی ASP.NET Core ،Entity Framework Core و ML.NET در نظر گرفته شده است. پشتیبانی از توسعه و انتقال برنامه های دسکتاپ ویندوز به NET Core. توسط "Windows Desktop Packs"، اجزای دیگری برای سیستم عامل های سازگار با ویندوز ارائه می شود.
مقاله هانتر همزمان با اعلامیه NET 5. با عنوان ".NET Core vNext" منتشر شد، نسخه بعدی دات نت کور در این اطلاعیه، مایکروسافت دات نت 5 را به عنوان یک بستر متحد و یکپارچه برای برنامه های دسکتاپ، وب، ابر، موبایل، بازی، IoT و هوش مصنوعی نمایش می دهد. همچنین این ادغام صریح را با کلیه نسخه های ویژوال استودیو و رابط خط فرمان (CLI) نشان می دهد. هدف از نسخه جدید NET. تولید یک ران تایم و فریمورک NET. واحد، کراس پلتفرم، ادغام بهترین ویژگی های NET Core ،.NET Framework ،Xamarin و Mono (اجرای اصلی کراس پلتفرم دات نت) دات نت 5 می باشد و همچنین قابلیت همکاری جاوا را در همه سیستم عامل ها و قابلیت همکاری با Objective-C و Swift در چندین سیستم عامل دارد.
NET Core. دارای مشخصات زیر است:
- Cross-platform: در سیستم عامل های ویندوز، macOS و Linux کار می کند.
- سازگار با معماری: کد شما را با همان رفتار در معماری های مختلف، از جمله x64 ،x86 و ARM اجرا می کند.
- ابزارهای خط فرمان: شامل ابزارهای خط فرمان آسان برای استفاده است که می تواند برای توسعه محلی و در سناریوهای ادغام مداوم مورد استفاده قرار گیرد.
- استقرار انعطاف پذیر: می تواند در برنامه شما باشد یا به صورت جانبی نصب شود (نصب های گسترده کاربر یا سیستم) قابل استفاده با کانتینر داکر است.
- سازگار: NET Core با NET Framework سازگار است با Xamarin و Mono، از طریق استاندارد NET.
- اوپن سورس: سکوی NET Core. با استفاده از مجوزهای MIT و Apache 2 اوپن سورس است. NET Core. یک پروژه بنیاد دات نت است.
- پشتیبانی شده توسط مایکروسافت: NET Core. توسط پشتیبانی Microsoft NET می شود.
معماری دات نت کور (NET Core.)
NET Core. از چهار سناریوی کراس پلتفرم پشتیبانی می کند: ASP.NET برنامه های اصلی Core، برنامه های خط فرمان، کتابخانه ها و برنامه های Universal Windows Platform. تا قبل از NET Core 3.0، استفاده از فرم های ویندوز یا WPF که ارائه GUI استاندارد برای نرم افزار دسکتاپ در ویندوز می باشد، پیاده سازی نشده است، با این وجود NET Core 3. از فن آوری های دسکتاپ WinForms ،WPF و UWP پشتیبانی می کند. NET Core. از بسته های NuGet پشتیبانی می کند. بر خلاف فریمورک دات نت، که با استفاده از Windows Update سرویس دهی می شود، دات نت کور برای دریافت به روزرسانی به مدیر بسته خود متکی است.
مشابه چگونگی پیاده سازی NET Framework. زیرساخت زبان مشترک (CLI) از طریق CLR و کتابخانه فریمورک کلاس (FCL)، دو مؤلفه اصلی دات نت کور به ترتیب CoreCLR و CoreFX است. به عنوان یک اجرای CLI از سیستم اجرای مجازی (VES)، CoreCLR یک ماشین کامل اجرا و مجازی برای اجرای مدیریت برنامه های دات نت است و شامل یک کامپایلر هم زمان به نام RyuJIT است. NET Core. همچنین شامل CoreRT، ران تایم دات نت بصورت نیتیو بهینه شده است تا در دودویی های نیتیو کامپایل شده AOT ادغام شود.
به عنوان یک اجرای CLI از کتابخانه های استاندارد بنیادی، CoreFX زیر مجموعه ای از API های NET Framework را به اشتراک می گذارد، با این حال، آن هم با API های خاص خود که بخشی از فریمورک دات نت نیست نوعی از کتابخانه NET Core. برای UWP استفاده می شود. رابط خط فرمان NET Core. یک نقطه ورود برای اجرای سیستم عامل ها را ارائه می دهد و خدمات توسعه دهنده ای مانند کامپایل و مدیریت بسته را ارائه می دهد.
تفاوت بین دات نت کور (NET Core.) و دانت نت فریمورک (NET Framework.) چیست؟
در سال 2002، مایکروسافت NET Framework 1.0. را به عنوان یک فریمورک نرم افزاری اختصاصی برای سیستم عامل ویندوز منتشر کرد. این برنامه فریمورک NET. را مرتباً به روز می کند تا روندهای نوظهور در توسعه نرم افزار را برآورده سازد. اما مایکروسافت اخیراً برای ساده سازی توسعه، آزمایش و استقرار برنامه های کاربردی نرم افزار مدرن، معماری اصلی فریمورک دات نت را دوباره طراحی کرده است. این شرکت NET Core 1.0. را در ماه ژوئن به همراه ASP.NET Core 1.0 و Entity Framework منتشر کرد.
برخلاف دات نت فریمورک، NET Core. هم اوپن سورس و هم کراس پلتفرم است. علاوه بر این، چندین ویژگی جدید برای ساده سازی توسعه و آزمایش برنامه های دسکتاپ، وب، ابر و تلفن همراه ارائه شده است. همچنین، به توسعه دهندگان این امکان را می دهد که برنامه ها را از چند طریق مستقر کنند. اما NET Core. از کلیه ویژگی های فریمورک NET. پشتیبانی نمی کند. از این رو، برای توسعه دهندگان ضروری است که قبل از جابجایی به جدیدترین نسخه فریمورک نرم افزار محبوب، تفاوت های اصلی بین NET Framework. و NET Core. را درک کنند.
- اوپن سورس: دات نت فریمورک به عنوان یک فریمورک نرم افزار مجاز و اختصاصی منتشر شد. مایکروسافت متعاقباً مؤلفه های خاصی از NET Framework. را اوپن سورس ساخت. اما این شرکت NET Core. را به عنوان یک فریمورک نرم افزار اوپن سورس منتشر کرده است. از این رو، هر دو توسعه دهندگان سازمانی و انفرادی می توانند بدون پرداخت هزینه مجوز، برنامه هایی را با NET Core ایجاد کنند.
- Cross-Platform: دات نت فریمورک به توسعه دهندگان این امکان را می دهد تا برنامه های خود را برای یک سیستم عامل واحد ویندوز ایجاد کنند. اما NET Core. کراس پلتفرم است و از سه سیستم عامل مجزا ویندوز، OS X و Linux پشتیبانی می کند. سازگاری، ایجاد برنامه های کراس پلتفرم را برای توسعه دهندگان آسان تر می کند و برنامه های موجود خود را از یک سکوی دیگر به پورت منتقل می کند.
- نصب: فریمورک دات نت باید به عنوان یک بسته واحد و محیط زمان اجرا برای ویندوز نصب شود. اما NET Core. کراس پلتفرم است و نیاز به بسته بندی و نصب مستقل از سیستم عامل اصلی دارد. توسعه دهندگان موظفند بسته های Nuget موجود در NET Core را گردآوری کنند. همچنین، آنها می توانند بسته های Nuget را مستقیماً درون برنامه وارد کرده یا آنها را در یک پوشه در داخل برنامه قرار دهند.
- مجموعه مدولار کتابخانه ها: هر دو NET Framework. و NET Core. به توسعه دهندگان امکان می دهد از کتابخانه های کلاس قوی استفاده کنند. اما NET Core. از یک زبان رن تایم مشترک با نام CoreCLR استفاده می کند و مجموعه ای از کتابخانه ها به نام CoreFX را نشان می دهد. از این رو، توسعه دهندگان این گزینه را دارند که فقط کتابخانه های مورد نیاز هر برنامه را انتخاب کرده و از آنها استفاده کنند و با حذف کتابخانه های غیر ضروری، عملکرد برنامه را ارتقا دهند.
- مدل های کاربردی: NET Framework. و NET Core. در دسته مدلهای کاربردی با یکدیگر تفاوت دارند. مدل کاربردی فریمورک .NET شامل فرم های ویندوز، ASP.NET و بنیاد ارائه ویندوز (WPF) است. از طرف دیگر، مدل برنامه های NET Core شامل برنامه های ASP.NET Core و Windows Universal است.
- كتابخانه استاندارد: به عنوان مشخصات رسمي API هاي NET، كتابخانه استاندارد دات نت نيازهاي مختلف زمان اجرا را برآورده مي كند و يكنواختي را در اكوسيستم دات نت حفظ مي كند. هر نسخه از NET Framework. از یک نسخه خاص از کتابخانه استاندارد NET استفاده می کند. به عنوان مثال، NET Framework 4.6 كتابخانه استاندارد NET 1.3 را اجرا كرد، در حالی كه NET Framework 4.6.2 كتابخانه استاندارد NET 1.5 را اجرا كرد، اما NET Core نسخه 1.6 كتابخانه استاندارد دات نت را پیاده سازی می كند.
- ASP.NET: در حالی که از برنامه های وب با NET Framework. استفاده می کنید، توسعه دهندگان این گزینه را دارند که از یک فریمورک برنامه کاربردی وب قدرتمند مانند ASP.NET استفاده کنند. اما NET Core. با نسخه جدید طراحی شده ASP.NET همراه است. توسعه دهندگان هم اکنون می توانند از ASP.NET Core برای ساختن برنامه های وب و ابر استفاده کنند. علاوه بر اوپن سورس بودن، ASP.NET Core در سه سیستم عامل مجزا نیز وجود دارد، Windows ،OS X و Linux
- گزینه های استقرار: در حالی که از فریمورک NET. استفاده می کنید، توسعه دهندگان باید برنامه های وب را فقط در سرور اطلاعات اینترنت مستقر کنند. اما برنامه های وب توسعه یافته با ASP.NET Core از چند طریق قابل میزبانی است. توسعه دهندگان می توانند برنامه های اصلی ASP.NET Core را مستقیماً در ابر مستقر کرده و یا با ایجاد فرایند میزبانی خود، خودشان را میزبان برنامه کنند.
- Cloud-Ready Configuration: برخلاف NET Framework.، دات نت کور با ویژگی هایی طراحی شده است تا توسعه و استقرار یک برنامه مبتنی بر ابر را ساده کند. توسعه دهندگان می توانند از ASP.NET برای ساخت انواع برنامه های مبتنی بر ابر به سرعت استفاده کنند. همچنین، آنها می توانند با بهره گیری از تنظیمات ابر آماده شده در ASP.NET Core، برنامه ها را مستقیماً روی ابر منتشر کنند.
- توسعه برنامه تلفن همراه: فریمورک دات نت هیچ فریمورک یا ابزاری قوی برای ساده سازی توسعه برنامه تلفن همراه ندارد. اما NET Core. با زامارین از طریق کتابخانه استاندارد NET سازگار است. از این رو، توسعه دهندگان می توانند از Xamarin برای نوشتن برنامه های تلفن همراه متقابل در سی شارپ با یک پایه کد مشترک و همان مجموعه API استفاده کنند. آنها می توانند از ابزارهای ارائه شده توسط Xamarin برای شخصی سازی برنامه تلفن همراه برای سیستم عامل های تلفن همراه جداگانه مانند iOS ،Android و Windows Phone استفاده کنند.
- میکروسرویس: برخلاف فریمورک دات نت، NET Core. ساخت توسعه سیستم های میکروسرویس را به سرعت در اختیار توسعه دهندگان آسان تر می کند. از آنجا که این سیستم ها شامل تعدادی سرویس میکروسرویس مستقل و پویا هستند، توسعه دهندگان باید روی میکروسرویس های فردی تمرکز کنند. NET Core. برنامه نویسان را قادر می سازد تا با استفاده از زبان های مختلف برنامه نویسی، فن آوری ها و فریمورک ها، میکروسرویس های سفارشی را توسعه دهند. همچنین، توسعه دهندگان می توانند با تلفیق چندین سرویس خرد به صورت یکپارچه، یک سیستم قوی بسازند.
- عملکرد و مقیاس پذیری: NET Core. برای تقویت عملکرد و مقیاس پذیری برنامه ها از فریمورک NET مؤثرتر است. این برنامه نویسان را قادر می سازد بدون استفاده از سخت افزار یا زیرساخت های اضافی، عملکرد برنامه ها را به طرز چشمگیری افزایش دهند. همچنین، به توسعه دهندگان این امکان را می دهد تا برنامه هایی را مستقیماً در ابر ایجاد، آزمایش و استقرار دهند. از این رو، توسعه دهندگان می توانند برای افزایش کارایی و مقیاس پذیری برنامه های خود بدون قرار دادن وقت و تلاش اضافی، به NET Core سوئیچ کنند.
- سازگاری: NET Core. از تمام ویژگی ها و ویژگی های ارائه شده توسط آخرین نسخه فریمورک دات نت پشتیبانی نمی کند. اما می تواند به عنوان زیرمجموعه فریمورک NET. مورد استفاده قرار گیرد. همچنین، NET Core. هنوز هم با NET Framework. از طریق کتابخانه استاندارد NET سازگار است. از این رو، توسعه دهندگان هنوز می توانند برنامه های توسعه یافته با NET Framework. را بعد از ارتقاء به NET Core. اجرا کنند.
در کل، دات نت کور نسخه به روز شده و طراحی مجدد فریمورک NET Framework است. توسعه دهندگان Net. می توانند با هدف قرار دادن دستگاه ها و سیستم عامل های مختلف، به برنامه های NET Core ارتقا یابند تا برنامه های متنوعی را ایجاد کنند. همچنین، آنها می توانند از ویژگی های جدید و پیشرفت های موجود در NET Core. برای ساخت، آزمایش و استقرار برنامه ها به طور کارآمد و سریع استفاده کنند.