NuGet Paket Yönetimi: Projeye Harici Kütüphane Ekleme

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.JsonJSON verilerini C# nesnelerine dönüştürme (Mapping).
Entity Framework CoreVeritabanı işlemleri (ORM).
SerilogProfesyonel günlük tutma (Logging).
RestSharpDış API'lere HTTP istekleri gönderme.
FluentValidationVeri 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.
 
Geri
Üst