Partilhar via


Provedores de tipo

Um provedor de tipo F# é um componente que fornece tipos, propriedades e métodos para uso em seu programa. Os provedores de tipo geram o que são conhecidos como tipos fornecidos, que são gerados pelo compilador F# e são baseados em uma fonte de dados externa.

Por exemplo, um provedor de tipo F# para SQL pode gerar tipos que representam tabelas e colunas em um banco de dados relacional. Na verdade, isso é o que o SQLProvider Type Provider faz.

Os Tipos Fornecidos dependem dos parâmetros de entrada para um Provedor de Tipos. Essa entrada pode ser uma fonte de dados de exemplo (como um arquivo de esquema JSON), uma URL apontando diretamente para um serviço externo ou uma cadeia de conexão para uma fonte de dados. Um provedor de tipo também pode garantir que grupos de tipos sejam expandidos apenas sob demanda; ou seja, eles são expandidos se os tipos forem realmente referenciados pelo seu programa. Isso permite a integração direta e sob demanda de espaços de informação em grande escala, como mercados de dados on-line, de uma forma fortemente tipada.

Provedores de tipo generativo e apagado

Os provedores de tipo vêm em duas formas: Generativo e Apagado.

Os provedores de tipo generativo produzem tipos que podem ser escritos como tipos .NET no assembly em que são produzidos. Isso permite que eles sejam consumidos a partir do código em outros assemblies. Isso significa que a representação tipada da fonte de dados geralmente deve ser uma que seja viável de ser representada com tipos .NET.

Provedores de Tipo de Apagamento produzem tipos que só podem ser consumidos na assemblagem ou projeto onde são gerados. Os tipos são efémeros; ou seja, eles não são gravados num assembly e não podem ser consumidos por código em outras compilações. Eles podem conter membros atrasados, permitindo que se utilizem os tipos fornecidos a partir de um espaço de informação potencialmente infinito. Eles são úteis para usar um pequeno subconjunto de uma fonte de dados grande e interconectada.

Provedores de tipo comumente usados

As seguintes bibliotecas amplamente utilizadas contêm provedores de tipo para diferentes usos:

  • FSharp.Data inclui provedores de tipo para formatos e recursos de documentos JSON, XML, CSV e HTML.
  • SQLProvider fornece acesso fortemente tipado a bases de dados relacionais por meio de mapeamento de objetos e consultas LINQ F# sobre estas fontes de dados.
  • FSharp.Data.SqlClient tem um conjunto de provedores de tipos para a verificação em tempo de compilação da incorporação de T-SQL em F#.
  • O provedor de Tipo de Armazenamento do Azure fornece tipos para Blobs, Tabelas e Filas do Azure, permitindo que você acesse esses recursos sem precisar especificar nomes de recursos como cadeias de caracteres em todo o programa.
  • FSharp.Data.GraphQL contém o GraphQLProvider, que fornece tipos baseados em um servidor GraphQL especificado por URL.

Quando necessário, você pode criar seus próprios provedores de tipo personalizados ou provedores de tipo de referência que foram criados por outras pessoas. Por exemplo, suponha que sua organização tenha um serviço de dados que forneça um grande e crescente número de conjuntos de dados nomeados, cada um com seu próprio esquema de dados estável. Você pode optar por criar um provedor de tipos que leia os esquemas e apresente ao programador os conjuntos de dados mais recentes disponíveis de forma fortemente tipada.

Ver também