Aracılığıyla paylaş


.NET sınıf kitaplıkları

Sınıf kitaplıkları .NET için paylaşılan kitaplık kavramıdır. Bunlar, yararlı işlevleri birden çok uygulama tarafından kullanılabilecek modüller halinde bileşen hale getirebilmenizi sağlar. Bunlar ayrıca, uygulama başlangıcında gerekmeyen veya bilinmeyen işlevleri yükleme aracı olarak da kullanılabilir. Sınıf kitaplıkları .NET Derleme dosya biçimi kullanılarak açıklanmıştır.

Kullanabileceğiniz üç tür sınıf kitaplığı vardır:

  • Platforma özgü sınıf kitaplıkları belirli bir platformdaki tüm API'lere (örneğin, Windows, Xamarin iOS üzerinde .NET Framework) erişebilir, ancak yalnızca bu platformu hedefleyen uygulamalar ve kitaplıklar tarafından kullanılabilir.
  • Taşınabilir sınıf kitaplıkları, API'lerin bir alt kümesine erişebilir ve birden çok platformu hedefleyen uygulamalar ve kitaplıklar tarafından kullanılabilir.
  • .NET Standart sınıf kitaplıkları, platforma özgü ve taşınabilir kitaplık kavramının, her ikisinde de en iyisini sağlayan tek bir modelde birleştirilmesidir.

Platforma özgü sınıf kitaplıkları

Platforma özgü kitaplıklar tek bir .NET platformuna (örneğin, Windows üzerinde .NET Framework) bağlıdır ve bu nedenle bilinen bir yürütme ortamına önemli bağımlılıklar alabilir. Böyle bir ortam, bilinen bir API kümesini (.NET ve işletim sistemi API'leri) kullanıma sunar ve beklenen durumu (örneğin, Windows kayıt defteri) korur ve kullanıma sunar.

Platforma özgü kitaplıklar oluşturan geliştiriciler, temel alınan platformdan tamamen yararlanabilir. Kitaplıklar yalnızca belirli bir platformda çalışır ve platform denetimlerini veya diğer koşullu kod biçimlerini gereksiz hale getirir (birden çok platform için modlu tek kaynak kodu).

Platforma özgü kitaplıklar .NET Framework için birincil sınıf kitaplık türü olmuştur. Diğer .NET uygulamaları ortaya çıksa bile platforma özgü kitaplıklar baskın kitaplık türü olmaya devam etti.

Taşınabilir sınıf kitaplıkları

Taşınabilir kitaplıklar birden çok .NET uygulamasında desteklenir. Yine de bilinen bir yürütme ortamına bağımlılıkları alabilirler, ancak ortam, bir dizi somut .NET uygulamasının kesişimiyle oluşturulan yapay bir ortamdır. Kullanıma sunulan API'ler ve platform varsayımları, platforma özgü bir kitaplıkta kullanılabilenlerin bir alt kümesidir.

Taşınabilir kitaplık oluştururken bir platform yapılandırması seçersiniz. Platform yapılandırması, desteklemeniz gereken platform kümesidir (örneğin, .NET Framework 4.5+, Windows Telefon 8.0+). Ne kadar çok platformu desteklemeyi tercih ettiyseniz, o kadar az API ve daha az platform varsayımı yapabilirsiniz, en düşük ortak paydadır. Bu özellik ilk başta kafa karıştırıcı olabilir, çünkü insanlar genellikle "daha fazlasının daha iyi" olduğunu düşünür, ancak daha fazla desteklenen platformların daha az kullanılabilir API ile sonuçlandığını fark eder.

Birçok kitaplık geliştiricisi, bir kaynaktan (koşullu derleme yönergelerini kullanarak) platforma özgü birden çok kitaplık üretmekten taşınabilir kitaplıklara geçiş yaptı. Bu noktada en yaygın kabul edilen teknik olan yem ve anahtar ile taşınabilir kitaplıklarda platforma özgü işlevlere erişmek için çeşitli yaklaşımlar vardır.

.NET Standart sınıf kitaplıkları

.NET Standart kitaplıkları, platforma özgü ve taşınabilir kitaplık kavramlarının yerini alır. Bunlar, temel alınan platformdaki tüm işlevleri (yapay platformlar veya platform kesişimleri olmadan) kullanıma sunmaları anlamında platforma özeldir. Tüm destekleyici platformlarda çalıştıkları için taşınabilirler.

.NET Standard, bir dizi kitaplık sözleşmesini kullanıma sunar. .NET uygulamaları her sözleşmeyi tam olarak desteklemeli veya hiç desteklememelidir. Bu nedenle her uygulama bir dizi .NET Standard sözleşmesini destekler. Corollary, her .NET Standard sınıf kitaplığının sözleşme bağımlılıklarını destekleyen platformlarda desteklenmesidir.

.NET Standard, .NET Framework'ün tüm işlevselliğini kullanıma sunmaz (hedef de değildir), ancak kitaplıklar Taşınabilir Sınıf Kitaplıklarından çok daha fazla API'yi kullanıma sunar.

Aşağıdaki uygulamalar .NET Standart kitaplıklarını destekler:

  • .NET Core
  • .NET Framework
  • Mono
  • Evrensel Windows Platformu (UWP)

Daha fazla bilgi için bkz . .NET Standard.

Mono sınıf kitaplıkları

Sınıf kitaplıkları, daha önce açıklanan üç kitaplık türü de dahil olmak üzere Mono'da desteklenir. Mono genellikle .NET Framework'ün platformlar arası bir uygulaması olarak görüntülenir. Bunun nedeni kısmen platforma özgü .NET Framework kitaplıklarının Mono çalışma zamanında değişiklik veya yeniden derleme olmadan çalışabilmesidir. Bu özellik taşınabilir sınıf kitaplıkları oluşturulmadan önce vardı, bu nedenle .NET Framework ile Mono arasında ikili taşınabilirliği etkinleştirmek için belirgin bir seçimdi (ancak yalnızca bir yönde çalışıyordu).