.NET nima? — tarix, ekosistem, C# bilan munosabati
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