.NET Core vs .NET Framework

Microsoft-ning ochiq manbali dunyosiga qarash

Salom! Mana .NET Core haqidagi yangi xabarimiz. Oldingi postda biz .NET Core 2.0-da Testing-ni ko'rdik.

Ushbu postda biz ular o'rtasidagi asosiy o'zgarishlarni, Microsoft ushbu texnologiyani qanday yaratganini va .NET Framework-dan .NET Core-ga qanday o'tish haqida o'ylashimiz uchun .NET Core va .NET Framework o'rtasidagi muhim farqlarni ko'rsatmoqchimiz. Keling buni qilamiz!

Shaxsiy loyiha tajribasi

Wolox-da biz .NET Core bilan ishlaymiz, chunki bu bizga kuch olishimizga imkon beradi
C #, .NET vositalarining ko'pligi va bulut uchun mo'ljallangan ochiq manbali tildan foydalanishning ko'p qirraliligi. Hozirda bizda texnologiyadan foydalanish ularning muvaffaqiyatiga olib kelgan bir nechta loyihalar mavjud.

Microsoft stack

Bu Microsoft-ning texnologiya to'plamining arxitekturasi bo'lib, u 3 ta ishlab chiqish (.NET Framework, .NET Core va Mono) va ularning barchasi uchun umumiy bo'lgan .NET Standard deb nomlangan API spetsifikatsiyasidan iborat.

microsoft .net standarti

.NET Framework va .NET Core o'rtasidagi farqlar

.NET Framework an'anaviy .NET platformasi. Bu monolit (siz uning barcha bazasini o'rnatishingiz kerak yoki undan foydalana olmaysiz) va u konsol, ish stoli, veb va mobil dasturlarni yaratishga imkon beradi. Ushbu dasturlar faqat Windows-da ishlaydi.

.NET Core - .NET texnologiyalarining yangi avlodi. O'zining an'anaviy versiyasidan farqli o'laroq, .NET Core quyidagi maqsadlarni hisobga olgan holda ishlab chiqilgan va ishlab chiqilgan:

  • Engilroq va modulli: Bu bizning dasturimizga to'liq .NET to'plamini o'rnatmasdan zarur bo'lgan narsalarni taqdim etish imkonini beradi.
  • Ko'p platformali: Biz yaratadigan dasturlar Windows, Linux va MacOS-da ishlaydi.
  • Yuqori samaradorlik: .NET Core an'anaviy versiyadan yuqori ko'rsatkichga ega va bu Cloud muhitida juda muhimdir, bu vaqt o'tishi bilan ko'p pul tejashga aylanadi.

.NET dasturlarini yangi .NET Core-ga ko'chirish. Buni amalga oshirish mumkinmi?

Keling, dasturning har xil turlarini va har bir holatda ko'chirish qanchalik qiyinligini ko'rib chiqaylik. Uchta asosiy guruh mavjud:

Veb-ilovalar:

  • Migratsiya ASP.NET MVC-dagi Backend va Frontend dasturlari uchun oddiy.
  • Veb-shakllardan foydalanadigan Frontend dasturlarida bu mumkin emas. Bunday holda, siz noldan qilishingiz kerak.

Windows 8/10 uchun mo'ljallangan ilovalar:

  • Agar dastur universal platformadan foydalansa, boshqa joyga ko'chirish shart emas.
  • Silverlight-ga asoslangan dasturlarda ko'chirish juda oson.
  • Agar ular WPF-ga asoslangan ish stoli dasturlari bo'lsa, unda o'tish qiyinlashadi.
  • Veb-shakllari bo'lgan ilovalar uchun bu mumkin emas.

Konsol ilovasi:

  • Bu ko'p narsa dasturning o'zi va ishlatilayotgan kutubxonalarga bog'liq bo'ladi. Ular o'rta va og'ir qiyinchiliklarga duch kelishi mumkin.

Loyihani amalga oshirish darajasini aniqlashga yordam beradigan bir qator muhim savollar mavjud .NET Asosiy:

  • Ilovalar C # ni asosiy dasturlash tili sifatida ishlatadimi?
  • Ular ".csproj" loyiha fayl formatidan foydalanadilarmi? U / o'sha fayllarga qaysi kutubxonalar kiradi? Ushbu kutubxonalar .NET Core uchun mavjudmi?
  • Tashqi xizmatlardan foydalaniladimi? Qaysi?
  • Loyihani boshqarish uchun a'zolik provayderi xizmatlaridan foydalanadimi?

.NET Core-dan qachon foydalanishim kerak?

Biz 6 tipik stsenariyni aniqlashimiz mumkin. NET Core yaxshi alternativ:

  1. Bizga bir nechta operatsion tizimlarda ishlaydigan multiplatformli dastur kerak bo'ladi.
  2. Mikroservis arxitekturasi asosida dasturlarni yaratish kerak bo'lganda.
  3. Bizga yuqori samarali ehtiyojlarga ega kengaytiriladigan tizimlar kerak bo'lganda.
  4. Windows, Mac va Linux-da ishlaydigan buyruq qatori uchun dasturlarni ishlab chiqish kerak bo'lganda.
  5. Xuddi shu loyihada .NET "yonma-yon" ning bir nechta versiyasidan foydalanishimiz kerak bo'lganda.
  6. Bizga orqa tomondan .NET Core-dan foydalanadigan Windows 10-ning universal dasturlari (UWP) kerak bo'lganda.

Vaqt o'tishi bilan barqarorlik

Bugungi kunda .NET Core ochiq manbali texnologiyalardan foydalangan holda va ajoyib GitHub hamjamiyatiga asoslangan katta jamoaga ega. Ayni paytda (2018 yil dekabr) .NET Core 2.1.6 va 2.2 versiyalarida mavjud (yaqinda e'lon qilingan). Ushbu nuqtada, bu yuqori quvvatli va ko'p platformali dasturlarni yaratishga imkon beradigan funktsionallik bilan jihozlangan barqaror texnologiya.

Ajoyib!

Biz .NET Framework va .NET Core o'rtasidagi asosiy farqlarni ko'rdik, lekin men sizni ASP.NET Core-da globalizatsiya haqida ushbu yozuvni ko'rishga taklif qilaman.