<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Elshod Ibodullayev</title>
    <description>The latest articles on DEV Community by Elshod Ibodullayev (@elshoddev).</description>
    <link>https://dev.to/elshoddev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3441831%2F08a37005-e625-4983-a761-c8251cf22ac5.jpg</url>
      <title>DEV Community: Elshod Ibodullayev</title>
      <link>https://dev.to/elshoddev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/elshoddev"/>
    <language>en</language>
    <item>
      <title>IELTS 7.5 until step-by-step</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Sat, 25 Oct 2025 18:57:10 +0000</pubDate>
      <link>https://dev.to/elshoddev/ielts-75-until-step-by-step-1ld</link>
      <guid>https://dev.to/elshoddev/ielts-75-until-step-by-step-1ld</guid>
      <description>&lt;p&gt;📚 Find your books:&lt;br&gt;
☐ Murphy Blue - tabletda qo'ying&lt;br&gt;
☐ Vocabulary in Use - yoniga&lt;br&gt;
☐ Cambridge book - qaysi raqam? (10/11/12/13/14/15?)&lt;br&gt;
☐ Basic IELTS Listening - audio bilan&lt;br&gt;
☐ Maximiser Speaking - ready&lt;br&gt;
☐ ELS Reading - ready&lt;/p&gt;

&lt;p&gt;📓 Notebooks prepare:&lt;br&gt;
☐ Notebook 1: Grammar (Murphy)&lt;br&gt;
☐ Notebook 2: Vocabulary (daily words)&lt;br&gt;
☐ Notebook 3: Reading Vocab (from passages)&lt;br&gt;
☐ Notebook 4: Progress Tracking&lt;/p&gt;

&lt;p&gt;💻 Kompyuter setup:&lt;br&gt;
☐ Cambridge audio files check (CD yoki download)&lt;br&gt;
☐ Browser bookmarks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ieltsliz.com&lt;/li&gt;
&lt;li&gt;ielts-simon.com&lt;/li&gt;
&lt;li&gt;quizlet.com
☐ Voice recorder test (telefonda)
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

**10:30-11:30 (1h) - Murphy Blue Unit 1**

**Birinchi marta properly o'rganamiz:**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Unit 1: Present Simple (I do/work/like etc.)&lt;/p&gt;

&lt;p&gt;10:30-10:40 (10 min): Theory o'qish&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Left page: grammar explanation&lt;/li&gt;
&lt;li&gt;Examples study&lt;/li&gt;
&lt;li&gt;Tushunmagan so'zlar? Google translate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;10:40-11:10 (30 min): Exercises&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Right page: ALL exercises (20+ ta)&lt;/li&gt;
&lt;li&gt;Notebook ga yozish&lt;/li&gt;
&lt;li&gt;Answers check (kitob oxirida keys bor)&lt;/li&gt;
&lt;li&gt;Xatolarni mark qiling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;11:10-11:30 (20 min): Practice&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10 ta o'z jumlangiz yozish&lt;/li&gt;
&lt;li&gt;Present Simple bilan&lt;/li&gt;
&lt;li&gt;Notebook ga
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

**11:30-12:00 (30 min) - First Vocabulary**

