C# va .NET nima: yangi boshlovchilar uchun sharh
Asoslar3 daqInnovialabs tahririyati
Qisqacha
C# — dasturlash tili, .NET esa C# kodini kompilyatsiya qilib ishga tushiradigan platforma; bugun u Windows, Linux va macOS’da ishlaydi va veb, desktop, o‘yinlar hamda korporativ tizimlar uchun mos.
C# va .NET: qisqa javob
C# («si sharp» deb o‘qiladi) — Microsoft yaratgan, statik tiplashtirilgan obyektga yo‘naltirilgan til. .NET — kod yashaydigan platforma: kompilyator, ishga tushirish muhiti, standart kutubxona va vositalar.
Soddaroq aytganda: C# — siz nimada yozasiz, .NET esa — bu qayerda va qanday ishlaydi. .NET’da boshqa tillar ham bor (F#, Visual Basic), lekin asosiysi — C#.
C# kodi qanday qilib ishlaydigan dasturga aylanadi
Kod bir necha bosqichdan o‘tadi:
- Siz
.csfaylini yozasiz. - Kompilyator uni mashina kodiga emas, balki oraliq tilga (IL) — universal bayt-kodga aylantiradi.
- Ishga tushganda CLR (Common Language Runtime) JIT-kompilyator yordamida IL’ni aniq protsessor uchun mashina kodiga o‘giradi.
- CLR xotirani axlat yig‘uvchi (garbage collector) orqali boshqaradi — xotirani qo‘lda bo‘shatish shart emas.
Yana AOT-kompilyatsiya rejimi ham bor (oldindan mashina kodiga): tezroq ishga tushadi, bog‘liqliklar kamroq, lekin ba’zi cheklovlar bilan.
Eng oddiy dastur shunday ko‘rinadi:
Console.WriteLine("Salom, .NET!");
var prices = new List<decimal> { 120m, 80m, 45m };
Console.WriteLine($"Jami: {prices.Sum()}");
Faqat Windows’dan kross-platformagacha
Platformaning tarixi uzoq, shuning uchun yangi boshlovchilar nomlarda adashib qolishadi:
| Nomi | Bu nima |
|---|---|
| .NET Framework | Dastlabki versiya, faqat Windows’da ishlaydi. Qo‘llab-quvvatlanadi, lekin yirik yangi imkoniyatlar qo‘shilmaydi |
| .NET Core | Qayta yozilgan, ochiq kodli kross-platforma versiya |
| .NET (5 va undan yangi) | .NET Core davomi bo‘lgan yagona liniya. Yangi loyihalar aynan shuni tanlaydi |
Amaliyot uchun asosiysi: zamonaviy .NET — open source, Windows, Linux va macOS’da ishlaydi, Docker konteynerlari va bulutda yaxshi ishlaydi.
C# va .NET’da nimalar yoziladi
- Veb-API va backend. ASP.NET Core freymvorki — REST API, mikroservislar, saytlar va SignalR orqali real-time uchun.
- Korporativ tizimlar. Banklar, logistika, ERP, ichki portallar — u yerda qat’iy tiplashtirish, uzoq muddatli qo‘llab-quvvatlash va yetuk vositalar qadrlanadi.
- O‘yinlar. Unity dvigateli skriptlar uchun C# dan foydalanadi — geymdevga kirishning eng mashhur yo‘llaridan biri.
- Desktop. Windows uchun WPF va WinForms, kross-platforma variantlar — .NET MAUI va Avalonia.
- Mobil ilovalar. .NET MAUI orqali bitta kod bazasidan iOS va Android uchun yozish mumkin.
- Bulut va fon vazifalari. Worker-servislar, navbatlar, serverless funksiyalar.
Kuchli va zaif tomonlari
Afzalliklari:
- qat’iy tiplashtirish ko‘plab xatolarni dastur ishga tushishidan oldin ushlaydi;
- boy standart kutubxona va NuGet paket menejeri;
- LINQ — kolleksiyalar va ma’lumotlarga qulay so‘rovlar;
- asinxron kod uchun
async/await; - kuchli IDE’lar: Visual Studio, Rider, VS Code.
Kamchiliklari:
- kirish chegarasi Python yoki JavaScript’ga qaraganda balandroq;
- «Windows uchun til» degan obro‘ hali ham uchraydi, garchi u allaqachon eskirgan bo‘lsa ham;
- kichik skriptlar va prototiplar uchun ortiqcha og‘ir bo‘lishi mumkin.
Nimadan boshlash kerak
- Rasmiy saytdan .NET SDK’ni o‘rnating.
dotnet new consolebuyrug‘i bilan loyiha yarating vadotnet runbilan ishga tushiring.- Asoslarni o‘zlashtiring: tiplar, klasslar, kolleksiyalar, LINQ,
async/await. - Yo‘nalish tanlang — veb (ASP.NET Core), o‘yinlar (Unity) yoki desktop — va kichik loyiha qiling.
Batafsil hujjatlar: learn.microsoft.com/dotnet.