.NET nima? — tarix, ekosistem, C# bilan munosabati

~15 daq · .NET Backend · Kirish — .NET Ekosistemi

Muammodan boshlaylik

Siz backend dasturchi bo'lmoqchisiz. Do'stingiz "C# o'rgan" deydi. Vakansiyalarda ".NET developer" yozilgan. Maqolalar ".NET Core", ".NET Framework", "ASP.NET" deydi.

Savollar paydo bo'ladi:

  • C# nima, .NET nima — bular bir narsami?
  • .NET Framework va .NET Core — qaysi birini o'rganish kerak?
  • ASP.NET bu alohida narsami?

Bu chalkashlikdan boshlash qiyin. Shu darsda hammasi joyiga tushadi.


.NET nima?

.NET — dastur yaratish uchun platforma. Platforma degani: tillar, kutubxonalar, vositalar va ishga tushirish muhitining to'plami.

Xuddi qurilish maydoni kabi. Imorat qurish uchun sizga kerak:

  • Zamin va kranlar (infratuzilma)
  • Beton, g'isht, temir (kutubxonalar)
  • Me'mor va qurilish vositalari (dasturlash tili va IDE)

.NET — o'sha zamin va infratuzilma. C# esa imorat loyihasini chizadigan me'mor tili.


C# va .NET — farqi nima?

Bu eng ko'p chalkashadigan savol.

Hayotiy o'xshatma: Ingliz tili va Microsoft Word. Ingliz tili — til (C#). Microsoft Word — u tilni yozish, saqlash va chop etish muhiti (.NET). Word bo'lmasa ham inglizcha yozish mumkin — lekin Word uni formatlaydi, tekshiradi, chiqaradi.

C# — dasturlash tili. Sintaksis, grammatika, qoidalar.

.NET — platforma. C# kodni qabul qiladi, kompilatsiya qiladi, ishga tushiradi, xotirani boshqaradi va standart kutubxonalar beradi.

Siz C# da kod yozasiz
        ↓
.NET kompilatsiya qiladi
        ↓
Dastur ishlaydi (Windows, Linux, macOS da)

💡 .NET da C# dan tashqari F# va Visual Basic tillari ham bor. Lekin backend uchun 99% hollarda C# ishlatiladi. Biz ham C# o'rganamiz.


Tarix — nima uchun ikki nom bor?

Hozir internetda ".NET Framework" ham, ".NET Core" ham, shunchaki ".NET" ham ko'rasiz. Bu chalkashlikning sababi — tarix.

2002 — .NET Framework chiqdi. Faqat Windows da ishlardi. O'sha paytda eng mashhur backend texnologiyalaridan biri bo'ldi. Banklar, korporatsiyalar, davlat tizimlari shu platforma asosida qurildi.

2016 — .NET Core chiqdi. To'liq qaytadan yozildi. Windows, Linux, macOS da ishlaydi. Ochiq manba (open source) bo'ldi.

2020 — .NET 5 chiqdi. .NET Framework va .NET Core yo'llari birlashtirildi. Endi ikkita alohida platforma yo'q — faqat bitta .NET. Har yili yangi versiya chiqadi.

2002 → .NET Framework 1.0   (faqat Windows)
2016 → .NET Core 1.0        (ko'p platformali, ochiq manba)
2020 → .NET 5               (ikkalasi birlashdi)
2022 → .NET 6  (LTS)
2023 → .NET 7
2024 → .NET 8  (LTS) ← hozir eng keng tarqalgan
2024 → .NET 9

LTS (Long-Term Support) — 3 yil davomida rasmiy qo'llab-quvvatlash. Ishlab chiqarishda LTS versiyasini tanlanadi.

⚠️ Eski maqolalar va YouTube darsliklarida ".NET Framework" va ".NET Core" ko'rasiz. Bular boshqa platformalar. Siz hozir .NET 8 o'rganasiz — bu zamonaviy, ko'p platformali variant. Eski narsalarni o'rganmang.


ASP.NET Core nima?

.NET — umumiy platforma. Uning ustiga qurilgan vositalar bor.

ASP.NET Core — .NET ning web uchun qismi. HTTP so'rovlarini qabul qilish, REST API yaratish, autentifikatsiya — bularning hammasi ASP.NET Core orqali amalga oshiriladi.

.NET  (umumiy platforma)
  ├── ASP.NET Core   ← web va API (biz shu yerda bo'lamiz)
  ├── WPF / WinForms ← Windows desktop
  ├── .NET MAUI      ← mobile (iOS, Android)
  └── Blazor         ← web frontend (C# da!)

Biz kurs davomida ASP.NET Core bilan ishlаymiz — REST API yaratamiz.


Nima uchun .NET?

Ko'p tanlov bor: Node.js, Python/Django, Java/Spring, Go. Nima uchun .NET?

Tezlik. ASP.NET Core TechEmpower benchmark da (mustaqil tashkilot o'tkazadigan sinov) eng tez frameworklar qatorida. Ko'pchilik Node.js loyihalaridan sezilarli darajada tezroq ishlaydi.

C# tili. Zamonaviy, kuchli, xavfsiz til. Statik tiplar xatolarni yozilayotganda topadi — production ga chiqmasdan oldin. Java ga o'xshash, lekin yanada qulay sintaksis bilan.

Korporativ bozor. Bank, sug'urta, davlat tizimlari, yirik korporatsiyalar — .NET eng ko'p ishlatiladigan texnologiyalardan biri. O'zbekistonda ham davlat tizimlarida, moliya sektorida keng qo'llaniladi.

Microsoft qo'llab-quvvatlaydi. Yirik kompaniya tomonidan ishlab chiqiladi. Har yili yangi versiya, uzoq muddatli qo'llab-quvvatlash (LTS).

Ekosistem. NuGet paket menejerida 300,000+ tayyor kutubxona. Kerakli narsa deyarli har doim tayyor.


Biz nima o'rganamiz?

Bu kurs faqat backend ga qaratilgan. Yo'limiz:

C# tili asoslari
      ↓
OOP (Class, Interface, meros)
      ↓
C# ning kuchli tomonlari (LINQ, Async/Await, Generics)
      ↓
ASP.NET Core — birinchi API
      ↓
Entity Framework Core — ma'lumotlar bazasi
      ↓
JWT autentifikatsiya
      ↓
Test va Deploy

Kurs oxirida siz to'liq ishlaydigan REST API yarata olasiz — autentifikatsiya, ma'lumotlar bazasi, test va Docker bilan.


Xulosa

.NET — platforma (infratuzilma). C# — til (vosita). C# da yozasiz, .NET ishga tushiradi.

.NET Framework (Windows only, eski) ≠ .NET Core ≠ .NET 5+ (zamonaviy, ko'p platformali). Biz .NET 8 o'rganamiz.

ASP.NET Core — .NET ning web qismi. REST API, middleware, autentifikatsiya — hammasi shu yerda.


Keyingi dars

2-dars: O'rnatish — .NET SDK, VS Code, birinchi dastur