Partager via


Fournisseurs de type

Un fournisseur de types F# est un composant qui fournit des types, des propriétés et des méthodes à utiliser dans votre programme. Les fournisseurs de types génèrent ce qui est appelé Types fournis, générés par le compilateur F# et basés sur une source de données externe.

Par exemple, un fournisseur de types F# pour SQL peut générer des types représentant des tables et des colonnes dans une base de données relationnelle. En fait, c’est ce que fait le fournisseur de types SQLProvider .

Les types fournis dépendent des paramètres d’entrée d’un fournisseur de types. Cette entrée peut être un exemple de source de données (par exemple, un fichier de schéma JSON), une URL pointant directement vers un service externe ou une chaîne de connexion à une source de données. Un fournisseur de types peut également s’assurer que les groupes de types ne sont développés qu’à la demande ; autrement dit, ils sont développés si les types sont réellement référencés par votre programme. Cela permet l’intégration directe et à la demande d’espaces d’information à grande échelle tels que les marchés de données en ligne de manière fortement typée.

Fournisseurs de types génératifs et effacés

Les fournisseurs de types existent sous deux formes : générative et effacée.

Les fournisseurs de types génératifs produisent des types qui peuvent être écrits en tant que types .NET dans l’assembly dans lequel ils sont produits. Ceci permet leur consommation à partir du code dans d’autres assemblys. Cela signifie que la représentation typée de la source de données doit généralement être une représentation possible avec des types .NET.

Les fournisseurs de types d’effacement produisent des types qui peuvent être consommés seulement dans l’assembly ou le projet à partir duquel ils sont générés. Les types sont éphémères ; autrement dit, ils ne sont pas écrits dans un assembly et ne peuvent pas être consommés par du code dans d’autres assemblys. Ils peuvent contenir des membres retardés , ce qui vous permet d’utiliser des types fournis à partir d’un espace d’informations potentiellement infini. Ils sont utiles pour utiliser un petit sous-ensemble d’une source de données volumineuse et interconnectée.

Fournisseurs de types couramment utilisés

Les bibliothèques largement utilisées suivantes contiennent des fournisseurs de types pour différentes utilisations :

  • FSharp.Data inclut des fournisseurs de types pour les formats et ressources de documents JSON, XML, CSV et HTML.
  • SQLProvider fournit un accès fortement typé aux bases de données relationnelles via le mappage d’objets et des requêtes LINQ F# sur ces sources de données.
  • FSharp.Data.SqlClient a un ensemble de fournisseurs de types pour l’incorporation vérifiée au moment de la compilation de T-SQL dans F#.
  • Le fournisseur de type de stockage Azure fournit des types pour les objets blob, les tables et les files d’attente Azure, ce qui vous permet d’accéder à ces ressources sans avoir à spécifier de noms de ressources en tant que chaînes dans votre programme.
  • FSharp.Data.GraphQL contient graphQLProvider, qui fournit des types basés sur un serveur GraphQL spécifié par URL.

Si nécessaire, vous pouvez créer vos propres fournisseurs de types personnalisés ou référencer des fournisseurs de types créés par d’autres utilisateurs. Par exemple, supposons que votre organisation dispose d’un service de données fournissant un grand nombre croissant de jeux de données nommés, chacun avec son propre schéma de données stable. Vous pouvez choisir de créer un fournisseur de types qui lit les schémas et présente les derniers jeux de données disponibles au programmeur de manière fortement typée.

Voir aussi