Bagikan melalui


Perpustakaan kelas .NET

Pustaka kelas adalah pustaka bersama konsep untuk .NET. Hal ini memungkinkan Anda untuk mengkampingkan fungsionalitas yang berguna ke dalam modul yang dapat digunakan oleh beberapa aplikasi. Mereka juga dapat digunakan sebagai sarana memuat fungsionalitas yang tidak diperlukan atau tidak diketahui saat startup aplikasi. Pustaka kelas (class libraries) dijelaskan menggunakan format file .NET Assembly .

Ada tiga jenis pustaka kelas yang dapat Anda gunakan:

  • Pustaka kelas yang khusus untuk platform memiliki akses terhadap semua API pada platform tertentu (misalnya, .NET Framework di Windows), tetapi hanya dapat digunakan oleh aplikasi dan pustaka yang khusus untuk platform tersebut.
  • Perpustakaan kelas portabel memiliki akses ke subset API dan dapat digunakan oleh aplikasi dan perpustakaan yang menargetkan beberapa platform.
  • perpustakaan kelas .NET Standard adalah penggabungan pustaka khusus platform dan pustaka portabel menjadi satu model yang menggabungkan keunggulan dari keduanya.

Pustaka kelas spesifik platform

Perpustakaan khusus platform terikat ke satu platform .NET (misalnya, .NET Framework di Windows) dan karenanya dapat memiliki dependensi yang signifikan pada lingkungan eksekusi yang sudah dikenal. Lingkungan seperti itu mengekspos sekumpulan API yang diketahui (.NET dan OS API) dan mempertahankan dan mengekspos status yang diharapkan (misalnya, registri Windows).

Pengembang yang membuat pustaka khusus platform dapat sepenuhnya mengeksploitasi platform yang mendasarinya. Pustaka hanya akan berjalan pada platform yang disebutkan, sehingga pemeriksaan platform atau bentuk kode bersyarat lainnya menjadi tidak perlu (kecuali jika menggunakan satu kode sumber untuk beberapa 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 pustaka yang dominan.

Pustaka kelas portabel

Pustaka portabel didukung pada beberapa implementasi .NET. Mereka masih dapat mengandalkan dependensi pada lingkungan eksekusi yang diketahui, namun, lingkungan ini adalah lingkungan sintetis yang dihasilkan oleh gabungan sekumpulan implementasi .NET konkret. API dan asumsi platform yang diekspos adalah subset dari apa yang akan tersedia untuk pustaka khusus platform.

Anda memilih konfigurasi platform saat membuat pustaka portabel. Konfigurasi platform adalah set platform yang perlu Anda dukung (misalnya, .NET Framework 4.5+, Windows Phone 8.0+). Semakin banyak platform yang Anda pilih untuk mendukung, semakin sedikit API dan semakin sedikit asumsi platform yang dapat Anda buat, mengurangi semuanya ke tingkat paling dasar. Karakteristik ini dapat membingungkan pada awalnya, karena orang sering berpikir "lebih banyak lebih baik" tetapi menemukan bahwa lebih banyak platform yang didukung menghasilkan lebih sedikit API yang tersedia.

Banyak pengembang pustaka telah beralih dari memproduksi beberapa pustaka khusus platform dari satu sumber (menggunakan direktif kompilasi kondisional) ke pustaka portabel. Ada beberapa pendekatan untuk mengakses fungsionalitas khusus platform dalam pustaka portabel, dengan pendekatan bait-and-switch yang menjadi teknik paling umum diterima saat ini.

Pustaka kelas .NET Standard

Pustaka .NET Standard adalah pengganti konsep pustaka khusus platform dan portabel. Mereka spesifik pada platform dalam arti bahwa mereka memberikan akses penuh ke semua fungsionalitas dari platform yang mendasari (tidak ada platform sintetis atau persimpangan platform). Mereka portabel dalam arti bahwa mereka 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. Akibatnya adalah bahwa setiap pustaka kelas .NET Standard didukung pada platform yang mendukung ketergantungan kontraknya.

.NET Standard tidak mengekspos seluruh fungsionalitas .NET Framework (juga bukan tujuan), namun, pustaka mengekspos lebih banyak API daripada Pustaka Kelas Portabel.

Implementasi berikut mendukung pustaka .NET Standard:

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

Untuk informasi selengkapnya, lihat .NET Standard.

Pustaka Kelas Mono

Pustaka kelas didukung pada Mono, termasuk tiga jenis pustaka yang dijelaskan sebelumnya. Mono sering dipandang sebagai implementasi lintas platform dari .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 pustaka kelas portabel, jadi merupakan pilihan yang jelas untuk mengaktifkan portabilitas biner antara .NET Framework dan Mono (meskipun hanya bekerja dalam satu arah).