projeniz için NuGet paketlerini bulma ve değerlendirme

herhangi bir .net projesi başlatırken veya uygulamanız veya hizmetiniz için bir işlevsel ihtiyacı her belirlediğinizde, bu ihtiyacı karşılayan mevcut NuGet paketlerini kullanarak kendinize ait birçok zaman ve sorunu kaydedebilirsiniz. Bu paketler, NuGet.orgüzerindeki genel koleksiyondan veya kuruluşunuz ya da başka bir üçüncü taraf tarafından sunulan özel bir kaynaktan gelebilir.

Paketleri bulma

Visual Studio veya Paket Yöneticisi kullanıcı arabirimini ziyaret ettiğinizde, yeniden dengeleyerek sıralanan paketlerin bir listesini görürsünüz. Bu, tüm .NET projeleri genelinde en yaygın olarak kullanılan paketleri gösterir. Bu paketlerin bazılarının kendi projeleriniz için yararlı olabileceğinden iyi bir fikir var!

En popüler paketleri gösteren nuget.org/packages varsayılan görünümü

Nuget.org üzerinde, sayfanın sağ üst kısmındaki filtre düğmesine dikkat edin. Tıklandığında, gelişmiş arama paneli, sıralama ve filtreleme seçeneklerini sunmak üzere genişletilir.

Nuget.org üzerinde ' JSON ' için arama sonuçları

Belirli bir türün paketlerini göstermek için paket türü filtresini kullanabilirsiniz:

  • All types: Bu, varsayılan davranıştır. Türlerine bakılmaksızın tüm paketleri gösterir.
  • Dependency: projenize yüklenebilen, düzenli NuGet paketleri.
  • .NET tool: bu, bir konsol uygulaması içeren NuGet paketi olan .NET toolfiltre uygular.
  • Template: Bu, komutunu kullanarak yeni projeler oluşturmak için kullanılabilen Templatefiltre uygular dotnet new .

Arama sonuçlarını sıralamak için sıralama ölçütü seçeneğini kullanabilirsiniz:

  • Relevance: Bu, varsayılan davranıştır. Sonuçları bir iç Puanlama algoritmasına göre sıralar.
  • Downloads: Arama sonuçlarını, Toplam indirme sayısına göre azalan sırayla sıralar.
  • Recently updated: Arama sonuçlarını, en son sürümünün oluşturulma tarihine göre azalan kronolojik düzende sıralar.

Seçenekler bölümünde, onay kutusunu bulabilirsiniz. İşaretlendiğinde, nuget.org ön sürümler dahil tüm paketlerin sürümlerini gösterir. Yalnızca kararlı sürümleri göstermek için seçeneği temizleyin.

Arama filtrelerini uygulamak için Apply düğmeye tıklayın. Düğmeye tıklayarak her zaman varsayılan davranışa geri dönebilirsiniz Reset .

Etiketleri, sahipleri ve paket kimliklerini filtrelemek için arama sözdizimini de kullanabilirsiniz.

Paket, projem 'ın hedef çerçevesini destekliyor mu?

NuGet, bir paketi yalnızca paketin desteklenen çerçeveleri projenin hedef çerçevesini içeriyorsa bir projeye kurar. paket uyumlu değilse, NuGet bir hata verir.

Bazı paketler desteklenen çerçeveleri doğrudan nuget.org galerisinde listeler, ancak bu tür veriler gerekli olmadığından birçok paket bu listeyi içermez. mevcut olduğunda, belirli bir hedef framework 'ü destekleyen paketler için nuget.org araması yapmanız gerekir (bu özellik göz önünde bulundurulmalıdır. NuGet sorunu 2936).

Neyse ki, desteklenen çerçeveleri iki farklı yöntemle de belirleyebilirsiniz:

  1. NuGet Paket Yöneticisi konsolundaki komutunu kullanarak bir projeye paket yüklemeyi deneyin Install-Package . Paket uyumsuzsa, bu komutta paketin desteklenen çerçeveleri gösterilir.

  2. Bilgialtında el ile indirme bağlantısını kullanarak paketi NuGet.org sayfasındaki sayfasından indirin. Uzantısını .nupkg olarak değiştirin .zip ve klasörünün içeriğini incelemek için dosyayı açın lib . Her bir alt klasörün bir hedef çerçeve adıyla (tfd; bkz. hedef çerçeveler) adlandırılmış olduğu her bir desteklenen çerçeve için alt klasörler görürsünüz. libVe yalnızca tek BIR DLL altında alt klasör yoksa, uyumluluğunu öğrenmek için bu paketi projenize yüklemeyi denemeniz gerekir.

