Tür Sağlayıcıları

Bir F# tür sağlayıcısı programınız içinde kullanmanız için türler, özellikler ve yöntemler sağlayan bir bileşendir. Tür Sağlayıcıları, F# derleyicisi tarafından oluşturulan ve bir dış veri kaynağını temel alan Sağlanan Türler olarak bilinenleri üretir.

Örneğin, bir F# Tür Sağlayıcısı SQL ilişkisel veritabanında tabloları ve sütunları temsil eden türler oluşturabilirsiniz. Aslında SQLProvider Tür Sağlayıcısı bunu yapar.

Sağlanan Türler, bir Tür Sağlayıcısının giriş parametrelerine bağlıdır. Bu tür girişler örnek veri kaynağı (JSON şema dosyası gibi), doğrudan dış hizmete işaret ediyor bir URL veya bir veri kaynağına bağlantı dizesi olabilir. Tür Sağlayıcısı ayrıca tür gruplarının yalnızca isteğe bağlı olarak genişletilir; diğer bir ifadeyle, türlerin program tarafından gerçekten başvurulsa genişletilir. Bu çevrimiçi veri marketleri gibi büyük ölçekli bilgi uzaylarının doğrudan, istek anında bütünleştirmesini türü kesin belirlenmiş olarak sağlar.

Genrative ve Erased Type Providers

Tür Sağlayıcıları iki şekilde gelir: Genrative ve Erased.

Genrative Tür Sağlayıcıları, .NET türleri olarak yazıldığı derlemeye yaziltilan türler üretir. Bu, diğer derlemelerde koddan tüketilmelerine olanak sağlar. Bu, veri kaynağının türü yazılabilir gösteriminin genellikle .NET türleriyle temsil etmek için uygun olan bir gösterim olması gerektiğini gösterir.

Tür Sağlayıcıları silinerek, yalnızca oluşturulan derleme veya projede tüketilebilir türler üretir. Türler kısa ömürlüdür; başka bir ifadeyle, bunlar bir derlemeye yazlanmaz ve diğer derlemelerde kod tarafından kullanılamaz. Bunlar gecikmeli üyeler içerebilir ve bu da potansiyel olarak sonsuz bilgi alanıyla sağlanan türleri kullanmanıza olanak sağlar. Bunlar, büyük ve birbirine bağlı bir veri kaynağının küçük bir alt kümesini kullanmak için kullanışlıdır.

Yaygın olarak kullanılan Tür Sağlayıcıları

Aşağıdaki yaygın olarak kullanılan kitaplıklar, farklı kullanımlar için Tür Sağlayıcıları içerir:

  • FSharp.Data, JSON, XML, CSV ve HTML belge biçimleri ve kaynakları için Tür Sağlayıcıları içerir.
  • SQLProvider, bu veri kaynaklarına karşı nesne eşleme ve F# LINQ sorguları aracılığıyla ilişki veritabanlarına kesin türü kesin olarak yazarak erişim sağlar.
  • FSharp.Data.SqlClient, F# içinde T-SQL derleme zamanı işaretli ekleme için bir tür sağlayıcıları kümesine sahip.
  • Azure Depolama Türü sağlayıcısı Azure Bloblar, Tablolar ve Kuyruklar için türler sağlar ve program boyunca kaynak adlarını dize olarak belirtmenize gerek kalmadan bu kaynaklara erişmenize olanak sağlar.
  • FSharp.Data.GraphQL, URL tarafından belirtilen bir GraphQL sunucusunu temel alan türler sağlayan GraphQLProvider'ı içerir.

Gerektiğinde, kendi özel tür sağlayıcılarınızı veya başkalarıtarafından oluşturulmuş başvuru türü sağlayıcılarınızı oluşturabilirsiniz. Örneğin, kuruluşunuz her biri kendi kararlı veri şemasına sahip çok ve artan sayıda adlandırılmış veri kümeleri sağlayan bir veri hizmetine sahip olduğunu varsayın. Şemaları okuyan ve en son kullanılabilir veri kümelerini programcıya türü kesin belirlenmiş bir biçimde sunan bir tür sağlayıcısı oluşturmayı seçebilirsiniz.

Ayrıca bkz.