.NET Framework

**.NET** (əvvəllər **'.NET Core**') — Microsoft və .NET Foundation tərəfindən GitHub üzərindən dəstəklənən, pulsuz, açıq mənbəli və müxtəlif platformalarda (Windows, macOS, Linux, iOS, Android və s.) işləyə bilən proqram təminatı yaratmaq üçün nəzərdə tutulmuş müasir inkişaf platformasıdır. Klassik .NET Framework-ün varisi olaraq, .NET müasir tətbiqlərin – veb saytlar, servislər, masaüstü proqramlar, mobil tətbiqlər, oyunlar, əşyaların interneti (IoT) və süni intellekt (AI) həlləri – inkişafı üçün vahid və geniş imkanlar təklif edir.

Platforma yüksək performans, təhlükəsizlik, geniş kitabxanalar dəsti və C#, F#, VB.NET kimi müasir proqramlaşdırma dillərini dəstəkləməsi ilə seçilir.

## Tarixi
.NET platformasının tarixi 2002-ci ildə .NET Framework 1.0-ın təqdim edilməsi ilə başlayır. İllər ərzində .NET Framework davamlı olaraq təkmilləşdirilmişdir. Lakin platformanın yalnız Windows əməliyyat sistemini dəstəkləməsi və monolitik arxitekturası müasir tələblərə tam cavab vermirdi.

Bu məhdudiyyətləri aradan qaldırmaq məqsədilə Microsoft 2016-cı ildə **`.NET Core`** 1.0-ı təqdim etdi. .NET Core açıq mənbəli, cross-platform (Windows, macOS, Linux) və modul arxitekturalı olaraq dizayn edilmişdi.

2020-ci ildə Microsoft, .NET Framework, .NET Core və Xamarin (mobil inkişaf üçün) texnologiyalarını vahid bir platformada birləşdirən **`.NET 5`**-i buraxdı. Bu, "Core" adının ləğvi və .NET ekosistemində vahid gələcəyə doğru atılmış mühüm bir addım oldu. O vaxtdan bəri hər ilin noyabr ayında yeni əsas versiya (məsələn, .NET 6 LTS, .NET 7, .NET 8 LTS) təqdim olunur.

Bu məhdudiyyətləri aradan qaldırmaq məqsədilə Microsoft 2016-cı ildə **`.NET Core`** 1.0-ı təqdim etdi. .NET Core açıq mənbəli, cross-platform (Windows, macOS, Linux) və modul arxitekturalı olaraq dizayn edilmişdi.

2020-ci ildə Microsoft, .NET Framework, .NET Core və Xamarin (mobil inkişaf üçün) texnologiyalarını vahid bir platformada birləşdirən **`.NET 5`**-i buraxdı. Bu, "Core" adının ləğvi və .NET ekosistemində vahid gələcəyə doğru atılmış mühüm bir addım oldu. O vaxtdan bəri hər ilin noyabr ayında yeni əsas versiya (məsələn, .NET 6 LTS, .NET 7, .NET 8 LTS) təqdim olunur.

## Əsas komponentləri

.NET platforması bir neçə fundamental komponentdən ibarətdir:

*   **Ümumi Dil İcra Mühiti (Common Language Runtime - CLR):** .NET tətbiqlərinin icrasını idarə edən virtual maşındır. CLR yaddaşın idarə edilməsi (avtomatik zibil toplama - Garbage Collection), xətaların idarə olunması (exception handling), təhlükəsizlik yoxlamaları və Just-In-Time (JIT) tərtibatı (IL kodunun maşın koduna çevrilməsi) kimi vacib xidmətləri təmin edir.
*   **.NET Standart Kitabxanası (Base Class Library - BCL):** Proqramçılara geniş funksionallıq təqdim edən standart siniflər, interfeyslər və dəyər tipləri toplusudur. Bura fayl sistemi ilə iş, şəbəkə əməliyyatları, məlumat strukturları (kolleksiyalar), XML emalı, kriptoqrafiya və s. daxildir.
*   **Proqramlaşdırma Dilləri:** .NET platforması bir neçə əsas proqramlaşdırma dilini rəsmi olaraq dəstəkləyir. Bunlardan ən populyarları C#, funksional yanaşmanı təmin edən F# və daha çox Windows mərkəzli layihələrdə istifadə olunan VB.NET-dir.
*   **SDK və Alətlər Dəsti:** .NET SDK (Software Development Kit) tətbiqləri yaratmaq, tərtib etmək, sınaqdan keçirmək və dərc etmək üçün lazım olan bütün alətləri (məsələn, `dotnet` CLI, tərtibçilər) ehtiva edir.

## Çərçivələr və texnologiyalar
.NET, müxtəlif növ tətbiqlərin inkişafı üçün zəngin çərçivə (framework) və texnologiyalar dəsti təqdim edir:

*   **[[ASP.NET Core]]:** Yüksək performanslı, cross-platform veb tətbiqləri, API-lər və mikroxidmətlər yaratmaq üçün istifadə olunur.
*   **[[Entity Framework Core]]:** Məlumat bazaları ilə işləmək üçün müasir, obyekt-relyasiyalı xəritələmə (ORM) çərçivəsidir.
*   **[[.NET MAUI]] (.NET Multi-platform App UI):** C# və XAML istifadə edərək iOS, Android, macOS və Windows üçün vahid kod bazası ilə yerli (native) mobil və masaüstü tətbiqlər yaratmaq üçün istifadə olunan cross-platform çərçivədir (əvvəlki Xamarin.Forms-un təkamülü).
*   **[[Windows Presentation Foundation|WPF]] və [[Windows Forms]]:** Yalnız Windows üçün zəngin istifadəçi interfeysinə malik masaüstü tətbiqlər yaratmaq üçün istifadə olunan klassik texnologiyalardır (.NET Core 3.0-dan etibarən dəstəklənir).
*   **Blazor:** C# və HTML istifadə edərək interaktiv veb istifadəçi interfeysləri (UI) yaratmağa imkan verən texnologiyadır. Həm server tərəfində (Blazor Server), həm də klient tərəfində WebAssembly vasitəsilə (Blazor WebAssembly) işləyə bilir.
*   **[[ML.NET]]:** .NET tətbiqlərinə xüsusi maşın öyrənməsi modelləri inteqrasiya etmək üçün açıq mənbəli və cross-platform çərçivədir.
*   **SignalR:** Veb tətbiqlərinə real vaxt rejimində funksionallıq (məsələn, ani bildirişlər, canlı çat) əlavə etmək üçün kitabxanadır.

## Üstünlükləri

.NET platformasının bir çox əhəmiyyətli üstünlükləri mövcuddur:

*   **Çarpaz Platformalılıq (Cross-Platform):** .NET tətbiqləri Windows, macOS və Linux əməliyyat sistemlərində problemsiz işləyə bilir. .NET MAUI ilə bu dəstək mobil (iOS, Android) və əlavə masaüstü platformalarına da şamil edilir.
*   **Yüksək Performans:** CLR-in JIT tərtibatçısı və optimallaşdırılmış kitabxanalar sayəsində .NET tətbiqləri yüksək icra sürəti təmin edir. Hər yeni versiyada performans daha da təkmilləşdirilir.
*   **Açıq Mənbəlilik:** .NET-in əsas komponentləri (runtime, kitabxanalar, tərtibçilər) MIT və Apache 2.0 kimi açıq mənbə lisenziyaları altında yayımlanır. Bu, geniş icmanın inkişafda iştirakına və şəffaflığa imkan yaradır.
*   **Geniş və Aktiv Ekosistem:** Böyük və dəstəkləyici proqramçı icması, NuGet paket meneceri vasitəsilə əldə edilə bilən zəngin üçüncü tərəf kitabxanaları və güclü alətlər dəsti (məsələn, Microsoft Visual Studio, Visual Studio Code, JetBrains Rider) .NET-i proqram inkişafı üçün cəlbedici edir.
*   **Vahid Platforma:** .NET 5-dən etibarən müxtəlif tətbiq növləri üçün vahid SDK və API dəsti təqdim olunur ki, bu da inkişaf prosesini sadələşdirir.
*   **Təhlükəsizlik:** Platforma daxilində tip təhlükəsizliyi, yaddaş idarəetməsi və digər təhlükəsizlik mexanizmləri mövcuddur.

## İstifadə sahələri
.NET platforması müxtəlif və geniş spektrli tətbiqlərin yaradılması üçün istifadə olunur:

*   **Veb Tətbiqləri və API-lər:** ASP.NET Core istifadə edərək müasir, miqyaslana bilən və yüksək performanslı veb saytlar, veb API-lər və mikroxidmətlər.
*   **Mobil Tətbiqlər:** .NET MAUI (və ya Xamarin) ilə iOS və Android üçün yerli cross-platform mobil tətbiqlər.
*   **Masaüstü Tətbiqləri:** Windows üçün WPF, Windows Forms və cross-platform üçün .NET MAUI ilə müasir və funksional masaüstü proqramlar.
*   **Bulud Əsaslı Tətbiqlər:** Microsoft Azure, AWS, GCP kimi bulud platformalarında işləyən, miqyaslana bilən və etibarlı tətbiqlər.
*   **Oyun İnkişafı:** Populyar Unity oyun mühərriki əsas skript dili olaraq C#-ı dəstəkləyir.
*   **Süni İntellekt və Maşın Öyrənməsi:** ML.NET kitabxanası və digər kitabxanalarla (məsələn, TensorFlowSharp, ONNX Runtime) inteqrasiya vasitəsilə.
*   **Əşyaların İnterneti (IoT):** .NET IoT kitabxanaları ilə müxtəlif IoT cihazları üçün proqram təminatı.

## Gələcəyi
Microsoft .NET platformasını aktiv şəkildə inkişaf etdirməyə və dəstəkləməyə davam edir. Hər il buraxılan yeni versiyalar platformaya müasir funksionallıqlar əlavə edir, performansı artırır və ən son texnoloji trendlərə uyğunlaşdırır. Bulud texnologiyaları, serverless arxitekturalar, süni intellekt və kvant hesablamaları kimi sahələrlə daha dərin inteqrasiya .NET-in gələcəkdə də relevant və güclü bir platforma olaraq qalacağını göstərir.

## Həmçinin bax
*   .NET Framework (Klassik versiya)
*   Common Language Runtime (CLR)
*   C#
*   F#
*   VB.NET
*   ASP.NET Core
*   .NET MAUI
*   Entity Framework Core
*   Microsoft Visual Studio
*   Microsoft
*   Açıq mənbəli proqram təminatı

## İstinadlar