Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un provider di tipi F# è un componente che fornisce tipi, proprietà e metodi da usare nel programma. I provider di tipi generano ciò che sono noti come tipi forniti, generati dal compilatore F# e si basano su un'origine dati esterna.
Ad esempio, un provider di tipi F# per SQL può generare tipi che rappresentano tabelle e colonne in un database relazionale. In effetti, questo è ciò che fa il provider di tipi SQLProvider .
I tipi forniti dipendono dai parametri di input di un provider di tipi. Tale input può essere un'origine dati di esempio (ad esempio un file di schema JSON), un URL che punta direttamente a un servizio esterno o una stringa di connessione a un'origine dati. Un provider di tipi può anche garantire che i gruppi di tipi siano espansi solo su richiesta; ovvero, vengono espansi se i tipi sono effettivamente a cui fa riferimento il programma. Ciò consente l'integrazione diretta su richiesta di spazi informativi su larga scala, ad esempio i mercati dei dati online in modo fortemente tipizzato.
Provider di tipi generativi ed eliminati
I provider di tipi sono disponibili in due forme: Generative e Erased.
I provider di tipi generativi producono tipi che possono essere scritti come tipi .NET nell'assembly in cui vengono prodotti. In questo modo possono essere consumati dal codice in altri assembly. Ciò significa che la rappresentazione tipizzata dell'origine dati deve essere in genere una rappresentazione fattibile per rappresentare con i tipi .NET.
I provider di tipi cancellabili producono tipi che possono essere utilizzati solo nell'assembly o nel progetto da cui vengono generati. I tipi sono temporanei; ovvero non vengono scritti in un assembly e non possono essere utilizzati dal codice in altri assembly. Possono contenere membri ritardati , consentendo di usare tipi forniti da uno spazio di informazioni potenzialmente infinito. Sono utili per utilizzare un piccolo sottinsieme di un'origine dati grande e interconnessa.
Provider di tipi più comuni
Le seguenti librerie ampiamente utilizzate contengono Type Providers per usi diversi.
- FSharp.Data include provider di tipi per formati e risorse di documenti JSON, XML, CSV e HTML.
- SQLProvider offre accesso fortemente tipizzato ai database relazionali tramite il mapping degli oggetti e le query F# LINQ su queste fonti dati.
- FSharp.Data.SqlClient include un set di provider di tipi per l'incorporamento controllato in fase di compilazione di T-SQL in F#.
- Il provider di tipi di archiviazione di Azure fornisce tipi per BLOB, tabelle e code di Azure, consentendo di accedere a queste risorse senza dover specificare i nomi delle risorse come stringhe nel programma.
- FSharp.Data.GraphQL contiene GraphQLProvider, che fornisce tipi basati su un server GraphQL specificato dall'URL.
Se necessario, è possibile creare provider di tipi personalizzati o provider di tipi di riferimento creati da altri utenti. Si supponga, ad esempio, che l'organizzazione disponga di un servizio dati che fornisce un numero elevato e crescente di set di dati denominati, ognuno con il proprio schema di dati stabile. È possibile scegliere di creare un provider di tipi che legge gli schemi e presenta i set di dati disponibili più recenti al programmatore in modo fortemente tipizzato.