.NET Uzbekistan
  • .NET Uzbekistan
  • C# / .NET
    • .NET ga xush kelibsiz
    • .NET bilan bog'liq mavhumliklardan qochish
    • .NET asoslari
      • MSIL
      • Memory Management
        • Stack & Heap
      • CLR
    • Basics
      • Starter (boshlang'ich)
        • Java vs C#
        • C# Tarixi
        • Kirish
        • Visual Studio 2019
        • O'zgaruvchilar
        • Ma'lumot turlari
        • Operatorlar
        • Kalit so'zlar
        • ReadLine
        • If-else
        • Switch
        • Math sinfi
        • For sikl operatori
        • While sikl operatori
        • Do-While sikl operatori
        • Foreach sikl operatori
        • Break
        • Continue
        • Goto
        • Kommentlar
      • Essential (muhim)
        • Funksiya
        • Funksiyani qiymat orqali chaqirish
        • Funksiyada Ref kalit so'zidan foydalanish
        • Funksiyada Out parametri
        • Massiv
        • Funksiyalarda massivdan foydalanish
        • Ko'p o'lchamli massiv
        • Parametrlar
        • Array sinfi
        • CMD argumentlari
        • Obyekt va Class lar
        • Konstruktor
        • Obyektni ishga tushiruvchilar
        • Destructor
        • this
        • static
        • Struct
        • Enum
        • Property va Field lar
        • Vorislik
        • Overload (Qayta yuklash)
        • Override (Qayta yozish)
        • Base
        • Polimorfizm
        • Sealed
        • Interface
        • Modifikatorlarga ruxsat berish
        • Inkapsulatsiya
        • Abstrakt class va funksiyalar
        • String
        • StringBuilder
        • String Intern Pool
        • Exception Handling
        • try/catch
        • finally
      • Professional
        • To'plamlar
          • List
          • ArrayList
          • LinkedList
          • SortedList
          • Dictionary
          • HashTable
          • Stack
          • Queue
        • Tuple
        • ValueTuple
        • Delegatlar
          • Func delegati
          • Action delegati
          • Predicate delegati
          • Anonim metodlar
        • Hodisalar
        • Extension metodlar
        • Stream I/O
          • StreamWriter
          • StreamReader
          • MemoryStream
        • File va Directory
          • FileInfo
          • DirectoryInfo
        • MultiThread va Parallel dasturlash
        • Asinxron dasturlash
        • XML Document bilan ishlash
    • LINQ asoslari
      • Average
      • LINQ qanday ishlaydi?
      • LINQ query yozish usullari
      • IEnumerable va IQuerable
      • LINQ operatorlari
      • Select
      • SelectMany
      • Filterlash operatorlari
      • Where
      • OfType
      • Saralash operatorlari
      • OrderBy va OrderByDescending
      • ThenBy va ThenByDescending
      • Reverse
      • Miqdor operatorlari
        • All
        • Any
        • Contains
        • Min
        • Max
      • Set operatsiyasi
        • Distinct
        • Except
        • Intersect
        • Union
      • Bo'lim operatorlari
        • Take
        • TakeWhile
        • Skip
        • SkipWhile
      • Join operatorlari
        • Inner Join
        • Group Join
        • Left Join
      • Element operatsiyalari
        • ElementAt
        • First va FirstOrDefault
        • Last va LastOrDefault
        • Single va SingleOrDefault
    • ORM
      • ADO.NET
      • Dapper
      • Entity Framework
        • Entity Framework Approaches(usullar)
          • Model First Approach
          • Database First Approach
          • Code First Approach
        • Query yozish usullari(Entity Framework)
          • LINQ to SQL
          • Entity SQL
          • Native SQL
        • Entity Framework Core
    • Qo'shimcha sinflar
      • System.Text
        • Encoding
      • System
        • Int32
        • Random
        • DateTime
        • TimeSpan
      • System.Reflection
    • .NET Dasturchi
      • Clean Arxitektura
        • Clean Kod
        • Dizayn Tamoyillari
          • SOLID
            • Yagona Mas'uliyat Tamoyili(SRP)
            • Ochiq Yopiq Tamoyili(O/CP)
            • Liskovning Almashtirish Tamoyili(LSP)
            • Interfeysga ajratish tamoyili(ISP)
            • Qaramlik Inversiya Tamoyili(DIP)
          • DRY
          • KISS
          • YAGNI
        • Dizayn Patternlar
          • Factory Method
          • Abstract Factory
          • Builder
          • Prototype
          • Singleton
          • Adapter
          • Bridge
          • Composite
          • Decorator
          • Façade
          • Flyweight
          • Proxy
          • Chain of Responsibility
          • Command
          • Interpreter
          • Iterator
          • Mediator
          • Memento
          • Observer
          • State
          • Strategy
          • Visitor
          • Template Method
      • Git / Github
      • Muhim terminlar
      • Postman
      • CLI
        • CMD savodxonligi
      • API dan foydalanish
      • WCF
      • Refactor .NET application
      • Unit Test
      • TDD
      • TFS
    • Desktop Dasturlash
      • WPF (Windows Presentation Foundation)
        • WPF ga kirish
          • WPF ning ustunliklari
          • WPF da dastur
          • WPF arxitetkturasi
          • Klasslar iorarxiyasi
        • XAML
          • XAML asoslari
          • XAML orqasida kod
          • XAML xususiyatlari
          • XAML belgilash kengaytmalari
          • Biriktirilgan xususiyatlar
          • XAML da hodisalar
          • XAML da nomlar fazosi
        • WPF ilovasini tuzish
          • Komponovka
          • StackPanel
          • WrapPanel
          • DockPanel
          • Grid
          • GridSplitter
          • Umumiy o'lchamli guruhlar
          • Canvas
          • LnkCanvas
          • Komponovkaga misollar
        • Bog'liqlik xususiyatlari (Dependency property)
          • Bog'liqlik xususiyatlari
          • Bog'liqlik xususiyatlarining roli
          • Bog'liqlik xususiyatlarining aniqlanishi
          • Bog'liqlik xususiyatlarini ishlatish
        • Marshrutlangan hodisalar (Routed Events)
          • Routed Events
          • Bubble Events
          • Direct Events
          • Tunneling Events
        • Qo'shimcha ma'lumotlar
          • WPF ga kirish
          • WinForm va WPF
          • Salom WPF
          • XAML nima?
          • Hodisalar
          • WPF oynasi
          • App.xaml
          • Resurslar
          • Argument berish
          • Son va Vaqtni Formatlash
          • TextBlock elementi – Inline formatlash
          • Label elementi
          • Textbox elementi
      • WinForm (Windows Form)
        • 1-dars. Forma yaratish
        • 2-dars. Muhit bilan tanishish
        • 3-dars. Formaga komponentalar joylashtirish
        • 4-dars. Xodisa(Event)larni boshqarish
        • 5-dars. Dasturni ishga tushurish
      • UWP (Universal Windows Platform)
      • Xamarin
    • Web Dasturlash
      • ASP.NET Core asoslari
        • ASP.NET Core haqida
        • Loyihalar turlari
        • ASP.NET Core dasturlarini hosting qilish
        • Middleware tushunchasi
        • Middleware bilan amaliyot
        • Statik fayllar bilan ishlash
        • Dependency Injection
        • Developer Exception Page
      • ASP.NET Core Web API
        • Web API ga kirish
        • Swagger nima?
        • Http metodlar
        • ActionResult
        • CORs
        • Security (JWT)
        • Swagger ni sozlash
        • Filter va atributlar
        • Configuration va middleware
        • Logging
        • Mapping (AutoMapper)
        • SignalR
        • Keshlash
      • ASP.NET Core MVC
        • MVC nima?
        • ASP.NET Core MVC haqida qisqacha
        • Loyiha strukturasi
        • Controller
        • View
        • Model
        • View larni aniqlash yo'llari
        • Controller dan view ga ma'lumot uzatish
        • ViewBag va ViewData
        • Strongly typed View
        • Layout view haqida
        • ViewStart va ViewImports fayllari haqida
        • Marshrutizatsiya (routing)
        • Tag Helpers
          • Anchor Tag Helper
          • Image Tag Helper
          • Environment Tag Helper
        • Tekshiruv qoidalari (Validation rules)
      • MicroServices
    • Mobile Dasturlash
      • Xamarin.Android
      • Xamarin.IOS
      • Xamarin.Forms
    • Game Dasturlash
      • Unity Starter (boshlang'ich)
      • Unity Advanced (rivojlangan)
    • Internet of Things
    • Machine Learning
    • Telegram Bot
      • Kirish
        • Telegram bot bilan tanishuv
        • ASP.NET Core da birinchi telegram bot
      • Starter
        • Xabar turlari va xabar yuborish
          • Matnli xabarlar bilan ishlash
          • Rasm & Sticker
          • Audio & voice
          • Video & Video Note
          • Dokument fayllar
          • Polls
          • Contact , Location, Venue
          • Album(Media Group)
      • Essential
        • Reply - Markup
          • ReplyKeyboardMarkup, KeyboardButton
          • InlineKeyboardMarkup, InlineKeyboardButton
      • Advanced
        • Deployment
    • Class Library
    • Intervyu savollari
      • C# / .NET asoslari
  • Database
    • MS SQL Server
      • SQL Server sintaksisi
      • Ma'lumot turlari
      • Select
    • PostgreSQL
      • Basic
        • Kirish
        • PostgreSQL tarixi
        • Muhitni sozlash (PgAdmin)
        • Sistaksis
        • Ma'lumot turlari
        • Create Database
        • Select Database
        • Drop Database
        • Create Table
        • Drop Table
        • Scheme
        • Insert so'rovi
        • Select so'rovi
        • Operatorlar
        • Ifodalar
        • Where
        • Where
        • And va Or
        • Update so'rovi
        • Delete so'rovi
        • Like
        • Limit
        • Order By
        • With
        • Having
        • Distinct
      • Advance
        • Constraint (cheklov) lar
        • Join lar
          • Cross join
          • Inner join
          • Left join
          • Right join
          • Full join
        • Union
  • Roadmap
    • Roadmap for .NET developers
    • Roadmap for Azure developers
Powered by GitBook
On this page
  • .NET Frameworkni Tushunish
  • Mono, Xamarin va Unity loyihalarni Tushunish
  • .NET Core ni Tushunish
  • .NET ning o‘ziga Tushunish
  • Zamonaviy .NET nimasi bilan farq qiladi?
  • Windows Ilovalar
  • Web Ilovalar
  • Ma’lumotlar Bazalari
  • .NET Standard ni Tushunish
  • .NET Texnologiyalarini Taqqoslash

Was this helpful?

  1. C# / .NET

.NET bilan bog'liq mavhumliklardan qochish

Zohidbek Mengliboyev

.NET Framework, .NET Core, .NET Standard, va .NET kabi terminlar tez-tez uchrab turadi. Ular nima va bir-biridan qanday farq qiladi?

Bugungi postimizda shular xususida so‘z yuritamiz. 😃

.NET 6, .NET Core, .NET Framework va Xamarin ilovalar va xizmatlarni yaratishda foydalaniladigan dasturchilar uchun oʻzaro bogʻliq va bir-biriga oʻxshash platformalardir. Ushbu boʻlimda men sizlarni ushbu .NET tushunchalarining har biri bilan tanishtirmoqchiman.

.NET Frameworkni Tushunish

.NET Framework — bu kodning bajarilishini boshqaruvchi Common Language Runtime (CLR) va ilovalarni yaratish uchun sinflarning boy kutubxonasini ta’minlovchi Base Class Library (BCL) larni o’z ichiga olgan ishlab chiqish platformasi.

Microsoft dastlab .NET Frameworkni kross-platform imkoniyatiga ega bo’lishini rejalashtirgandi, biroq Microsoft uni Windows bilan juda zo’r ishlashini amalga oshirish uchun kuchini sarfladi.

.NET Framework 4.5.2 dan boshlab u Windows operatsion tizimining rasmiy komponenti hisoblanadi.

Komponentlar o’zlarining asosiy mahsulotlari bilan bir xil qo’llab-quvvatlovga ega, shuning uchun 4.5.2 va undan keyingilari o’rnatilgan Windows operatsion tizimning yashash davri siyosatiga amal qiladi. .NET Framework bir milliarddan ziyod kompyuterlarda o’rnatildi, shuning uchun unda iloji boricha kamroq o’zgarishlar bo’lishi kerak. Hatto bug(qurtcha) larni tuzatish ham muammolarga olib kelishi mumkin, shunga u kamdan-kam yangilanadi.

.NET Framework 4.0 yoki undan keyingilarida .NET Framework uchun yozilgan kompyuterdagi barcha ilovalar CLR ning bir xil versiyasini va Global Assembly Cache (GAC) da saqlangan kutubxonalarni baham ko’radi, bu esa ulardan ba’zilariga o’zaro muvofiqlik uchun ma’lum bir versiya kerak bo’lsa, muammolarga olib kelishi mumkin.

Yaxshi Eslatma: Amalda aytganda, .NET Framework faqat Windows uchun mo’ljallangan va eski platforma hisoblanadi. Undan foydalanib yangi ilovalar yozmang.

Mono, Xamarin va Unity loyihalarni Tushunish

Uchinchi tomon tashkilotlar Mono loyihasi deb nomlangan .NET Framework tadbiqini ishlab chiqdilar. Mono — kross-platformadir, lekin u .NET Frameworkning rasmiy tatbiq etilishidan ancha orqada qoldi.

Mono Xamarin mobil platformasi, shuningdek, Unity kabi kross-platformali o’yinlarni ishlab chiqish platformalarining asosi sifatida o’z o’rnini topdi.

Microsoft Xamarinni 2016-yilda sotib oldi va endi ilgari qimmat Xamarin extension(kengaytmasi)ni Visual Studio bilan bepul taqdim etadigan bo’ldi. Microsoft faqat mobil ilovalar yaratishi mumkin bo’lgan Xamarin Studioni Mac uchun Visual Studio deb o’zgartirdi va unga konsol ilovalari va veb-xizmatlar kabi boshqa turdagi loyihalarni yaratish xizmatlarini qo’shdi. Mac uchun Visual Studio 2022 bilan Microsoft tajriba va ishlashning yaqinroq tengligini taʼminlash uchun Xamarin Studio muharriri qismlarini Windows uchun Visual Studio 2022 qismlari bilan almashtirdi. Mac uchun Visual Studio 2022 ham macOS oʻrnatilgan yordamchi texnologiyalari bilan ishonchlilik diapazoni ishini yaxshilash uchun haqiqiy macOS UI ilovasi boʻlishi uchun qayta yozildi.

.NET Core ni Tushunish

Bugungi kunda biz chinakam platformalararo dunyoda yashayapmizki, zamonaviy mobil va bulutli rivojlanish Windows ni operatsion tizim sifatida unchalik ahamiyatsiz holga keltirdi. Shu sababli Microsoft .NET ni Windows bilan yaqin aloqalaridan ajratish ustida ishlamoqda. .NET Frameworkni chinakam kross-platformali bo’lishi uchun qayta yozish paytida ular endi core(o‘zak) hisoblanmaydigan asosiy qismlarni qayta qurish va olib tashlash imkoniyatidan foydalanganlar.

Ushbu yangi mahsulot .NET Core brendi ostida bo’lib, .NET Frameworkdagi CLR nomi CoreCLR ga, BCL esa soddalashtirilib CoreFX ga o’zgartirildi va kross-platforma xususiyati qo’shildi.

.NET Core tez harakat qiladi va u ilova bilan yonma-yon joylashtirilishi mumkinligi sababli, u tez-tez o’zgarishi mumkin, chunki bu o’zgarishlar bir xil mashinadagi boshqa .NET Core ilovalariga ta’sir qilmaydi. Microsoft .NET Core va zamonaviy .NET ga qilgan ko’pgina yaxshilanishlarni .NET Frameworkga osongina qo’shib bo’lmaydi.

.NET ning o‘ziga Tushunish

2020-yil may oyida boʻlib oʻtgan Microsoft Build dasturchilar konferensiyasida .NET jamoasi .NET ni birlashtirish boʻyicha rejalari kechiktirilganini eʼlon qildi. Ular .NET 5 2020-yil 10-noyabrda chiqarilishini va u mobildan tashqari barcha turli .NET platformalarini birlashtirishini aytishdi. 2021-yil noyabr oyida .NET 6 ga qadar mobil qurilmalar ham birlashgan .NET platformasi tomonidan qo‘llab-quvvatlanadi.

.NET Core nomi .NET deb o‘zgartirildi va asosiy versiya raqami .NET Framework 4.x bilan chalkashmaslik uchun to‘rtinchi raqamni o‘tkazib yubordi. Microsoft har yili noyabrda yillik yirik versiyalarini chiqarishni rejalashtirmoqda, xuddi Apple har sentyabrda iOS ning asosiy versiya raqamlarini chiqarganidek.

Quyidagi jadvalda zamonaviy .NET ning asosiy versiyalari qachon chiqarilgani, kelajakdagi relizlar qachon rejalashtirilganligi ko‘rsatilgan:

Zamonaviy .NET nimasi bilan farq qiladi?

Zamonaviy .NET eski .NET Framework bilan solishtirganda kross-platform qilingan. Bu “open-source” bo’lib, Microsoft yaxshilanishlar va o’zgarishlar haqida qarorlar qabul qiladi. Microsoft zamonaviy .NET ish faoliyatini yaxshilash uchun alohida kuch sarfladi.

Eski va kross-platform boʻlmagan texnologiyalarni olib tashlash tufayli u .NET Frameworkning soʻnggi versiyasidan kichikroq. Misol uchun, Windows Forms va Windows Presentation Foundation (WPF) kabi ichki platformalar foydalanuvchi grafik interfeysi (GUI) ilovalarini yaratish uchun ishlatilishi mumkin, lekin ular Windows’ga qattiq bog’langan, shuning uchun ular macOS va Linuxda ishlatiladigan .NET da qo’shilmaydi.

Windows Ilovalar

Zamonaviy .NET ning xususiyatlaridan biri bu .NET Core 3.1 yoki undan keyingilarining Windows versiyasiga kiritilgan Windows Developer Pack yordamida eski Windows Forms va WPF ilovalarini ishga tushirishni qo‘llab-quvvatlashdir, shuning uchun macOs va Linux SDK laridan kattaroqdir. Agar kerak bo’lsa, eski Windows ilovangizga kichik o’zgarishlar kiritishingiz mumkin, so’ngra yangi xususiyatlar va ish faoliyatini yaxshilashdan foydalanishda uni .NET 6 uchun qayta qurishingiz mumkin.

Web Ilovalar

ASP.NET Web Forms va Windows Communication Foundation (WCF) eski veb-ilova va xizmat ko’rsatish texnologiyalari bo’lib, bugungi kunda kamdan-kam dasturchilar yangi loyihalarni ishlab chiqish uchun tanlamoqda, shu sababdan ular zamonaviy .NET dan ham olib tashlangan. Buning o’rniga ishlab chiquvchilar ASP.NET MVC, ASP.NET Web API, SignalR va gRPC dan foydalanishni afzal ko’rishadi. Ushbu texnologiyalar qayta ishlab chiqilgan va ASP.NET Core deb nomlangan zamonaviy .NET da ishlaydigan platformaga birlashtirilgan.

Ma’lumotlar Bazalari

Entity Framework (EF) 6 — bu Oracle va Microsoft SQL Server kabi relyatsion ma’lumotlar bazalarida saqlanadigan ma’lumotlar bilan ishlash uchun mo’ljallangan object-relational mapping (ORM) texnologiyasi. U yillar davomida o’ziga yuk ortib bordi, shuning uchun kross-platformali API qisqartirildi, Microsoft Azure Cosmos DB kabi non-relational(aloqador boʻlmagan) maʼlumotlar bazalari uchun qoʻllab-quvvatlandi va Entity Framework Core deb oʻzgartirildi. Agar sizda eski EF dan foydalanadigan ilovalaringiz bo’lsa, 6.3 versiyasi .NET Core 3.0 yoki undan keyingi versiyalarida qo’llab-quvvatlanadi.

.NET Standard ni Tushunish

2019-yilda .NET bilan bog‘liq vaziyat quyidagi ro‘yxatda ko‘rsatilganidek, Microsoft tomonidan boshqariladigan uchta shoxli .NET platformasi mavjud edi:

• .NET Core: Kross-platforma va yangi ilovalar uchun • .NET Framework: Eski ilovalar uchun • Xamarin: Mobil ilovalar uchun

Har birining kuchli va zaif tomonlari bor edi, chunki ularning barchasi turli ssenariylar uchun tuzilgandi. Bu dasturiy ta’minot muhandislari uchta platformani o’rganishi kerak bo’lgan muammoga olib keldi, ularning har biri zerikarli g’alatilik va cheklovlarga ega.

Shu sababli, Microsoft .NET Standard ni belgiladi va bu barcha .NET platformalari moslik darajasini ko’rsatish uchun amalga oshirishi mumkin bo’lgan API to’plamining spetsifikatsiyasi. Misol uchun, asosiy qo’llab-quvvatlash platforma .NET Standard 1.4 bilan mos kelishi bilan ko’rsatilgan.

.NET Standard 2.0 va undan keyingi versiyalari bilan Microsoft har uch platformani zamonaviy minimal standartda birlashtirdi, bu esa ishlab chiquvchilarga .NET ning har qanday istaklari o’rtasida kod almashishni ancha osonlashtirdi.

.NET Core 2.0 va undan keyingilarida bu dasturchilar .NET Framework uchun yozilgan eski kodni oʻzaro platforma .NET Corega portlashi kerak boʻlgan yetishmaydigan API larning koʻpini qoʻshishdi. Biroq, ba’zi API lar amalga oshirilgan, ammo ishlab chiquvchiga ulardan foydalanmaslik kerakligini ko’rsatish uchun istisno qiladi. Bu odatda siz .NET ishlatadigan operatsion tizimdagi farqlarga bog’liq.

Qolaversa, .NET Standard shunchaki standart ekanligini tushunish muhimdir. Frontenddan xabaringiz bo’lsa, HTML5 ni qurilmangizga o’rnatolmaganingizdek, bu yerda ham .NET Standardni o’rnatishning iloji yo’q. Chunki, u dasturiy ta’minotning bir qismi emas, shunchaki texnologiyalar to’plami xolos. HTML5 dan foydalanish uchun HTML5 standartini amalga oshiradigan veb-brauzerni o’rnatishingiz kerak.

.NET Standard dan foydalanish uchun .NET Standard spetsifikatsiyasini amalga oshiradigan .NET platformasini o’rnatishingiz kerak. Oxirgi .NET Standard, 2.1 versiyasi .NET Core 3.0, Mono va Xamarin tomonidan amalga oshiriladi. C# 8.0 ning ayrim xususiyatlari .NET Standard 2.1 ni talab qiladi. .NET Standard 2.1 .NET Framework 4.8 tomonidan amalga oshirilmagan, shuning uchun biz .NET Frameworkni eskirgan sifatida talqin qilishimiz kerak.

2021-yil noyabr oyida .NET 6 ning chiqarilishi bilan .NET Standardga ehtiyoj sezilarli darajada kamaydi, chunki endi barcha platformalar, jumladan, mobil qurilmalar uchun yagona .NET mavjud. .NET 6 da bitta BCL va ikkita CLR mavjud: CoreCLR veb-saytlar va Windows Desktop ilovalari kabi server yoki desktop stsenariylari uchun optimallashtirilgan va Mono ish vaqti cheklangan resurslarga ega mobil va veb-brauzer ilovalari uchun optimallashtirilgan.

Hozir ham .NET Framework uchun yaratilgan ilovalar va veb-saytlar qo‘llab-quvvatlanishi kerak, shuning uchun siz eski .NET platformalari bilan o’tmishda mos keladigan .NET Standard 2.0 sinf kutubxonalarini yaratishingiz mumkinligini tushunish zarurdir.

.NET Texnologiyalarini Taqqoslash

Bu yerda soddalashtirish maqsadida, Zamonaviy .NET atamasi deb .NET 6 va .NET Core’dan kelgan uning .NET 5 kabi oldingilariga murojaat qilish uchun foydalanildi. Eski .NET atamasidan .NET Framework, Mono, Xamarin va .NET Standard ga murojaat qilish uchun ishlatildi. Xulosa qilib aytganda, Zamonaviy .NET — bu eski platformalar va standartlarni birlashtirilgani.

Previous.NET ga xush kelibsizNext.NET asoslari

Last updated 2 years ago

Was this helpful?

.NET versiyalari va relizlari
.NET texnologiyalari solishtiruvi