Fornecedores de tipo
Um fornecedor do tipo F# é um componente que fornece tipos, propriedades e métodos para utilização no seu programa. Os Fornecedores de Tipo geram os conhecidos Tipos Fornecidos, que são gerados pelo compilador F# e são baseados numa fonte de dados externa.
Por exemplo, um Fornecedor de Tipo F# para SQL pode gerar tipos que representam tabelas e colunas numa base de dados relacional. Na verdade, é isto que o SqLProvider Type Provider faz.
Desde que os tipos dependam dos parâmetros de entrada para um Fornecedor de Tipo. Tal entrada pode ser uma fonte de dados de amostra (como um ficheiro de esquema JSON), um URL que aponta diretamente para um serviço externo, ou um fio de ligação a uma fonte de dados. Um Fornecedor de Tipo também pode garantir que grupos de tipos só são expandidos a pedido; ou seja, são expandidos se os tipos forem realmente referenciados pelo seu programa. Isto permite a integração direta e a pedido de espaços de informação em larga escala, como os mercados de dados online de uma forma fortemente dactilografada.
Fornecedores de tipo gerador e apagado
Os Fornecedores de Tipo vêm de duas formas: Generative e Apagado.
Os Fornecedores de Tipo Geradora produzem tipos que podem ser escritos como tipos .NET na montagem em que são produzidos. Isto permite que sejam consumidos a partir de código em outras assembleias. Isto significa que a representação dactilografada da fonte de dados deve, em geral, ser viável para representar com tipos .NET.
Os Fornecedores de Tipo de Apagamento produzem tipos que só podem ser consumidos na montagem ou projeto a partir do que são gerados. Os tipos são efémeros; ou seja, não estão escritos numa assembléia e não podem ser consumidos por código noutras assembleias. Podem conter membros atrasados , permitindo-lhe usar tipos fornecidos a partir de um espaço de informação potencialmente infinito. São úteis para a utilização de um pequeno subconjunto de uma grande fonte de dados interligada.
Fornecedores de tipo comumente utilizados
As seguintes bibliotecas amplamente utilizadas contêm Fornecedores de Tipo para diferentes utilizações:
- FSharp.Data inclui fornecedores de tipo para formatos e recursos de documentos JSON, XML, CSV e HTML.
- O SQLProvider fornece acesso fortemente dactilografado às bases de dados de relações através do mapeamento de objetos e consultas de LINQ F# com estas fontes de dados.
- FSharp.Data.SqlClient tem um conjunto de fornecedores de tipo para compilação-tempo verificado incorporação de T-SQL em F#.
- O fornecedor Azure Armazenamento Type fornece tipos de Azure Blobs, Tabelas e Filas, permitindo-lhe aceder a estes recursos sem precisar de especificar nomes de recursos como cordas ao longo do seu programa.
- FSharp.Data.GraphQL contém o GraphQLProvider, que fornece tipos baseados num servidor GraphQL especificado por URL.
Sempre que necessário, pode criar os seus próprios fornecedores de tipo personalizado, ou fornecedores de tipo de referência que tenham sido criados por outros. Por exemplo, assuma que a sua organização tem um serviço de dados que fornece um grande e crescente número de conjuntos de dados nomeados, cada um com o seu próprio esquema de dados estável. Pode optar por criar um fornecedor de tipo que leia os esquemas e apresente os mais recentes conjuntos de dados disponíveis ao programador de uma forma fortemente dactilografada.