Zprostředkovatelé typů

Poskytovatel typů jazyka F# je komponenta, která poskytuje typy, vlastnosti a metody pro váš program. Poskytovatelé typů generují to, co se označuje jako poskytované typy, které jsou generovány kompilátorem jazyka F# a jsou založeny na externím zdroji dat.

Například poskytovatel typů F# pro SQL může generovat typy představující tabulky a sloupce v relační databázi. Ve skutečnosti to dělá zprostředkovatel typu SQLProvider .

Zadané typy závisí na vstupních parametrech poskytovatele typů. Takovým vstupem může být ukázkový zdroj dat (například soubor schématu JSON), adresa URL odkazující přímo na externí službu nebo připojovací řetězec na zdroj dat. Zprostředkovatel typů může také zajistit, aby se skupiny typů rozšířily pouze na vyžádání. To znamená, že jsou rozbaleny, pokud jsou typy skutečně odkazovány vaším programem. To umožňuje přímou integraci rozsáhlých informačních prostorů přístupných na vyžádání, jako jsou například online datové trhy, způsobem využívajícím silné typy.

Zprostředkovatelé generativních a vymazaných typů

Poskytovatelé typů mají dvě podoby: Generative (Generování) a Erased (Vymazané).

Zprostředkovatelé generativních typů vytvářejí typy, které lze zapsat jako typy rozhraní .NET do sestavení, ve kterém jsou vytvořeny. To umožňuje jejich použití z kódu v jiných sestaveních. To znamená, že typová reprezentace zdroje dat musí být obecně ta, která je s typy .NET proveditelná.

Vymazání zprostředkovatelů typů vytváří typy, které lze použít pouze v sestavení nebo projektu, ze které jsou generovány. Typy jsou dočasné. To znamená, že nejsou zapsány do sestavení a nelze je využívat kódem v jiných sestaveních. Mohou obsahovat zpožděné členy, což vám umožní používat poskytované typy z potenciálně nekonečného informačního prostoru. Jsou užitečné pro použití malé podmnožiny velkého a propojeného zdroje dat.

Běžně používané zprostředkovatele typů

Následující běžně používané knihovny obsahují zprostředkovatele typů pro různá použití:

  • FSharp.Data zahrnuje zprostředkovatele typů pro formáty a prostředky dokumentů JSON, XML, CSV a HTML.
  • SQLProvider poskytuje přístup k relačním databázím se silnými typy prostřednictvím mapování objektů a dotazů JAZYKa F# LINQ na tyto zdroje dat.
  • FSharp.Data.SqlClient obsahuje sadu zprostředkovatelů typů pro vkládání T-SQL v F# za kompilace.
  • Azure Storage Type poskytuje typy pro objekty blob, tabulky a fronty Azure, což vám umožní přistupovat k těmto prostředkům, aniž byste potřebovali zazadat názvy prostředků jako řetězce v rámci programu.
  • FSharp.Data.GraphQL obsahuje poskytovatele GraphQLProvider, který poskytuje typy založené na serveru GraphQL určeném adresou URL.

V případě potřeby můžete vytvořit vlastní zprostředkovatele typů nebo odkazovat na zprostředkovatele typů, které vytvořili jiní uživatelé. Předpokládejme například organizaci, která má datovou službu poskytující velké a zvyšující se množství pojmenovaných datových sad, přičemž každá z nich má vlastní stabilní schéma dat. Můžete vytvořit poskytovatele typů, který schémata přečte a nabídne programátorům nejnovější dostupné datové sady se silnými typy.

Viz také