crazy_coder
Moderatör
- Katılım
- 20 Şub 2026
- Mesajlar
- 204
- Tepkime puanı
- 0
- Puanları
- 16
NuGet: .NET İçin Paket Yönetim Rehberi
NuGet, .NET ekosisteminin resmi paket yöneticisidir. Geliştiricilerin diğer geliştiriciler tarafından oluşturulmuş açık kaynaklı veya özel kütüphaneleri projelerine kolayca indirmesini, güncellemesini ve yönetmesini sağlar.
1. NuGet Nasıl Çalışır?
NuGet, bir paket sunucusu (genellikle nuget.org) ile sizin projeniz arasında bir köprüdür. Bir paket yüklediğinizde, NuGet sadece o kütüphaneyi değil, o kütüphanenin çalışması için gereken diğer tüm alt paketleri (bağımlılıkları) de otomatik olarak indirir.
2. Paket Yükleme Yöntemleri
Visual Studio içinde bir paket eklemek için üç ana yolunuz vardır:
[]UI (Görsel Arayüz): Projeye sağ tıklayıp "Manage NuGet Packages..." diyerek arama yapabilir ve "Install" butonuna basabilirsiniz.
[]Package Manager Console: PowerShell benzeri bu konsola Install-Package Newtonsoft.Json yazarak yükleme yapabilirsiniz.- Dotnet CLI: Terminal üzerinden dotnet add package Newtonsoft.Json komutunu kullanabilirsiniz.
3. Bağımlılık Yönetimi (Dependencies)
Yüklediğiniz paketler projenizin .csproj dosyasına kaydedilir. Bu sayede projenizi başka bir arkadaşınıza gönderdiğinizde, devasa kütüphane dosyalarını (DLL) göndermenize gerek kalmaz. Arkadaşınız projeyi açtığında NuGet tüm paketleri otomatik olarak internetten geri yükler (Restore).
XML:
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="AutoMapper" Version="12.0.1" />
</ItemGroup>
4. En Popüler NuGet Paketlerinden Bazıları
| Paket Adı | Kullanım Amacı |
|---|---|
| Newtonsoft.Json | JSON verilerini C# nesnelerine dönüştürme (Mapping). |
| Entity Framework Core | Veritabanı işlemleri (ORM). |
| Serilog | Profesyonel günlük tutma (Logging). |
| RestSharp | Dış API'lere HTTP istekleri gönderme. |
| FluentValidation | Veri doğrulama kuralları. |
5. Dikkat Edilmesi Gerekenler: Versiyon Çakışmaları
Bazen iki farklı paket, aynı kütüphanenin farklı versiyonlarını kullanmak isteyebilir. Buna "Bağımlılık Cehennemi" (Dependency Hell) denir. NuGet, Semantic Versioning (Anlamsal Versiyonlama) kullanarak bu çakışmaları çözmeye çalışır. Bir paketi güncellerken "Breaking Changes" (kırıcı değişiklikler) olup olmadığını kontrol etmek her zaman iyi bir alışkanlıktır.
Sonuç
NuGet kullanmadan modern bir .NET projesi geliştirmek neredeyse imkansızdır. Binlerce geliştiricinin tecrübesinden faydalanmak ve projenize gelişmiş özellikler katmak için NuGet'i etkin bir şekilde kullanmayı öğrenmelisiniz.