Bagikan melalui


Pustaka kelas .NET

Pustaka kelas adalah konsep pustaka bersama untuk .NET. Pustaka ini memungkinkan Anda untuk mengkomponenkan fungsi yang berguna ke dalam modul yang dapat digunakan oleh beberapa aplikasi. Pustaka juga dapat digunakan sebagai sarana memuat fungsi yang tidak diperlukan atau tidak dikenal saat startup aplikasi. Pustaka kelas dijelaskan menggunakan format file .NET Assembly.

Ada tiga jenis sertifikat yang dapat Anda gunakan:

  • Pustaka kelas khusus platform memiliki akses ke semua API dalam platform tertentu (misalnya, .NET Framework di Windows, Xamarin iOS), tetapi hanya dapat digunakan oleh aplikasi dan pustaka yang menargetkan platform tersebut.
  • Pustaka kelas portabel memiliki akses ke subset API, dan dapat digunakan oleh aplikasi dan pustaka yang menargetkan beberapa platform.
  • Pustaka kelas .NET Standard adalah penggabungan konsep pustaka khusus platform dan portabel ke dalam satu model yang memberikan yang terbaik dari keduanya.

Pustaka kelas khusus platform

Pustaka khusus platform terikat pada satu platform .NET (misalnya, .NET Framework pada Windows) dan karena itu dapat mengambil dependensi yang signifikan pada lingkungan eksekusi yang diketahui. Lingkungan semacam itu mengekspos serangkaian API yang diketahui (.NET dan API OS) dan mempertahankan dan mengekspos status yang diharapkan (misalnya, daftar Windows).

Pengembang yang membuat pustaka khusus platform dapat sepenuhnya mengeksploitasi platform yang mendasarinya. Pustaka hanya akan berjalan pada platform tertentu, membuat pemeriksaan platform atau bentuk kode bersyarat lainnya tidak perlu (modulo kode sumber tunggal untuk berbagai platform).

Pustaka khusus platform telah menjadi jenis pustaka kelas utama untuk .NET Framework. Bahkan ketika implementasi .NET lainnya muncul, pustaka khusus platform tetap menjadi jenis perpustakaan yang dominan.

Pustaka kelas portabel

Pustaka portabel didukung pada beberapa implementasi .NET. Mereka masih dapat mengambil ketergantungan pada lingkungan eksekusi yang diketahui, namun, lingkungan adalah lingkungan sintetis yang dihasilkan oleh persimpangan satu set implementasi .NET beton. API yang terbuka dan asumsi platform adalah bagian dari apa yang akan tersedia untuk perpustakaan khusus platform.

Anda memilih konfigurasi platform saat membuat pustaka portabel. Konfigurasi platform adalah kumpulan platform yang perlu Anda dukung (misalnya, .NET Framework 4,5+, Windows Phone 8.0+). Semakin banyak platform yang Anda pilih untuk didukung, semakin sedikit API dan lebih sedikit asumsi platform yang dapat Anda buat, penyebut umum terendah. Karakteristik ini dapat membingungkan pada awalnya, karena orang sering berpikir "lebih baik" tetapi menemukan bahwa platform yang lebih didukung menghasilkan LEBIH sedikit API yang tersedia.

Banyak pengembang perpustakaan telah beralih dari memproduksi beberapa perpustakaan khusus platform dari satu sumber (menggunakan arahan kompilasi bersyarat) ke perpustakaan portabel. Ada beberapa pendekatan untuk mengakses fungsionalitas khusus platform dalam pustaka portabel, dengan umpan dan sakelar menjadi teknik yang paling banyak diterima pada saat ini.

Pustaka kelas .NET Standard

Perpustakaan .NET Standard adalah pengganti konsep perpustakaan platform khusus dan portabel. Disebut perpustakaan platform khusus dalam arti bahwa perpustakaan ini mengekspos semua fungsi dari platform dasar (tidak ada platform sintetis atau titik kontak platform). Disebut perpustakaan portabel dalam arti bahwa perpustakaan ini bekerja pada semua platform pendukung.

.NET Standard mengekspos sekumpulan kontrak pustaka. Implementasi .NET harus mendukung setiap kontrak sepenuhnya atau tidak sama sekali. Oleh karena itu, setiap implementasi mendukung serangkaian kontrak .NET Standard. Konsekuensinya adalah bahwa setiap pustaka kelas .NET Standard didukung pada platform yang mendukung dependensi kontraknya.

.NET Standard tidak mengekspos seluruh fungsi .NET Framework (juga bukan tujuan), namun, perpustakaan mengekspos lebih banyak API daripada Perpustakaan Kelas Portabel.

Implementasi berikut mendukung pustaka .NET Standard:

  • .NET Core
  • .NET Framework
  • Mono
  • Universal Windows Platform (UWP)

Untuk informasi selengkapnya, lihat .NET Standard 2.0.

Pustaka kelas mono

Pustaka kelas didukung pada Mono, termasuk tiga jenis pustaka yang dijelaskan sebelumnya. Mono sering dipandang sebagai implementasi lintas platform .NET Framework. Sebagian, ini karena pustaka .NET Framework khusus platform dapat berjalan pada runtime Mono tanpa modifikasi atau kompilasi ulang. Karakteristik ini ada sebelum pembuatan perpustakaan kelas portabel, jadi merupakan pilihan yang jelas untuk memungkinkan portabilitas biner antara .NET Framework dan Mono (meskipun hanya bekerja dalam satu arah).