Penyedia Jenis
Penyedia jenis F# adalah komponen yang menyediakan jenis, properti, dan metode untuk digunakan dalam program Anda. Penyedia Jenis menghasilkan apa yang dikenal sebagai Jenis yang Disediakan, yang dihasilkan oleh pengompilasi F# dan didasarkan pada sumber data eksternal.
Misalnya, Penyedia Jenis F# untuk SQL dapat menghasilkan jenis yang mewakili tabel dan kolom dalam database hubungan. Bahkan, cara inilah yang dilakukan Penyedia Jenis SQLProvider.
Jenis yang Disediakan bergantung pada parameter input ke Penyedia Jenis. Input tersebut dapat menjadi sumber data sampel (seperti file skema JSON), yaitu URL yang menunjuk langsung ke layanan eksternal, atau string koneksi ke sumber data. Penyedia Jenis juga dapat memastikan bahwa grup jenis hanya diperluas sesuai permintaan; artinya, grup diperluas jika jenisnya benar-benar dirujuk oleh program Anda. Hal ini memungkinkan integrasi langsung dan sesuai permintaan dari ruang informasi skala besar seperti pasar data online dengan cara yang strongly typed.
Penyedia Jenis Generatif dan Dihapus
Penyedia Jenis memiliki dua bentuk: Generatif dan Dihapus.
Penyedia Jenis Generatif menghasilkan jenis yang dapat ditulis sebagai jenis .NET ke dalam rakitan tempat jenis itu diproduksi. Hal ini memungkinkan mereka untuk diserap dari kode di rakitan lain. Artinya, representasi yang diketik dari sumber data umumnya harus menjadi salah satu yang layak untuk diwakili dengan jenis .NET.
Menghapus Jenis Penyedia menghasilkan jenis yang hanya dapat diserap dalam rakitan atau proyek asalnya. Jenis ini bersifat sementara; artinya, jenis tidak ditulis ke dalam rakitan dan tidak dapat diserap dengan kode di rakitan lain. Jenis dapat berisi anggota yang tertunda, sehingga memungkinkan Anda menggunakan jenis yang disediakan dari ruang informasi yang mungkin tak terbatas. Jenis ini bermanfaat untuk penggunaan subset kecil dari sumber data yang besar dan saling tersambung.
Penyedia Jenis yang umum digunakan
Pustaka yang banyak digunakan berikut berisi Penyedia Jenis untuk penggunaan yang berbeda:
- FSharp.Data mencakup Penyedia Jenis untuk format dan sumber daya dokumen JSON, XML, CSV, dan HTML.
- SQLProvider menyediakan akses strongly typed ke database hubungan melalui pemetaan objek dan LINQ F# mengkueri sumber data ini.
- FSharp.Data.SqlClient memiliki sekumpulan penyedia jenis untuk penyematan waktu kompilasi T-SQL di F#.
- Penyedia jenis Azure Storage menyediakan jenis untuk Azure Blobs, Tables, dan Queues, sehingga Anda bisa mengakses sumber daya ini tanpa perlu menentukan nama sumber daya sebagai string di seluruh program Anda.
- FSharp.Data.GraphQL berisi GraphQLProvider, yang menyediakan jenis berdasarkan server GraphQL yang ditentukan oleh URL.
Jika perlu, Anda bisa membuat penyedia jenis kustom Anda sendiri, atau penyedia jenis referensi yang telah dibuat oleh orang lain. Misalnya, asumsikan organisasi Anda memiliki layanan data yang menyediakan sejumlah besar himpunan data bernama, setiap himpunan data memiliki skema data stabilnya masing-masing. Anda dapat memilih untuk membuat penyedia jenis yang membaca skema dan menyajikan himpunan data terbaru yang tersedia kepada pemrogram dengan cara strongly typed.