Yayın öncesi paketler

Birçok paket yazarı, önizleme ve Beta yayınları, en son düzeltmelerinde iyileştirmeler yapmaya ve geri bildirimde bulunmalarına devam ederken kullanılabilir hale getirir.

Nuget.org, varsayılan olarak, arama sonuçlarında yayın öncesi paketleri gösterir. Yalnızca kararlı sürümlerde arama yapmak için, sayfanın sağ üst kısmındaki filtre düğmesinden erişilebilen gelişmiş arama panelinde, ön sürümü dahil et seçeneğini temizleyin

Nuget.org üzerine yayın öncesi onay kutusunu Ekle

Visual Studio ve NuGet ve dotnet clı araçlarını kullanırken, NuGet yayın öncesi sürümleri varsayılan olarak içermez. Bu davranışı değiştirmek için aşağıdaki adımları uygulayın:

  • Visual Studio kullanıcı arabirimi Paket Yöneticisi: NuGet paketleri yönetme kullanıcı arabiriminde, ön sürümü dahil et kutusunu belirleyin. bu kutuyu ayarlama veya temizleme, Paket Yöneticisi kullanıcı arabirimini ve yükleyebileceğiniz sürümlerin listesini yeniler.

    Visual Studio yayın öncesi ekle onay kutusu

  • Paket Yöneticisi konsolu:,,, Find-PackageGet-PackageInstall-PackageSync-Package ve Update-Package komutlarıyla anahtarı kullanın. PowerShell başvurusunabakın.

  • CLInuget.exe:,, installupdatedelete ve komutlarıyla anahtarı kullanın mirror . NuGet clı başvurusuna bakın

  • Clıdotnet.exe: bağımsız değişkenini kullanarak tam yayın öncesi sürümü belirtin . DotNet paket başvurusu Ekle' ye başvurun.

Yerel C++ paketleri

NuGet, Visual Studio c++ projelerinde kullanılabilecek yerel c++ paketlerini destekler. bu, projeler için NuGet paketlerini yönet bağlam menüsü komutunu sağlar, bir hedef çerçeve sunar ve MSBuild tümleştirme sağlar.

NuGet.orgüzerindeki yerel paketleri bulmak için kullanarak arama yapın . bu tür paketler genellikle .targets.props , bir projeye paket eklendiğinde NuGet otomatik olarak içeri aktardığı ve dosyalarını sağlar.

Paketler değerlendiriliyor

Bir paketin kullanışlılığını değerlendirmek için en iyi yol, bunu indirmek ve kodunuzda denemek (nuget.org üzerindeki tüm paketler düzenli olarak virüsler için taranır). Her ne kadar popüler olan her paket, kendisini kullanan birkaç geliştirici ile başlatılır ve ilk benimseyenlerden biri olabilirsiniz!