**Vocabulary in Use:**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Unit 1 (qaysi topic bo'lsa ham):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O'qish: 10 min&lt;/li&gt;
&lt;li&gt;10-15 ta muhim so'zni tanlash&lt;/li&gt;
&lt;li&gt;Har biri uchun:
✍️ Inglizcha definition
✍️ 1 ta example sentence
✍️ Notebook ga yozish&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Goal: Sistema bilan ishlashni o'rganish&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

**12:00-15:00 - LUNCH + REST** 🍽️

---

**15:00-17:00 - PASSIVE LEARNING (Enjoy!)**

**English Series/Movie:**
- Friends yoki TED Talks
- English subtitles
- Relax!

---

**17:00-19:00 - FREE TIME** 🎮

---

**19:00-20:30 - DUSHANBA PREPARATION**

**19:00-19:30 (30 min) - Workspace Final Setup:**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stol/Table organize:&lt;br&gt;
☐ All books in order&lt;br&gt;
☐ Notebooks stacked&lt;br&gt;
☐ Pens ready&lt;br&gt;
☐ Water bottle&lt;br&gt;
☐ Lighting yaxshi&lt;br&gt;
☐ Quiet space&lt;br&gt;
☐ Telefon silent mode ga o'rgatish (study time)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
**19:30-20:00 (30 min) - Cambridge Check:**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cambridge book ochish:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qaysi raqam? (10/11/12/13/14/15?)&lt;/li&gt;
&lt;li&gt;Test 1 ni topish&lt;/li&gt;
&lt;li&gt;Reading Passage 1 ni ko'rish&lt;/li&gt;
&lt;li&gt;Listening audio files check&lt;/li&gt;
&lt;li&gt;Ertaga shu kitobdan boshlaysiz!
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
**20:00-20:30 (30 min) - Dushanba Plan Review:**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Bu chatdan Dushanba planini qayta o'qish:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Morning: Grammar, Vocabulary, Reading&lt;/li&gt;
&lt;li&gt;Evening: Listening, Writing, Speaking&lt;/li&gt;
&lt;li&gt;Mentally prepare&lt;/li&gt;
&lt;li&gt;"Tomorrow I start!" 💪
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

**20:30-23:00 - FREE TIME + EARLY SLEEP** 😴

---

## 📅 **YANGILANGAN DUSHANBA PLAN (Sizning materiallar bilan)**

### **07:30-12:30 - ERTALAB**

#### **08:00-09:30 - GRAMMAR (Murphy Blue)**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;08:00-08:15: Unit 1 review (15 min)&lt;br&gt;
08:15-08:40: Unit 2 - Present Continuous (25 min)&lt;br&gt;
08:40-09:05: Unit 3 - Present Simple vs Continuous (25 min)&lt;br&gt;
09:05-09:30: Unit 4 - Present Perfect (25 min)&lt;/p&gt;

&lt;p&gt;Total: 4 units, 40+ exercises&lt;br&gt;
Notebook ga yozish!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

#### **09:45-11:15 - VOCABULARY (Vocab in Use)**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;09:45-10:30: 2 ta unit from Vocab in Use (45 min)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Har bir unit: 15-20 so'z&lt;/li&gt;
&lt;li&gt;Total: 40 so'z&lt;/li&gt;
&lt;li&gt;Definitions, examples, notebook&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;10:30-11:00: Sentences writing (30 min)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;40 ta jumla (har bir so'z uchun)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;11:00-11:15: Quizlet flashcards create (15 min)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;40 ta so'zni app ga kiritish
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

#### **11:30-13:00 - READING**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Option 1: Cambridge (if you have 10-15)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test 1, Passage 1&lt;/li&gt;
&lt;li&gt;20 min: Read + answer&lt;/li&gt;
&lt;li&gt;20 min: Check answers&lt;/li&gt;
&lt;li&gt;30 min: Vocabulary extraction (25 words)&lt;/li&gt;
&lt;li&gt;20 min: Second read&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Option 2: ELS Reading (if Cambridge keyinroq)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 ta passage&lt;/li&gt;
&lt;li&gt;Same process
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

### **18:30-23:00 - KECHQURUN**

#### **18:30-19:30 - LISTENING**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;18:30-18:45: Basic IELTS Listening - Unit 1 (15 min)&lt;/p&gt;

&lt;p&gt;18:45-19:15: Cambridge Listening (if audio bor)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Test 1, Section 1-2 (30 min audio + answers)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;19:15-19:30: Analysis (15 min)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transcript check&lt;/li&gt;
&lt;li&gt;Mistakes review
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

#### **20:00-21:00 - WRITING**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;20:00-20:20: IELTS Liz website&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 ta Task 1 model essay o'qish&lt;/li&gt;
&lt;li&gt;Structure analyze&lt;/li&gt;
&lt;li&gt;ieltsliz.com/ielts-writing-task-1&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;20:20-20:40: Useful phrases&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10 ta phrase yozib olish&lt;/li&gt;
&lt;li&gt;"The graph shows..."&lt;/li&gt;
&lt;li&gt;"There was a significant increase..."&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;20:40-21:00: Practice&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 ta paragraph yozish (50-70 words)&lt;/li&gt;
&lt;li&gt;Introduction yoki overview
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

#### **21:15-22:15 - SPEAKING (Maximiser Speaking)**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;21:15-21:45: Part 1 practice (30 min)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maximiser dan 10 ta Part 1 questions&lt;/li&gt;
&lt;li&gt;Telefonga yozish&lt;/li&gt;
&lt;li&gt;Topics: Work, Study, Hometown&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;21:45-22:15: Review (30 min)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Recording eshitish&lt;/li&gt;
&lt;li&gt;Mistakes yozish&lt;/li&gt;
&lt;li&gt;Vocabulary gaps identify
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

#### **22:15-23:00 - REVIEW**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Grammar xatolarni qayta (15 min)&lt;/li&gt;
&lt;li&gt;Vocabulary flashcards - Quizlet (20 min)&lt;/li&gt;
&lt;li&gt;Progress tracking (10 min)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

## 🎯 **MATERIAL PRIORITIES**

### **Har kuni ishlatadigan kitoblar:**

**DUSHANBA-JUMA:**
1. **Murphy Blue** - every morning (grammar foundation)
2. **Vocabulary in Use** - every morning (systematic vocab)
3. **Cambridge** - every morning (reading) + every evening (listening)
4. **Basic IELTS Listening** - every evening (listening skills)
5. **Maximiser Speaking** - every evening (speaking practice)

**ELS Reading:**
- Extra practice uchun (agar vaqt bo'lsa)
- Yoki Cambridge tugagandan keyin
- Yoki Reading da extra drill kerak bo'lsa

---

### **Materials Usage Priority:**

**PHASE 1 (Month 1-2): FOUNDATION**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PRIMARY:&lt;br&gt;
✅ Murphy Blue (full book)&lt;br&gt;
✅ Vocabulary in Use (2 units/day)&lt;br&gt;
✅ Cambridge Test 1-4 (agar 10-15 bor bo'lsa)&lt;br&gt;
✅ Basic IELTS Listening (systematic)&lt;/p&gt;

&lt;p&gt;SECONDARY:&lt;br&gt;
✅ Maximiser Speaking (for speaking practice)&lt;br&gt;
✅ ELS Reading (if need extra)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
**PHASE 2 (Month 3-4): DEVELOPMENT**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;PRIMARY:&lt;br&gt;
✅ Cambridge Test 5-8&lt;br&gt;
✅ Advanced Vocabulary practice&lt;br&gt;
✅ Maximiser Speaking (intensive)&lt;/p&gt;

&lt;p&gt;SECONDARY:&lt;br&gt;
✅ Murphy Red (if needed - advanced grammar)&lt;br&gt;
✅ ELS Reading (speed practice)&lt;/p&gt;

</description>
      <category>books</category>
      <category>learning</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Async Await Delay</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Tue, 16 Sep 2025 03:00:15 +0000</pubDate>
      <link>https://dev.to/elshoddev/async-await-delay-gh7</link>
      <guid>https://dev.to/elshoddev/async-await-delay-gh7</guid>
      <description>&lt;p&gt;🔹 1. async va await&lt;/p&gt;

&lt;p&gt;async → metodni asinxron qilish uchun yoziladi.&lt;/p&gt;

&lt;p&gt;await → kutish, lekin bloklamasdan kutish.&lt;/p&gt;

&lt;p&gt;public async Task RunAsync()&lt;br&gt;
{&lt;br&gt;
    Console.WriteLine("Boshlanish");&lt;br&gt;
    await Task.Delay(2000); // 2 soniya kutadi, lekin boshqa kodlar ishlashi mumkin&lt;br&gt;
    Console.WriteLine("Tugadi");&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;🔹 2. Task va Task&lt;/p&gt;

&lt;p&gt;Task → “bo‘sh ish” (natija qaytarmaydi).&lt;/p&gt;

&lt;p&gt;Task → natija qaytaradigan async metod.&lt;/p&gt;

&lt;p&gt;public async Task GetNumberAsync()&lt;br&gt;
{&lt;br&gt;
    await Task.Delay(1000); // simulyatsiya&lt;br&gt;
    return 42;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;int result = await GetNumberAsync(); // 42&lt;/p&gt;

&lt;p&gt;🔹 3. Task.Delay vs Thread.Sleep&lt;/p&gt;

&lt;p&gt;Task.Delay → asinxron kutish. Thread band bo‘lmaydi.&lt;/p&gt;

&lt;p&gt;Thread.Sleep → synchronous kutish. Thread bloklanadi.&lt;/p&gt;

&lt;p&gt;// Bu UI ni qotiradi&lt;br&gt;
Thread.Sleep(3000);&lt;/p&gt;

&lt;p&gt;// Bu UI ni qotirmaydi&lt;br&gt;
await Task.Delay(3000);&lt;/p&gt;

&lt;p&gt;🔹 4. Task.Run&lt;/p&gt;

&lt;p&gt;Fon ishini alohida oqimda bajaradi.&lt;/p&gt;

&lt;p&gt;await Task.Run(() =&amp;gt;&lt;br&gt;
{&lt;br&gt;
    // Og‘ir hisob-kitob&lt;br&gt;
    Thread.Sleep(2000);&lt;br&gt;
    Console.WriteLine("Hisob tugadi");&lt;br&gt;
});&lt;/p&gt;

&lt;p&gt;🔹 5. WhenAll va WhenAny&lt;/p&gt;

&lt;p&gt;Task.WhenAll – bir nechta vazifani parallel bajaradi va hammasi tugashini kutadi.&lt;/p&gt;

&lt;p&gt;Task.WhenAny – birinchi tugagan vazifani kutadi.&lt;/p&gt;

&lt;p&gt;var t1 = Task.Delay(2000);&lt;br&gt;
var t2 = Task.Delay(3000);&lt;/p&gt;

&lt;p&gt;await Task.WhenAll(t1, t2); // ikkalasini ham kutadi&lt;br&gt;
await Task.WhenAny(t1, t2); // birinchi tugaganini kutadi&lt;/p&gt;

&lt;p&gt;🔹 6. ConfigureAwait&lt;/p&gt;

&lt;p&gt;Server (ASP.NET Core) yoki UI dasturlarida context switching muhim.&lt;/p&gt;

&lt;p&gt;await SomeTask().ConfigureAwait(false);&lt;/p&gt;

&lt;p&gt;👉 Bu UI kontekstiga qaytmasdan ishlash uchun kerak (ko‘p server kodlarda ishlatiladi).&lt;/p&gt;

&lt;p&gt;🔹 7. CancellationToken&lt;/p&gt;

&lt;p&gt;Asinxron vazifani to‘xtatish uchun ishlatiladi.&lt;/p&gt;

&lt;p&gt;public async Task RunAsync(CancellationToken token)&lt;br&gt;
{&lt;br&gt;
    for (int i = 0; i &amp;lt; 10; i++)&lt;br&gt;
    {&lt;br&gt;
        token.ThrowIfCancellationRequested();&lt;br&gt;
        await Task.Delay(500);&lt;br&gt;
        Console.WriteLine(i);&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;🔹 8. IAsyncEnumerable (async foreach)&lt;/p&gt;

&lt;p&gt;Katta ma’lumot oqimini bosqichma-bosqich olish uchun.&lt;/p&gt;

&lt;p&gt;public async IAsyncEnumerable GetNumbersAsync()&lt;br&gt;
{&lt;br&gt;
    for (int i = 1; i &amp;lt;= 5; i++)&lt;br&gt;
    {&lt;br&gt;
        await Task.Delay(500);&lt;br&gt;
        yield return i;&lt;br&gt;
    }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;await foreach (var num in GetNumbersAsync())&lt;br&gt;
{&lt;br&gt;
    Console.WriteLine(num);&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;🔹 9. Common async API’lar&lt;/p&gt;

&lt;p&gt;C# va .NET da tez-tez ishlatiladigan async metodlar:&lt;/p&gt;

&lt;p&gt;Task.Delay – vaqtincha kutish&lt;/p&gt;

&lt;p&gt;HttpClient.GetAsync – internetdan ma’lumot olish&lt;/p&gt;

&lt;p&gt;Stream.ReadAsync / WriteAsync – fayl/stream bilan ishlash&lt;/p&gt;

&lt;p&gt;SignalR.SendAsync – real-time xabar jo‘natish&lt;/p&gt;

&lt;p&gt;DbContext.SaveChangesAsync – ma’lumotlar bazasiga yozish&lt;/p&gt;

&lt;p&gt;📌 Xulosa&lt;/p&gt;

&lt;p&gt;Thread.Sleep → bloklaydi, UI qotadi.&lt;/p&gt;

&lt;p&gt;Task.Delay → asinxron kutadi, UI qotmaydi.&lt;/p&gt;

&lt;p&gt;Task.Run → og‘ir ishni boshqa oqimga o‘tkazadi.&lt;/p&gt;

&lt;p&gt;Task.WhenAll / WhenAny → parallel boshqaruv.&lt;/p&gt;

&lt;p&gt;CancellationToken → ishni to‘xtatish.&lt;/p&gt;

&lt;p&gt;IAsyncEnumerable → oqim bilan ketma-ket natija olish.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
    <item>
      <title>i know data</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Tue, 16 Sep 2025 02:58:44 +0000</pubDate>
      <link>https://dev.to/elshoddev/i-know-data-2ijo</link>
      <guid>https://dev.to/elshoddev/i-know-data-2ijo</guid>
      <description>&lt;ol&gt;
&lt;li&gt;ORM (Object-Relational Mapping) nima va vazifasi?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ORM – bu obyektlar (C# klasslari) bilan ma’lumotlar bazasi jadvallari o‘rtasida bog‘lanish texnologiyasi.&lt;/p&gt;

&lt;p&gt;Ya’ni, SQL yozmasdan, C# kod orqali ma’lumotlar bazasiga murojaat qilish imkonini beradi.&lt;/p&gt;

&lt;p&gt;Vazifasi:&lt;/p&gt;

&lt;p&gt;Kodni soddalashtirish&lt;/p&gt;

&lt;p&gt;SQL yozishni kamaytirish&lt;/p&gt;

&lt;p&gt;OOP bilan bazani boshqarish&lt;/p&gt;

&lt;p&gt;👉 Masalan: User klassingiz bo‘lsa, ORM uni Users jadvali bilan bog‘lab beradi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dapper va ADO.NET&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ADO.NET&lt;/p&gt;

&lt;p&gt;Bu past darajadagi texnologiya.&lt;/p&gt;

&lt;p&gt;Siz qo‘lda SQL query yozasiz, SqlConnection, SqlCommand, SqlDataReader ishlatasiz.&lt;/p&gt;

&lt;p&gt;Juda tez ishlaydi, lekin ko‘p kod yozish kerak.&lt;/p&gt;

&lt;p&gt;Dapper&lt;/p&gt;

&lt;p&gt;Bu yengil ORM.&lt;/p&gt;

&lt;p&gt;SQL yozishingiz kerak, lekin u natijalarni avtomatik klasslarga map qilib beradi.&lt;/p&gt;

&lt;p&gt;Tezligi ADO.NET darajasida, lekin ishlatish qulayroq.&lt;/p&gt;

&lt;p&gt;👉 Dapper – ORM va ADO.NET o‘rtasidagi “oraliq” variant.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Entity Framework (EF) nima?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;EF – bu Microsoft ORM frameworki.&lt;/p&gt;

&lt;p&gt;U orqali SQL yozmasdan, faqat C# klasslari bilan ishlash mumkin.&lt;/p&gt;

&lt;p&gt;EF o‘zi query yaratib, bazaga yuboradi.&lt;/p&gt;

&lt;p&gt;👉 Masalan:&lt;/p&gt;

&lt;p&gt;var users = db.Users.ToList();&lt;/p&gt;

&lt;p&gt;Bu kod ostida EF avtomatik SELECT * FROM Users SQL yozib bajaradi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Code First va CRUD operatsiyalari&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Code First&lt;/p&gt;

&lt;p&gt;Avval C# da klasslar yaratasiz (User, Product va hokazo).&lt;/p&gt;

&lt;p&gt;EF shu klasslardan bazada jadval yaratadi.&lt;/p&gt;

&lt;p&gt;Kod → Baza (Code First).&lt;/p&gt;

&lt;p&gt;CRUD (asosiy amallar):&lt;/p&gt;

&lt;p&gt;Create – qo‘shish (db.Users.Add(...))&lt;/p&gt;

&lt;p&gt;Read – o‘qish (db.Users.ToList())&lt;/p&gt;

&lt;p&gt;Update – yangilash (db.Users.Update(...))&lt;/p&gt;

&lt;p&gt;Delete – o‘chirish (db.Users.Remove(...))&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;EF Core nima va nima uchun kerak?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Entity Framework Core – EF ning yangi, engil va cross-platform versiyasi.&lt;/p&gt;

&lt;p&gt;U Windows, Linux, Mac hamda .NET 5/6/7 bilan ishlaydi.&lt;/p&gt;

&lt;p&gt;Qanday kerak?&lt;/p&gt;

&lt;p&gt;Tezroq va moslashuvchan&lt;/p&gt;

&lt;p&gt;Migration orqali bazani boshqarish&lt;/p&gt;

&lt;p&gt;Katta loyihalarda SQL yozishni kamaytirish uchun&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DbContext nima?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DbContext – bu EF orqali baza bilan bog‘lanish markazi.&lt;/p&gt;

&lt;p&gt;Unda DbSet lar bor.&lt;/p&gt;

&lt;p&gt;U orqali siz CRUD operatsiyalarni bajarasiz.&lt;/p&gt;

&lt;p&gt;👉 Misol:&lt;/p&gt;

&lt;p&gt;public class AppDbContext : DbContext&lt;br&gt;
{&lt;br&gt;
    public DbSet Users { get; set; }&lt;br&gt;
}&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DbSet nimani bildiradi?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DbSet – bu ma’lumotlar bazasidagi jadvalning modeli.&lt;/p&gt;

&lt;p&gt;Masalan, DbSet – bu Users jadvalini bildiradi.&lt;/p&gt;

&lt;p&gt;👉 Kod:&lt;/p&gt;

&lt;p&gt;db.Users.Add(new User { Name = "Ali" });&lt;br&gt;
db.SaveChanges();&lt;/p&gt;

&lt;p&gt;Bu kod INSERT INTO Users (Name) VALUES ('Ali') bajaradi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;LINQ (Language Integrated Query)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;LINQ – bu ma’lumotlar bilan ishlash uchun yozilgan C# sintaksisi.&lt;/p&gt;

&lt;p&gt;U orqali massivlar, listlar, va bazadagi ma’lumotlar bilan query yozish mumkin.&lt;/p&gt;

&lt;p&gt;👉 Misol:&lt;/p&gt;

&lt;p&gt;var users = db.Users&lt;br&gt;
              .Where(u =&amp;gt; u.Age &amp;gt; 18)&lt;br&gt;
              .OrderBy(u =&amp;gt; u.Name)&lt;br&gt;
              .ToList();&lt;/p&gt;

&lt;p&gt;Bu SQLda:&lt;/p&gt;

&lt;p&gt;SELECT * FROM Users WHERE Age &amp;gt; 18 ORDER BY Name;&lt;/p&gt;

&lt;p&gt;✅ Xulosa:&lt;/p&gt;

&lt;p&gt;ORM – obyektlar va jadvallarni bog‘laydi.&lt;/p&gt;

&lt;p&gt;ADO.NET – qo‘lda SQL yoziladi.&lt;/p&gt;

&lt;p&gt;Dapper – tez va yengil ORM.&lt;/p&gt;

&lt;p&gt;EF / EF Core – kuchli ORM, SQL yozmasdan ishlash mumkin.&lt;/p&gt;

&lt;p&gt;DbContext – baza bilan aloqa nuqtasi.&lt;/p&gt;

&lt;p&gt;DbSet – jadval modelini bildiradi.&lt;/p&gt;

&lt;p&gt;LINQ – query yozish uchun C# sintaksisi.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>csharp</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>Dependency Injection (DI) and Middleware</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Thu, 28 Aug 2025 10:10:43 +0000</pubDate>
      <link>https://dev.to/elshoddev/dependency-injection-di-and-middleware-1c3c</link>
      <guid>https://dev.to/elshoddev/dependency-injection-di-and-middleware-1c3c</guid>
      <description>&lt;p&gt;Dependency Injection (DI) — bu loyihadagi sinflar o‘rtasida qattiq bog‘lanishni kamaytiradigan dizayn pattern.&lt;/p&gt;

&lt;p&gt;Oddiy qilib aytsak:&lt;/p&gt;

&lt;p&gt;Bir sinf (masalan, Controller) boshqa sinfni o‘zi yaratib olmaydi, balki tashqaridan (ASP.NET Core container) oladi.&lt;/p&gt;

&lt;p&gt;Bu sinflarni testlash, almashtirish va sozlashni osonlashtiradi.&lt;/p&gt;

&lt;p&gt;Oddiy misol:&lt;br&gt;
Servis interfeysi&lt;br&gt;
public interface IDatabaseService&lt;br&gt;
{&lt;br&gt;
    string GetData();&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Servis implementatsiyasi&lt;br&gt;
public class SqlDatabaseService : IDatabaseService&lt;br&gt;
{&lt;br&gt;
    public string GetData() =&amp;gt; "SQL Database dan ma'lumot olindi";&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Servisni ro‘yxatdan o‘tkazish (Program.cs / Startup.cs)&lt;br&gt;
builder.Services.AddTransient();&lt;/p&gt;

&lt;h3&gt;
  
  
  Controllerda foydalanish
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HomeController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Controller&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="n"&gt;IDatabaseService&lt;/span&gt; &lt;span class="n"&gt;_databaseService&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="c1"&gt;// DI orqali konstruktor orqali keladi&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="nf"&gt;HomeController&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;IDatabaseService&lt;/span&gt; &lt;span class="n"&gt;databaseService&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;_databaseService&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;databaseService&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IActionResult&lt;/span&gt; &lt;span class="nf"&gt;Index&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;_databaseService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GetData&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;Content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;➡️ Bunda HomeController qaysi servis ishlatilishini bilmaydi – DI container unga to‘g‘risini beradi.&lt;br&gt;
Agar keyinroq PostgreSqlDatabaseService yozilsa, faqatgina DI ro‘yxatida almashtirish kifoya. Controller kodi o‘zgarmaydi.&lt;/p&gt;

&lt;p&gt;Middleware&lt;/p&gt;

&lt;p&gt;ASP.NET Core’da har bir so‘rov va javob pipeline orqali o‘tadi.&lt;br&gt;
Pipeline — bu Middleware’lar zanjiri. Har bir middleware:&lt;/p&gt;

&lt;p&gt;So‘rovni qabul qiladi.&lt;/p&gt;

&lt;p&gt;O‘z vazifasini bajaradi (masalan, loglash, autentifikatsiya, exception handling).&lt;/p&gt;

&lt;p&gt;Keyingi middleware’ga uzatadi (await _next(context) orqali).&lt;/p&gt;

&lt;h3&gt;
  
  
  Oddiy Middleware
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class LoggingMiddleware
{
    private readonly RequestDelegate _next;

    public LoggingMiddleware(RequestDelegate next)
    {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context)
    {
        Console.WriteLine($"So'rov keldi: {context.Request.Path} | {DateTime.Now}");

        await _next(context); // Keyingi middlewarega o'tadi

        Console.WriteLine($"So'rov tugadi: {DateTime.Now}");
    }
}

Middleware’ni ulash
var app = builder.Build();

app.UseMiddleware&amp;lt;LoggingMiddleware&amp;gt;(); // Custom middleware
app.UseAuthentication();                // Ichki middleware
app.UseAuthorization();

app.MapControllers();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚡ Muhim: Middleware’lar tartibi juda muhim. Masalan:&lt;/p&gt;

&lt;p&gt;UseAuthentication() Always UseAuthorization() dan oldin turishi kerak.&lt;/p&gt;

&lt;p&gt;Exception handling middleware (UseExceptionHandler) boshida turadi.&lt;/p&gt;

&lt;p&gt;Umumlashtirib aytganda&lt;/p&gt;

&lt;p&gt;AppSettings → konfiguratsiya fayllari (umumiy va muhitga xos).&lt;/p&gt;

&lt;p&gt;Dependency Injection → komponentlarni bir-biridan mustaqil qilish.&lt;/p&gt;

&lt;p&gt;Middleware → so‘rov va javob jarayonida ishlovchi zanjir.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AppSettings.json va AppSettings.Development.json</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Thu, 28 Aug 2025 10:08:58 +0000</pubDate>
      <link>https://dev.to/elshoddev/appsettingsjson-va-appsettingsdevelopmentjson-10hg</link>
      <guid>https://dev.to/elshoddev/appsettingsjson-va-appsettingsdevelopmentjson-10hg</guid>
      <description>&lt;p&gt;ASP.NET Core’da konfiguratsiya (sozlamalar) appsettings.json fayli orqali saqlanadi.&lt;br&gt;
Bu fayllar json formatida bo‘lib, unda ConnectionString, Logging, API sozlamalari, Custom Settings kabi umumiy parametrlar saqlanadi.&lt;/p&gt;

&lt;p&gt;Asosiy fayl: appsettings.json&lt;/p&gt;

&lt;p&gt;Loyihaning barcha muhitlarida umumiy ishlatiladi (Development, Staging, Production).&lt;/p&gt;

&lt;p&gt;Masalan, asosiy ulanish satri yoki loglash darajasi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="s"&gt;"ConnectionStrings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"DefaultConnection"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Server=ProdServer;Database=ProdDB;User=sa;Password=123;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="s"&gt;"Logging"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"LogLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="s"&gt;"Default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Information"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Muhitga xos fayl: appsettings.Development.json&lt;/p&gt;

&lt;p&gt;Bu fayl faqat Development (dasturchilar muhitida) ishlatiladi.&lt;/p&gt;

&lt;p&gt;Unda ishlab chiqish uchun qulayroq sozlamalar yoziladi. Masalan, LocalDB ulanishi yoki loglarni batafsilroq chiqarish.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="s"&gt;"ConnectionStrings"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"DefaultConnection"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Server=(localdb)\\mssqllocaldb;Database=DevDB;Trusted_Connection=True;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="s"&gt;"Logging"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"LogLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="s"&gt;"Default"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Debug"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s"&gt;"Microsoft"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Warning"&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;⚡ Muhitni aniqlash: ASP.NET Core avtomatik ravishda ASPNETCORE_ENVIRONMENT o‘zgaruvchisiga qarab to‘g‘ri faylni yuklaydi:&lt;/p&gt;

&lt;p&gt;Development → appsettings.Development.json&lt;/p&gt;

&lt;p&gt;Staging → appsettings.Staging.json&lt;/p&gt;

&lt;p&gt;Production → appsettings.Production.json&lt;/p&gt;

&lt;p&gt;👉 Bu orqali bir xil kodni turli muhitlarda sozlamalarni o‘zgartirmasdan ishlatish mumkin.&lt;/p&gt;

</description>
      <category>appsettingjson</category>
      <category>csharp</category>
      <category>configuratsiya</category>
      <category>aspnetcore</category>
    </item>
    <item>
      <title>ASP.NET Core va .NET Framework</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Wed, 27 Aug 2025 19:53:39 +0000</pubDate>
      <link>https://dev.to/elshoddev/title-aspnet-core-va-net-framework-hayotiy-misollar-bilan-tushunishpublished-true-4g4o</link>
      <guid>https://dev.to/elshoddev/title-aspnet-core-va-net-framework-hayotiy-misollar-bilan-tushunishpublished-true-4g4o</guid>
      <description>&lt;p&gt;ASP.NET Core MVC asosiy konseptlarini tushuntirib boraman. Har bir mavzu alohida tahlil qilinadi.&lt;/p&gt;

&lt;p&gt;ASP.NET Core va .NET Framework Farqi&lt;br&gt;
ASP.NET Core yangi avlod, ochiq manba kodli va ko'p platformali framework simplilearn.com&lt;br&gt;
Windows, macOS va Linux operatsion sistemalarda ishlaydi&lt;br&gt;
Yuqori ishlash tezligiga ega&lt;br&gt;
Bulutga moslashtirilgan arxitektura&lt;br&gt;
.NET Framework faqat Windowsda ishlaydi&lt;/p&gt;

&lt;p&gt;🔹 Controller nima?&lt;/p&gt;

&lt;p&gt;Controller — bu ko‘prik.&lt;/p&gt;

&lt;p&gt;U foydalanuvchi yuborgan so‘rovni (request) qabul qiladi.&lt;/p&gt;

&lt;p&gt;Keyin kerak bo‘lsa modeldan ma’lumot oladi yoki saqlaydi.&lt;/p&gt;

&lt;p&gt;Oxirida foydalanuvchiga natija (view yoki json, text, file va h.k.) qaytaradi.&lt;/p&gt;

&lt;p&gt;👉 Oddiy qilib aytganda: Controller = “Foydalanuvchi bilan dastur o‘rtasidagi vositachi”.&lt;/p&gt;

&lt;p&gt;🔹 Action nima?&lt;/p&gt;

&lt;p&gt;Action — bu Controller ichidagi funksiya/metod, ya’ni aniq bir vazifani bajaruvchi qism.&lt;/p&gt;

&lt;p&gt;Har bir Action odatda:&lt;/p&gt;

&lt;p&gt;URL orqali chaqiriladi (masalan, /Home/Index yoki /Home/GetData).&lt;/p&gt;

&lt;p&gt;O‘ziga xos natija qaytaradi (masalan, web sahifa, json, text, file va boshqalar).&lt;/p&gt;

&lt;p&gt;🔹 Misol orqali&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;HomeController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Controller&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// 1) Oddiy Action: Sahifa ko'rsatadi&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IActionResult&lt;/span&gt; &lt;span class="nf"&gt;Index&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;View&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Index.cshtml faylini qaytaradi&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// 2) Ma'lumot olish Action: JSON qaytaradi&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;HttpGet&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;JsonResult&lt;/span&gt; &lt;span class="nf"&gt;GetData&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Ali"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="m"&gt;25&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;Json&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="c1"&gt;// 3) Yangi ma'lumot yuborish Action&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;HttpPost&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IActionResult&lt;/span&gt; &lt;span class="nf"&gt;SaveData&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// kelgan ma'lumotni saqlash&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ma'lumot saqlandi!"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Bu yerda:&lt;/p&gt;

&lt;p&gt;HomeController → Controller (ko‘prik).&lt;/p&gt;

&lt;p&gt;Index, GetData, SaveData → Action’lar (aniq vazifalarni bajaradi).&lt;/p&gt;

&lt;p&gt;🔹 Hayotiy o‘xshatish&lt;/p&gt;

&lt;p&gt;Controller → Restorandagi ofitsiant (buyurtmani qabul qiladi va oshxonaga yetkazadi).&lt;/p&gt;

&lt;p&gt;Action → Ofitsiantning bajaradigan harakati:&lt;/p&gt;

&lt;p&gt;Buyurtmani olish&lt;/p&gt;

&lt;p&gt;Ovqatni olib kelish&lt;/p&gt;

&lt;p&gt;Hisobni chiqarish&lt;/p&gt;

</description>
      <category>programming</category>
      <category>aspnet</category>
      <category>coding</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>Xunit testlar</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Wed, 27 Aug 2025 19:18:44 +0000</pubDate>
      <link>https://dev.to/elshoddev/xunit-testlar-4bhh</link>
      <guid>https://dev.to/elshoddev/xunit-testlar-4bhh</guid>
      <description>&lt;p&gt;[Fact] oddiy holarlarda yani xilma xillik bulmaganda  testimis tuslanmasa biz bergan  malumotni tuslamaydi yani   usha bergan  malimotni qaytarib olamiz&lt;br&gt;
[theory]&lt;br&gt;
[Inline[Data(null)] null qiymat &lt;br&gt;
[Inline[Data("")]    string &lt;br&gt;
[Inline[Data(" ")]    bush joy yani space &lt;br&gt;
qiymat berib yubormoqchi bulsak   theory ekan &lt;/p&gt;

</description>
      <category>unittest</category>
      <category>testing</category>
      <category>coding</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>ASP.NET Core da MIDDLEWARE</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Mon, 25 Aug 2025 05:09:11 +0000</pubDate>
      <link>https://dev.to/elshoddev/aspnet-core-da-middleware-l4l</link>
      <guid>https://dev.to/elshoddev/aspnet-core-da-middleware-l4l</guid>
      <description>&lt;p&gt;Middleware  deb Sql Surovni yoki javobni handle qiladigan code ga aytiladi&lt;br&gt;
xar qanday Middleware kampanintini anbiq bir maqsadi buladi  authenticaction, Static Files, logging,  shunga uxshash va boshqalar &lt;br&gt;
serverga kelgan http surovni request pipiline orqali chaqiruvchi  Middleware Companentlar  handle qiladi &lt;/p&gt;

</description>
      <category>aspnet</category>
      <category>middleware</category>
      <category>csharp</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>ASP.NET Core’da Logging: ILogger, ILogger&lt;T&gt; va Serilog To‘liq Tushuntirish</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Sun, 24 Aug 2025 11:33:32 +0000</pubDate>
      <link>https://dev.to/elshoddev/logging-nima-3aib</link>
      <guid>https://dev.to/elshoddev/logging-nima-3aib</guid>
      <description>&lt;p&gt;Logging — To‘liq Tushunish&lt;/p&gt;

&lt;p&gt;Logging nima va nima uchun kerak?&lt;br&gt;
Logging — bu dastur ichida sodir bo‘layotgan hodisa va voqealarni yozib borish jarayoni.&lt;br&gt;
Uning asosiy maqsadi:&lt;/p&gt;

&lt;p&gt;✅ Xatoliklarni aniqlash (buglarni tezroq topish)&lt;br&gt;
✅ Jarayonlarni kuzatish (masalan, foydalanuvchi qaysi API’ni chaqirdi)&lt;br&gt;
✅ Monitoring va audit qilish (kattaroq loyihalarda majburiy)&lt;br&gt;
✅ Tahlil qilish (dastur samaradorligi, ishlash vaqti, resurs sarfi)&lt;/p&gt;

&lt;p&gt;logging nima =&amp;gt; output window yani bu rasmdagi joy &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futq9q9ng3wqkzqrqud67.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Futq9q9ng3wqkzqrqud67.jpg" alt=" " width="800" height="149"&gt;&lt;/a&gt;&lt;br&gt;
bu ham logging&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm7l91vc7davazaa4h75a.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm7l91vc7davazaa4h75a.jpg" alt=" " width="482" height="209"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>logging</category>
      <category>csharp</category>
      <category>dotnet</category>
      <category>aspnet</category>
    </item>
    <item>
      <title>LINQ (Language Integrated Query)</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Fri, 22 Aug 2025 05:28:00 +0000</pubDate>
      <link>https://dev.to/elshoddev/linq-language-integrated-query-23ac</link>
      <guid>https://dev.to/elshoddev/linq-language-integrated-query-23ac</guid>
      <description>&lt;h1&gt;
  
  
  LINQ (Language Integrated Query) To‘liq Tushuntirish
&lt;/h1&gt;

&lt;p&gt;LINQ (Language Integrated Query) — bu .NET tilida (C#, VB.NET va F#) ma’lumotlarni so‘roqlash (query qilish) imkonini beradigan texnologiya. U ma’lumotlarni turli manbalardan (kolektsiyalar, massivlar, ma’lumotlar bazasi, XML, JSON va boshqalar) o‘qish va ular ustida amallar bajarishni soddalashtiradi.&lt;/p&gt;

&lt;p&gt;LINQ dasturchiga SQLga o‘xshash query sintaksisi yoki method chaining usulida yozish imkonini beradi. Bu esa kodni qisqa, tushunarli va qo‘llab-quvvatlashni oson qiladi.&lt;/p&gt;




&lt;h2&gt;
  
  
  LINQ ning Afzalliklari
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Kod qisqaligi&lt;/strong&gt; – ko‘p qatorli foreach sikllarni bir qator LINQ ifodasi bilan almashtirish mumkin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;O‘qilishi oson&lt;/strong&gt; – SQLga o‘xshash sintaksis orqali ma’lumotlar ustida ishlash soddalashadi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Universal&lt;/strong&gt; – har xil turdagi ma’lumot manbalariga (memorydagi koleksiya, DB, XML, JSON) ishlaydi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type safety&lt;/strong&gt; – kompilyator xatolarni oldindan aniqlaydi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deferred execution&lt;/strong&gt; – query natijasi faqat ishlatilganda bajariladi (optimallashtirish imkoniyati).&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  LINQ Sintaksislari
&lt;/h2&gt;

&lt;p&gt;LINQ ikki xil yozilishi mumkin:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Query Sintaksis (SQLga o‘xshash)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;
             &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;
             &lt;span class="k"&gt;orderby&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;
             &lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="n"&gt;user&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Method Sintaksis (Lambda ifodalar bilan)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;OrderBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ikkalasi ham bir xil natija beradi, faqat yozilish uslubi boshqacha.&lt;/p&gt;




&lt;h2&gt;
  
  
  LINQ Qayerlarda Ishlatiladi?
&lt;/h2&gt;

&lt;p&gt;LINQ asosan quyidagi sohalarda qo‘llaniladi:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Kolleksiyalar bilan ishlash&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Massiv yoki List ichidagi elementlarni filter qilish, tartiblash, guruhlash.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;6&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
   &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;evenNumbers&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;%&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Entity Framework va DB bilan ishlash&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;SQL yozmasdan, C# kodida query yozish.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Students&lt;/span&gt;
                         &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                         &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;OrderBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                         &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToList&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;XML bilan ishlash&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="n"&gt;XDocument&lt;/span&gt; &lt;span class="n"&gt;doc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;XDocument&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Load&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"students.xml"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;names&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Descendants&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"student"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
               &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;
               &lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Element&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="n"&gt;Value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;JSON bilan ishlash&lt;/strong&gt; (Newtonsoft yoki System.Text.Json orqali LINQ-to-JSON)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="n"&gt;JObject&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;JObject&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Parse&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;jsonString&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
   &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;names&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"students"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
                 &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                 &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Parallel ishlash (PLINQ)&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Katta hajmdagi ma’lumotlarni tezroq qayta ishlash uchun.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;   &lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;primes&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AsParallel&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
                       &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;IsPrime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  LINQ Operatorlari
&lt;/h2&gt;

&lt;p&gt;LINQ’da ko‘plab operatorlar mavjud. Ularni guruhlarga bo‘lish mumkin:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Filtering (Filtrlash)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Where&lt;/code&gt; – shartga mos elementlarni olish&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;OfType&lt;/code&gt; – ma’lum tipdagi elementlarni olish&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Projection (Transformatsiya)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Select&lt;/code&gt; – elementlarni boshqa shaklga o‘zgartirish&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SelectMany&lt;/code&gt; – nested kolleksiyalarni yoyib yuborish&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;Sorting (Tartiblash)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;OrderBy&lt;/code&gt;, &lt;code&gt;OrderByDescending&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ThenBy&lt;/code&gt;, &lt;code&gt;ThenByDescending&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Grouping (Guruhlash)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GroupBy&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. &lt;strong&gt;Joining (Bog‘lash)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Join&lt;/code&gt; – ikki kolleksiyani bog‘lash&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;GroupJoin&lt;/code&gt; – grouped join&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. &lt;strong&gt;Aggregation (Hisoblash)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Count&lt;/code&gt;, &lt;code&gt;Sum&lt;/code&gt;, &lt;code&gt;Average&lt;/code&gt;, &lt;code&gt;Min&lt;/code&gt;, &lt;code&gt;Max&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. &lt;strong&gt;Quantifiers (Shartlar tekshirish)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Any&lt;/code&gt;, &lt;code&gt;All&lt;/code&gt;, &lt;code&gt;Contains&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. &lt;strong&gt;Element Operators&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;First&lt;/code&gt;, &lt;code&gt;FirstOrDefault&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Single&lt;/code&gt;, &lt;code&gt;SingleOrDefault&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ElementAt&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9. &lt;strong&gt;Set Operators&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Distinct&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Union&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Intersect&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Except&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. &lt;strong&gt;Conversion&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ToList&lt;/code&gt;, &lt;code&gt;ToArray&lt;/code&gt;, &lt;code&gt;ToDictionary&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Amaliy Misollar
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Oddiy Filter va Select
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;adults&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;=&lt;/span&gt; &lt;span class="m"&gt;18&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                  &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Guruhlash
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;groupedByCity&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;GroupBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;City&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Join
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;student&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;students&lt;/span&gt;
            &lt;span class="k"&gt;join&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;grades&lt;/span&gt; &lt;span class="k"&gt;on&lt;/span&gt; &lt;span class="n"&gt;student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="k"&gt;equals&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StudentId&lt;/span&gt;
            &lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;student&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;grade&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Mark&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. Aggregation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;avgAge&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Average&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;u&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Age&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  LINQ Qanday Muammolarni Yechadi?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kodning uzunligi va murakkabligi&lt;/strong&gt; – foreach va if kombinatsiyalarini soddalashtiradi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQL va C# o‘rtasidagi tafovut&lt;/strong&gt; – kod ichida SQL yozishga hojat yo‘q.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ma’lumot manbalari turli xil bo‘lsa&lt;/strong&gt; – LINQ bir xil sintaksis bilan ishlaydi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parallel ishlash&lt;/strong&gt; – katta hajmdagi ma’lumotlarni tezroq qayta ishlash.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Xulosa
&lt;/h2&gt;

&lt;p&gt;LINQ — bu .NET ekotizimidagi juda kuchli vosita bo‘lib, ma’lumotlar bilan ishlash jarayonini sezilarli darajada yengillashtiradi. Dasturchilar uchun:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kolleksiya ustida ishlash&lt;/li&gt;
&lt;li&gt;Ma’lumotlar bazasiga so‘rovlar&lt;/li&gt;
&lt;li&gt;XML/JSON bilan ishlash&lt;/li&gt;
&lt;li&gt;Parallel hisoblash&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;kabi vazifalarda eng qulay va samarali yondashuvlardan biridir.&lt;/p&gt;




&lt;p&gt;✍️ Ushbu maqolani dev.to saytida joylashtirib, amaliy misollarni kengaytirish orqali yangi boshlovchilar va professional dasturchilar uchun LINQ haqida mukammal qo‘llanma qilish mumkin.&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>restapi</category>
      <category>aspdotnet</category>
    </item>
    <item>
      <title>SQL,PostgreSQL, Database RDBMS, Sql NoSql farqi</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Wed, 20 Aug 2025 17:00:29 +0000</pubDate>
      <link>https://dev.to/elshoddev/sqlpostgresql-database-rdbms-sql-nosql-farqi-5gi</link>
      <guid>https://dev.to/elshoddev/sqlpostgresql-database-rdbms-sql-nosql-farqi-5gi</guid>
      <description>&lt;ol&gt;
&lt;li&gt;Database nima?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Database (ma’lumotlar bazasi) — bu ma’lumotlarni saqlash, boshqarish va qayta ishlash uchun joy.&lt;/p&gt;

&lt;p&gt;Masalan, telefoningizdagi kontaktlar ro‘yxati ham kichik ma’lumotlar bazasi.&lt;/p&gt;

&lt;p&gt;Internet-do‘kon saytida esa foydalanuvchilar, buyurtmalar, mahsulotlar — hammasi ma’lumotlar bazasida saqlanadi.&lt;/p&gt;

&lt;p&gt;👉 Demak, database = katta elektron daftar.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;RDBMS nima?
RDBMS (Relational Database Management System) — bu relatsion ma’lumotlar bazasi boshqaruv tizimi.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Relatsion degani = ma’lumotlar jadval (table) ko‘rinishida saqlanadi.&lt;/p&gt;

&lt;p&gt;Har bir jadvalda qator (row) va ustun (column) bo‘ladi.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Id&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Age&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Ali&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Dilnoz&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;RDBMS misollari: SQL Server, PostgreSQL, MySQL, Oracle.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. SQL va NoSQL farqi
&lt;/h2&gt;

&lt;h3&gt;
  
  
  SQL (RDBMS)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Jadval ko‘rinishida (rows, columns) saqlanadi.
&lt;/li&gt;
&lt;li&gt;Qattiq struktura (&lt;strong&gt;schema&lt;/strong&gt;) bo‘ladi.
&lt;/li&gt;
&lt;li&gt;Kuchli &lt;strong&gt;JOIN&lt;/strong&gt; va &lt;strong&gt;transaction&lt;/strong&gt; qo‘llab-quvvatlaydi.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Misollar:&lt;/strong&gt; SQL Server, PostgreSQL, MySQL.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  NoSQL
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Jadval emas, balki &lt;strong&gt;hujjat, kalit-qiymat, grafik&lt;/strong&gt; kabi formatlarda saqlaydi.
&lt;/li&gt;
&lt;li&gt;Qattiq schema yo‘q → moslashuvchan.
&lt;/li&gt;
&lt;li&gt;Juda katta hajmdagi ma’lumotlarda (&lt;strong&gt;Big Data&lt;/strong&gt;) yaxshi ishlaydi.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Misollar:&lt;/strong&gt; MongoDB (document), Redis (key-value).
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;Esda qolarli:&lt;/strong&gt;  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SQL&lt;/strong&gt; = an’anaviy daftar (qatordan-ustunlardan iborat)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NoSQL&lt;/strong&gt; = shaxsiy daftar (kim qanday yozsa, shunday turadi)
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Xususiyat&lt;/th&gt;
&lt;th&gt;SQL (RDBMS)&lt;/th&gt;
&lt;th&gt;NoSQL&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Ma’lumot formati&lt;/td&gt;
&lt;td&gt;Jadval (rows va columns)&lt;/td&gt;
&lt;td&gt;Hujjat, kalit-qiymat, grafik, columnar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schema&lt;/td&gt;
&lt;td&gt;Qattiq (oldindan belgilangan)&lt;/td&gt;
&lt;td&gt;Moslashuvchan (schema-less)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Moslik&lt;/td&gt;
&lt;td&gt;Murakkab JOIN va transaction’lar&lt;/td&gt;
&lt;td&gt;Katta hajm, tezkor va kengayuvchan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Kengayish&lt;/td&gt;
&lt;td&gt;Vertical scaling (serverni kuchaytirish)&lt;/td&gt;
&lt;td&gt;Horizontal scaling (ko‘p server qo‘shish)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Qo‘llanish sohasi&lt;/td&gt;
&lt;td&gt;An’anaviy ilovalar, moliya, ERP, CRM&lt;/td&gt;
&lt;td&gt;Big Data, real-time analytics, IoT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Misollar&lt;/td&gt;
&lt;td&gt;SQL Server, PostgreSQL, MySQL, Oracle&lt;/td&gt;
&lt;td&gt;MongoDB, Redis, Cassandra, Neo4j&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  4. SQL Server va PostgreSQL
&lt;/h3&gt;

&lt;p&gt;SQL Server → Microsoft ishlab chiqqan kuchli RDBMS. Korporativ loyihalarda keng qo‘llanadi.&lt;/p&gt;

&lt;p&gt;PostgreSQL → Ochiq manbali (open-source) RDBMS. Juda kuchli va moslashuvchan.&lt;/p&gt;

&lt;p&gt;Har ikkalasi ham SQL tilida ishlaydi, lekin sintaksisda ozgina farqlar bo‘lishi mumkin.&lt;/p&gt;

&lt;p&gt;👉 Esda qolsin:&lt;/p&gt;

&lt;p&gt;SQL Server = pullik, Microsoft ekotizimida&lt;/p&gt;

&lt;p&gt;PostgreSQL = bepul, kuchli open-source&lt;/p&gt;

&lt;h2&gt;
  
  
  5. SQL asosiy komandalar
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="err"&gt;👉&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;jadvalidagi&lt;/span&gt; &lt;span class="n"&gt;barcha&lt;/span&gt; &lt;span class="n"&gt;ma&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;lumotlarni&lt;/span&gt; &lt;span class="n"&gt;olib&lt;/span&gt; &lt;span class="n"&gt;keladi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="err"&gt;—&lt;/span&gt; &lt;span class="n"&gt;yangi&lt;/span&gt; &lt;span class="n"&gt;ma&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;lumot&lt;/span&gt; &lt;span class="n"&gt;qo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;shish&lt;/span&gt;
&lt;span class="k"&gt;INSERT&lt;/span&gt; &lt;span class="k"&gt;INTO&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;VALUES&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Ali'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="err"&gt;👉&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;jadvaliga&lt;/span&gt; &lt;span class="n"&gt;yangi&lt;/span&gt; &lt;span class="n"&gt;foydalanuvchi&lt;/span&gt; &lt;span class="n"&gt;qo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;shadi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="err"&gt;—&lt;/span&gt; &lt;span class="n"&gt;ma&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;lumotni&lt;/span&gt; &lt;span class="n"&gt;yangilash&lt;/span&gt;
&lt;span class="k"&gt;UPDATE&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Ali'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="err"&gt;👉&lt;/span&gt; &lt;span class="n"&gt;Ali&lt;/span&gt; &lt;span class="n"&gt;ismli&lt;/span&gt; &lt;span class="n"&gt;foydalanuvchining&lt;/span&gt; &lt;span class="n"&gt;yoshini&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt; &lt;span class="n"&gt;ga&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;zgartiradi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="err"&gt;—&lt;/span&gt; &lt;span class="n"&gt;ma&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;lumotni&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;chirish&lt;/span&gt;
&lt;span class="k"&gt;DELETE&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'Ali'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="err"&gt;👉&lt;/span&gt; &lt;span class="n"&gt;Ali&lt;/span&gt; &lt;span class="n"&gt;ismli&lt;/span&gt; &lt;span class="n"&gt;foydalanuvchini&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;chiradi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;Primary&lt;/span&gt; &lt;span class="k"&gt;Key&lt;/span&gt; &lt;span class="n"&gt;va&lt;/span&gt; &lt;span class="k"&gt;Foreign&lt;/span&gt; &lt;span class="k"&gt;Key&lt;/span&gt;
&lt;span class="k"&gt;Primary&lt;/span&gt; &lt;span class="k"&gt;Key&lt;/span&gt;

&lt;span class="n"&gt;Jadvaldagi&lt;/span&gt; &lt;span class="n"&gt;har&lt;/span&gt; &lt;span class="n"&gt;bir&lt;/span&gt; &lt;span class="n"&gt;qatorni&lt;/span&gt; &lt;span class="n"&gt;unikal&lt;/span&gt; &lt;span class="n"&gt;aniqlab&lt;/span&gt; &lt;span class="n"&gt;beradi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="n"&gt;Masalan&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;jadvalidagi&lt;/span&gt; &lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="n"&gt;ustuni&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="n"&gt;Takrorlanmaydi&lt;/span&gt; &lt;span class="n"&gt;va&lt;/span&gt; &lt;span class="n"&gt;bo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt; &lt;span class="n"&gt;bo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;lmaydi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="n"&gt;NVARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="k"&gt;Foreign&lt;/span&gt; &lt;span class="k"&gt;Key&lt;/span&gt;

&lt;span class="n"&gt;Bir&lt;/span&gt; &lt;span class="n"&gt;jadvaldagi&lt;/span&gt; &lt;span class="n"&gt;ustun&lt;/span&gt; &lt;span class="n"&gt;boshqa&lt;/span&gt; &lt;span class="n"&gt;jadvaldagi&lt;/span&gt; &lt;span class="k"&gt;primary&lt;/span&gt; &lt;span class="k"&gt;key&lt;/span&gt; &lt;span class="n"&gt;ga&lt;/span&gt; &lt;span class="n"&gt;ulanadi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="n"&gt;Jadval&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;rtasida&lt;/span&gt; &lt;span class="n"&gt;bog&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;lanish&lt;/span&gt; &lt;span class="n"&gt;yaratadi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;OrderId&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;UserId&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;FOREIGN&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;REFERENCES&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;


&lt;span class="err"&gt;👉&lt;/span&gt; &lt;span class="n"&gt;Bu&lt;/span&gt; &lt;span class="n"&gt;yerda&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt; &lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="n"&gt;ga&lt;/span&gt; &lt;span class="n"&gt;ulanadi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="n"&gt;qiymat&lt;/span&gt;

&lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;qiymat&lt;/span&gt; &lt;span class="n"&gt;yo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;qligi&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;bo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;noma&lt;/span&gt;&lt;span class="err"&gt;’&lt;/span&gt;&lt;span class="n"&gt;lum&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;

&lt;span class="n"&gt;Bu&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="n"&gt;emas&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;bo&lt;/span&gt;&lt;span class="err"&gt;‘&lt;/span&gt;&lt;span class="n"&gt;sh&lt;/span&gt; &lt;span class="n"&gt;string&lt;/span&gt; &lt;span class="n"&gt;emas&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="n"&gt;Masalan&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="err"&gt;→&lt;/span&gt; &lt;span class="n"&gt;yosh&lt;/span&gt; &lt;span class="n"&gt;kiritilmagan&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="k"&gt;NULL&lt;/span&gt; &lt;span class="n"&gt;bilan&lt;/span&gt; &lt;span class="n"&gt;ishlash&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


&lt;span class="err"&gt;👉&lt;/span&gt; &lt;span class="n"&gt;Yoshi&lt;/span&gt; &lt;span class="n"&gt;kiritilmagan&lt;/span&gt; &lt;span class="n"&gt;foydalanuvchilarni&lt;/span&gt; &lt;span class="n"&gt;chiqaradi&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;

&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;JOIN turlari
JOIN — bu ikki yoki undan ortiq jadvallarni bog‘lab, ma’lumotni birlashtirish.
🔹 INNER JOIN
Faqat ikkala jadvalda ham mos keladigan yozuvlarni qaytaradi.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderId&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;
&lt;span class="k"&gt;INNER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Faqat buyurtma qilgan foydalanuvchilar chiqadi.&lt;/p&gt;

&lt;p&gt;🔹 LEFT JOIN&lt;/p&gt;

&lt;p&gt;Chap jadvaldagi hamma yozuvlar chiqadi, o‘ng jadvalda mos kelmasa → NULL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderId&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;
&lt;span class="k"&gt;LEFT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Hamma foydalanuvchilar chiqadi, buyurtmasi bo‘lmasa NULL.&lt;/p&gt;

&lt;p&gt;🔹 RIGHT JOIN&lt;/p&gt;

&lt;p&gt;O‘ng jadvaldagi hamma yozuvlar chiqadi, chap jadvalda mos kelmasa → NULL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderId&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;
&lt;span class="k"&gt;RIGHT&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Hamma buyurtmalar chiqadi, foydalanuvchisi yo‘q bo‘lsa NULL.&lt;/p&gt;

&lt;p&gt;🔹 FULL OUTER JOIN&lt;/p&gt;

&lt;p&gt;Ikkala jadvaldan hamma yozuvlarni qaytaradi, mos kelmasa → NULL.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;OrderId&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;
&lt;span class="k"&gt;FULL&lt;/span&gt; &lt;span class="k"&gt;OUTER&lt;/span&gt; &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;Orders&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;u&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;UserId&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Hamma foydalanuvchilar va hamma buyurtmalar chiqadi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;WHERE va HAVING farqi&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;WHERE → qatorlarni guruhlashdan oldin filtrlash uchun.&lt;/p&gt;

&lt;p&gt;HAVING → GROUP BY’dan keyin filtr qilish uchun.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="c1"&gt;-- WHERE bilan (oddiy filtr)&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;-- HAVING bilan (agregat filtr)&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;CountUsers&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt;
&lt;span class="k"&gt;HAVING&lt;/span&gt; &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Esda qolsin:&lt;br&gt;
WHERE = oddiy shart&lt;br&gt;
HAVING = guruhlangan natijaga shart&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;GROUP BY va ORDER BY GROUP BY
Qatorlarni guruhlaydi va agregat funksiyalar bilan ishlaydi.
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;COUNT&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;CountUsers&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;GROUP&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;👉 Har bir yosh nechta borligini ko‘rsatadi.&lt;br&gt;
ORDER BY&lt;br&gt;
Natijani saralaydi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;kamayish&lt;/span&gt; &lt;span class="n"&gt;buyicha&lt;/span&gt; &lt;span class="n"&gt;tartiblash&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="k"&gt;DESC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;usish&lt;/span&gt; &lt;span class="n"&gt;buyicha&lt;/span&gt; &lt;span class="n"&gt;tartiblash&lt;/span&gt;
&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;ORDER&lt;/span&gt; &lt;span class="k"&gt;BY&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="k"&gt;ASC&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Yosh bo‘yicha kamayish tartibida chiqaradi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Index nima?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Index — bu ma’lumotni tezroq topish uchun maxsus tuzilma (xuddi kitobdagi “alfavit bo‘yicha ko‘rsatkich” kabi).&lt;/p&gt;

&lt;p&gt;Foydasi: SELECT tezlashadi.&lt;/p&gt;

&lt;p&gt;Kamchiligi: INSERT/UPDATE/DELETE sekinlashishi mumkin (chunki index ham yangilanadi).&lt;/p&gt;

&lt;p&gt;CREATE INDEX idx_users_name ON Users(Name);&lt;/p&gt;

&lt;p&gt;👉 Endi WHERE Name = 'Ali' so‘rovi juda tez ishlaydi.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Simple SELECT + Filtering
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;Users&lt;/span&gt;
&lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;Age&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;18&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;Name&lt;/span&gt; &lt;span class="k"&gt;LIKE&lt;/span&gt; &lt;span class="s1"&gt;'A%'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="n"&gt;qaysidur&lt;/span&gt;  &lt;span class="n"&gt;ism&lt;/span&gt; &lt;span class="n"&gt;ni&lt;/span&gt; &lt;span class="n"&gt;olmoqchi&lt;/span&gt; &lt;span class="n"&gt;bulsa&lt;/span&gt; &lt;span class="s1"&gt;'_'&lt;/span&gt; &lt;span class="n"&gt;shunaqa&lt;/span&gt; &lt;span class="n"&gt;belgi&lt;/span&gt; &lt;span class="n"&gt;orqali&lt;/span&gt; &lt;span class="n"&gt;topamiz&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;👉 Bu yerda:&lt;/p&gt;

&lt;p&gt;Faqat Age &amp;gt; 18 bo‘lgan foydalanuvchilar&lt;/p&gt;

&lt;p&gt;Ismi A harfi bilan boshlanuvchilar chiqadi&lt;/p&gt;

&lt;p&gt;📌 Xulosa&lt;/p&gt;

&lt;p&gt;JOIN → jadvallarni bog‘laydi (INNER, LEFT, RIGHT, FULL).&lt;br&gt;
WHERE → oddiy filtr, HAVING → guruhlangan natijaga filtr.&lt;br&gt;
GROUP BY → ma’lumotni guruhlash, ORDER BY → saralash.&lt;br&gt;
Index → tez qidirish uchun “kitobdagi ko‘rsatkich” kabi.&lt;br&gt;
SELECT + WHERE → kerakli ma’lumotni tanlab olish.&lt;/p&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>nosql</category>
      <category>rdbms</category>
    </item>
    <item>
      <title>Rasmlar C# dasturlashga oid</title>
      <dc:creator>Elshod Ibodullayev</dc:creator>
      <pubDate>Wed, 20 Aug 2025 16:31:54 +0000</pubDate>
      <link>https://dev.to/elshoddev/rasmlar-c-dasturlashga-oid-2jda</link>
      <guid>https://dev.to/elshoddev/rasmlar-c-dasturlashga-oid-2jda</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauexsb0923cmtkftgtj0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fauexsb0923cmtkftgtj0.jpg" alt=" " width="800" height="546"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3e1qm1dnhp9rlttdnux5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3e1qm1dnhp9rlttdnux5.jpg" alt=" " width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>dotnet</category>
      <category>architecture</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
