Dostawcy typów

Dostawca typów języka F# to składnik, który dostarcza typy, właściwości i metody używane w programie. Dostawcy typów generują typy znane jako Typy dostarczone, które są generowane przez kompilator języka F# i są oparte na zewnętrznym źródle danych.

Na przykład dostawca typów języka F# dla SQL może generować typy reprezentujące tabele i kolumny w relacyjnej bazie danych. W rzeczywistości to właśnie robi dostawca typów SQLProvider .

Podane typy zależą od parametrów wejściowych dostawcy typów. Takie dane wejściowe mogą być przykładowym źródłem danych (takim jak plik schematu JSON), adresem URL, który bezpośrednio wskaże usługę zewnętrzną, lub parametrów połączenia ze źródłem danych. Dostawca typów może również upewnić się, że grupy typów są rozszerzane tylko na żądanie; oznacza to, że są one rozwinięte, jeśli typy są faktycznie przywołyne przez program. Umożliwia to bezpośrednią integrację na żądanie przestrzeni informacji o wielkiej skali, takich jak sieciowe rynki danych, w sposób silnie typizowany.

Dostawcy typów generytywnych i wymazanych

Dostawcy typów są dostępne w dwóch formach: Generative (Generowanie) i Erased (Wymazane).

Dostawcy typów generujących generują typy, które mogą być zapisywane jako typy .NET w zestawie, w którym są one produkowane. Dzięki temu mogą być używane z kodu w innych zestawach. Oznacza to, że typowana reprezentacja źródła danych zwykle musi być taka, która jest możliwa do reprezentowania za pomocą typów .NET.

Dostawcy typów wymazania generują typy, które mogą być używane tylko w zestawie lub projekcie, z których są generowane. Typy są efemeracyjne; oznacza to, że nie są one zapisywane w zestawie i nie mogą być używane przez kod w innych zestawach. Mogą one zawierać opóźnione elementy członkowskie, co pozwala na używanie dostarczonych typów z potencjalnie nieskończonej przestrzeni informacyjnej. Są one przydatne w przypadku używania niewielkiego podzestawu dużego i połączonego źródła danych.

Często używani dostawcy typów

Następujące powszechnie używane biblioteki zawierają dostawców typów do różnych zastosowań:

  • Plik FSharp.Data obejmuje dostawców typów dla formatów i zasobów dokumentów JSON, XML, CSV i HTML.
  • Obiekt SQLProvider zapewnia silnie typizowany dostęp do relacyjnych baz danych za pośrednictwem mapowania obiektów i zapytań LINQ języka F# względem tych źródeł danych.
  • Obiekt FSharp.Data.SqlClient ma zestaw dostawców typów dla sprawdzonego w czasie kompilacji osadzania funkcji T-SQL w języku F#.
  • Dostawca typów Storage Azure udostępnia typy dla obiektów blob, tabel i kolejek platformy Azure, umożliwiając dostęp do tych zasobów bez konieczności określania nazw zasobów jako ciągów w całym programie.
  • Plik FSharp.Data.GraphQL zawiera obiektu GraphQLProvider, który udostępnia typy oparte na serwerze GraphQL określonym przez adres URL.

W razie potrzeby można tworzyć własnych dostawców typów niestandardowych lub dostawców typów referencyjnych utworzonych przez inne osoby. Na przykład organizacja ma usługę danych dostarczającą dużą i rosnącą liczbę nazwanych zestawów danych, z których każdy ma własny stabilny schemat danych. Można utworzyć dostawcę typów, który odczytuje te schematy i przedstawia programiście najnowsze dostępne zestawy danych w sposób mocno typizowany.

Zobacz też