aynı zamanda, bir NuGet paketinin kullanılması, bunun sağlam ve güvenilir olduğundan emin olmak için buna bir bağımlılık alınması anlamına gelir. Bir paketin yüklenmesi ve doğrudan sınanması zaman alıcı olduğundan, bir paketin liste sayfasındaki bilgileri kullanarak bir paketin kalitesi hakkında çok fazla bilgi edinebilirsiniz:

  • İndirmeler istatistikleri: NuGet.org üzerindeki paket sayfasında, İstatistikler bölümünde Toplam indirme, en son sürüm indirmeleri ve günde ortalama indirme işlemleri gösterilir. Daha büyük sayılar, diğer birçok geliştiricinin pakete bağımlılığı olduğunu, yani kendini kanıtlamış olduğunu gösterir.

    Bir paketin listeleme sayfasına istatistik yükleme

  • kullanan: paket sayfasında, bu pakete bağımlı olan en popüler 5 NuGet. kuruluş paketleri ve popüler GitHub depoların kullanıldığı bölümü listelenir. Bu pakete bağımlı paketlere ve depoya bu paketin "bağımlıları" adı verilir. Bağımlı paketler ve depolar bu paketin "onaylama" olarak görülebilir, çünkü paket yazarları güvenmeyi ve buna bağımlı olur.

    • Bağımlı bir paket, bu paketin en son kalıcı listelenen sürümündeherhangi bir sürümüne bağlı olmalıdır. Bu tanım, görüntülenen bağımlı paketlerin, güvenilir ve bu pakete bağımlı olan paket yazarının güncel bir yansıması olmasını sağlar. Ön sürüm bağımlılıkları henüz tam olarak düşünülmemiş olduklarından listelenmez. Örnekler için aşağıdaki tabloya bakın:

      Sürümleri paketleyin A paketi B paketi 'ne bağlı olarak listelendi mi?
      v 1.0.0
      v 1.1.0 (en son kararlı)-- > Paket B
      v 1.2.0-Önizleme
      DOĞRU, en son kararlı sürüm B paketine bağlıdır
      v 1.0.0-- > Paket B
      v 1.1.0 (en son kararlı)
      v 1.2.0-Önizleme
      YANLıŞ, en son kararlı sürüm B paketine bağlı değildir
      v 1.0.0-- > Paket B
      v 1.1.0 (en son kararlı)
      v 1.2.0-Önizleme-- > Paket B
      YANLıŞ, en son kararlı sürüm B paketine bağlı değildir
    • GitHub deponun yıldız sayısı genellikle bu deponun ne GitHub kadar popüler olduğunu gösterir (daha fazla yıldız genellikle daha popüler anlamına gelir). GitHub yıldızı ve depo derecelendirme sistemi hakkında daha fazla bilgi için lütfen GitHub başlarken sayfasını ziyaret edin.

      Kullanan

      Not

      bölüm tarafından kullanılan bir paket, tek tek depoların insan tarafından gözden geçirilmeksizin otomatik olarak, düzenli aralıklarla ve yalnızca NuGet. kuruluş paketleri ve pakete bağlı olan popüler GitHub depoları göstermek için yalnızca bilgilendirme amacıyla oluşturulur.

  • Sürüm geçmişi: Paket sayfasında, en son güncelleştirme tarihi için bilgi ' yi arayın ve sürüm geçmişiniinceleyin. İyi tutulan bir pakette, son güncelleştirmeler ve zengin bir sürüm geçmişi bulunur. İhmal edilen paketlerin birkaç güncelleştirmesi vardır ve genellikle bir süre güncelleştirilmemiş demektir.

    Bir paketin listeleme sayfasında sürüm geçmişi

  • Son yüklemeler:Paket sayfasındaki İstatistikler'in altındaTam istatistikleri görüntüle'yi seçin. Tam istatistikler sayfasında, son altı hafta içinde sürüm numarasına göre paket yüklemeleri görüntülenir. Diğer geliştiricilerin etkin olarak kullanmakta olduğu bir paket genellikle kullanmayan paketlerden daha iyi bir seçimdir.

  • Destek:Paket sayfasında, yazarınhangi destek seçeneklerini Project siteyi (varsa) seçin. Ayrılmış bir siteye sahip bir proje genellikle daha iyi de desteklemektedir.

  • Geliştirici geçmişi:Sahipler'in altındaki paket sayfasında,yayımladığı diğer paketleri görmek için bir sahip seçin. Birden çok paketi olanların gelecekte çalışmalarını desteklemeye devam edecekleri daha olasıdır.

  • Açık kaynak katkıları:Birçok paket açık kaynak depolarda tutularak geliştiricilere bağlı olarak hata düzeltmeleri ve özellik geliştirmelerine doğrudan katkıda bulunmalıdır. Herhangi bir paketin katkı geçmişi, etkin olarak katılan geliştirici sayısına da iyi bir göstergedir.

  • Sahiplere söyle:Yeni geliştiriciler, kullanabileceğiniz harika paketler üretmeye de aynı şekilde bağlı olabilir ve onlara yeni bir şey getirerek yeni bir ekosistem NuGet olabilir. Bu nedenle, listeleme sayfasındaki Bilgiler'in altındaki Kişi Sahipleri seçeneği aracılığıyla doğrudan paket geliştiricilerine ulaşın. Büyük olasılıkla, ihtiyaçlarınıza hizmet vermek için birlikte çalışmaktan memnun olacak!

  • Ayrılmış Paket Kimliği Ön Ekleri:birçok paket sahibi için uygulandı ve ayrılmış paket kimliği ön eki verildi. nuget.orgveya Visual Studio'da bir paket kimliğinin yanında görsel onay işareti gördüğünüzde, paket sahibi kimlik ön eki ayırma ölçütlerimizi karşılar. Bu, paket sahibinin kendisini ve paketini tanımlama konusunda net olduğu anlamına gelir.

