Compartir a través de


Proveedores de tipos

Un proveedor de tipos de F# es un componente que proporciona tipos, propiedades y métodos para su uso en el programa. Los proveedores de tipos generan lo que se conoce como Tipos proporcionados, que el compilador de F# genera y se basan en un origen de datos externo.

Por ejemplo, un proveedor de tipos de F# para SQL puede generar tipos que representan tablas y columnas en una base de datos relacional. De hecho, esto es lo que hace el proveedor de tipos SQLProvider .

Los tipos proporcionados dependen de los parámetros de entrada para un proveedor de tipos. Esta entrada puede ser un origen de datos de ejemplo (como un archivo de esquema JSON), una dirección URL que apunta directamente a un servicio externo o una cadena de conexión a un origen de datos. Un proveedor de tipos también puede asegurarse de que los grupos de tipos solo se expanden a petición; es decir, se expanden si el programa hace referencia a los tipos. Esto permite la integración directa y a demanda de grandes espacios de información, como los mercados de datos en línea, de manera fuertemente tipificada.

Proveedores de tipos generativos y de borrado

Hay dos clases de proveedores de tipos: generativos y de borrado.

Los proveedores de tipos generativos producen tipos que se pueden escribir como tipos de .NET en el ensamblado en el que se producen. Esto permite su consumo a partir de código en otros ensamblados. Esto significa que la representación tipificada del origen de datos generalmente debe ser una que sea factible representar con tipo .NET.

Los proveedores de tipos de borrado producen tipos que solo se pueden consumir en el ensamblado o proyecto en el que se generan. Los tipos son efímeros; es decir, no se escriben en un ensamblado y no se pueden consumir mediante código en otros ensamblados. Pueden contener miembros con retraso, lo cual permite usar tipos proporcionados a partir de un espacio de información que sea potencialmente infinito. Son útiles para usar un pequeño subconjunto de un origen de datos grande e interconectado.

Proveedores de tipos usados habitualmente

Las siguientes bibliotecas ampliamente usadas contienen proveedores de tipos para distintos usos:

  • FSharp.Data incluye proveedores de tipos para formatos y recursos de documentos JSON, XML, CSV y HTML.
  • SQLProvider proporciona acceso fuertemente tipado a bases de datos relacionales a través de la asignación de objetos y consultas LINQ de F# en dichos orígenes de datos.
  • FSharp.Data.SqlClient tiene un conjunto de proveedores de tipos de datos que permiten la comprobación en tiempo de compilación y la inserción de T-SQL en F#.
  • El proveedor de tipos de Azure Storage proporciona tipos para blobs, tablas y colas de Azure, lo que le permite acceder a estos recursos sin necesidad de especificar nombres de recursos como cadenas en todo el programa.
  • FSharp.Data.GraphQL contiene GraphQLProvider, que proporciona tipos basados en un servidor GraphQL especificado por la dirección URL.

Cuando sea necesario, puede crear sus propios proveedores de tipos personalizados o proveedores de tipos de referencia creados por otros usuarios. Por ejemplo, supongamos que su organización tiene un servicio de datos que proporciona un gran y creciente número de conjuntos de datos con nombre, cada uno con su propio esquema de datos estable. Se puede elegir crear un proveedor de tipo que lea los esquemas y presente los últimos conjuntos de datos disponibles al programador de forma fuertemente tipada.

Consulte también