Not

Bir paketin lisans koşullarına her zaman dikkat edin. Bu koşulları, uygulama sayfasındaki bir paketin listeleme sayfasında Lisans Bilgileri'nuget.org. Bir paket lisans koşullarını belirtmezseniz, paket sayfasındaki İlgili kişi sahipleri bağlantısını kullanarak doğrudan paket sahibiyle iletişime geçin. Microsoft, üçüncü taraf paket sağlayıcılarından size hiçbir fikri mülkiyet lisansına sahip değildir ve üçüncü taraflar tarafından sağlanan bilgilerden sorumlu değildir.

Lisans URL'sini kullanım dışı

licenseUrl'den lisansa geçiş NuGet bazı istemci ve NuGet akışları henüz bazı durumlarda lisans bilgilerini ortaya çıkarama özelliğine sahip değildir. Geriye dönük uyumluluğu korumak için, lisans URL'si bu belgeye bu tür durumlarda lisans bilgilerini alma hakkında bilgi sağlar.

Bir paketin lisans URL'sini tıklamak sizi bu sayfaya getirdiyse, paketin bir lisans dosyası içerdiği anlamına gelir ve

  • Henüz yeni lisans bilgilerini yorumlamayı ve istemciye ortaya çıkarma hakkında bilgi sahibi olmadığınız bir akışa bağlanın veya
  • Henüz akış veya tarafından sağlanabilecek yeni lisans bilgilerini yorumlamayı ve okumayı bilmiyor bir istemci kullanıyorsanız
  • Her ikisinin birleşimi

Paketin içindeki lisans dosyasında yer alan bilgileri şu şekilde okuyabilirsiniz:

  1. NuGet paketini indirin ve içeriğini bir klasöre açın.
  2. Bu .nuspec klasörün kökünde yer alan dosyasını açın.
  3. gibi bir etiketi olması <license type="file">license\license.txt</license> gerekir. Bu, lisans dosyasının adlandırılmış olduğunu ve bu dosyanın, bu klasörün kökünde de yer alan adlı license.txt bir klasörün içinde olduğunu license belirtir.
  4. klasörüne license gidin ve dosyayı license.txt açın.

lisansının MSBuild eşdeğeri için, Lisans ifadesi paketleme veya bir lisans dosyası .nuspec.nuspec

Arama Söz Dizimi

Nuget.org CLI'NuGet ve NuGet Paket Yöneticisi uzantısında Visual Studio arama sorguları aynı söz dizimi kullanır. Genel olarak, arama anahtar sözcüklere ve paket açıklamalarına uygulanır.

  • Gelişmiş Filtreleme:(büyük/küçük harfe duyarlı olmayan) , , , ve gibi söz dizimlerini kullanarak belirli bir özelikte arama terimi <property>idpackageidversiontitletagsauthordescriptionsummaryowner uygulayabilirsiniz. Aynı anda birden çok özellik arayabilirsiniz. özelliğinde yapılan aramalar alt dize eşleşmeleri, ise tam olarak büyük/harfe id duyarlı olmayan bir eşleşme packageidowner kullanır. Örnekler:
PackageId:jquery             # Match the package ID in an exact, case-insensitive manner

owner:microsoft              # Match the owner in an exact, case-insensitive manner

id:NuGet.Core                # Match any part of the ID property
Id:"Nuget.Core"
ID:jQuery
id:jquery id:ui              # Search for multiple terms in the ID
id:jquery tags:validation    # Search multiple properties

invalid:jquery ui            # Unsupported properties are ignored, so this
                             # is the same as searching on ui

Not

Bu gelişmiş filtreleme söz dizimi, nuget.org. Paket Deposu gibi Azure Artifacts GitHub paket kaynakları farklı söz dizimi kullanabilir veya gelişmiş filtrelemeyi desteklemeyebilirsiniz.